Hello,

We have created a finite element code in PETSc for unstructured meshes using 
DMPlex. The first order meshes are created in gmsh and loaded into PETSc. To 
introduce higher order elements, e.g. 10 node tetrahedral elements, we start 
from scratch using PetscSection and loop over the relevant points it the DM to 
introduce additional degrees-of-freedom (example; for 10 node tets we have 4 
vertices “nodes” and 6 edge “nodes”). The coordinates of the new “nodes” are 
obtained by interpolation using the finite element basis functions.

The simulations seem to run well, but we face issues when trying to visualize 
the results in ParaView. We have tried to use both CGNS and HDF5+XDMF file 
formats for e.g. VecView. CGNS works, but the edge degrees-of-freedom appear to 
not be interpolated correctly (we observe oscillations in the fields, don’t 
know if this is a PETSc och ParaView issue). Also, we would prefer to use 
another file format than CGNS since it does not appear to directly allow 
timeseries (at least ParaView doesn’t recognize it). We haven’t got the 
HDF5+XDMF file format to work at all when running on more than one core (the 
mesh is highly distorted when saving using VecView and DMView + running the 
“petsc_gen_xdmf.py” script on the .h5 output file).

VTU format works but then only the vertices’ degrees-of-freedom are visualized. 
As far as we have understood it, this is because VTU/VTK only supports 
degrees-of-freedom on vertices/cell level.

Does anyone have any idea of how to visualize fields generated from higher 
order elements in ParaView? Or understand what we might be doing wrong?

Best regards,
Anna

Reply via email to