I am trying to do the following
in my code. I am stuck with not being able to few steps. Can you please suggest if there are any api calls
which I can use. Or areas of code which does the same.
Take Multi-region element,
Loop through each
element in the multi region.
Loop through each face
of element of multi region.
Get 2D element
expansion of each face and its coefficients.
To get the 2D element expansion, I
am able to use GetfaceExp() on Expansion3D.
This only works for boundary elements when the field is Cont3DExp. When
element is not in the boundary it gives a segmentation fault 11.
We only define a face expansion as part of the trace when a face is on the boundary in Cont3DExp. For a DisCont3DExp the trace space include all the face expansions so what you are reporting here is consistent with our coding convention. I
I can overcome the above problem
by initializing the field as DisCont3DExp, while loading from fld file. (This seems to work for now).
-
Is there a function to get each face's
Expansion coefficients from element expansion coefficients ?
-
Or should I dynamically check if the element
is Hex, Tet, prism and
try to figure out from the mapping order?
There is certainly a GetFacePhysVals() which returns pays values along a face since we use this a lot in the DG code.
Looking in StdExpansion there does not seem to be a GetFaceCoeff type method. I believe GetBoundaryMap will return the map to the coefficients on the boundary of all faces within an element. However I am not sure whether this will help you. However it
might allow you to see how to define a GetFaceCoeff method.
Cheers,
Spencer.