v_num_loc must persist throughout. It will need to be updated each time
the underlying pumi_mesh is changed, and should never be destroyed
manually during an adaptive solve (in the application code).
This clean up is achieved by using getElementXis to get all the nodes
associated with a given tet, as opposed to computing those using loops.
Bug fix note:
The previous code would ignore the fact that the
tet-to-vertex connectivities could change when a PUMI mesh is converted
to an MFEM mesh. This means that for some of tets a given parent xi
coordinate would not be the same in the PUMI and MFEM meshes. Ignoring
this can cause incorrect field transfers. This is fixed now, by
explicitly checking the tet rotations and adjusting the xi coordinates
accordingly.
Also makes the default last argument in ParentXisPUMItoMFEM to be true.
This is because there is always rotated tets (due to orientation fix at
the boundary).
Previously this was done in a loop inside each of the field transfer
member functions (a lot of code repetition!). Now it is a single
function call that can be called by any of the field transfer members.
On this commit it is only used for the Nedelec field transfer routine.
1- Code repetition for ReadElement was fixed
2- getting nodes associated with an entity is repeated for MFEMToPUMI
field transfer routines (one of the is fixed in this commit but not yet
tested. Others need to be cleaned up as well.
3- TODO: It's probably possible to have one general field transfer
routine as opposed to multiples ones for different fields types.
variables and still need to be called discarding the returned
value. Also, make some small formatting and coding tweaks.
All PUMI examples require MPI.
Update .gitignore.