That is all true. If you want lower level pieces to make it yourself, I have -dm_plex_high_order_view, which activates DMPlexCreateHighOrderSurrogate_Internal(). This is a simple function that refines the mesh lg(p) times to try and resolve the high order behavior.
Thanks, Matt On Wed, Jan 29, 2025 at 4:55 PM Jed Brown <j...@jedbrown.org> wrote: > I like the CGNS workflow for this, at least with quadratic and cubic > elements. You can use options like -snes_view_solution cgns:solution.cgns > (configure with --download-cgns). It can also monitor transient solves with > flexible batch sizes (geometry and connectivity are stored only once within > a batch of output frames). > > Anna Dalklint via petsc-users <petsc-users@mcs.anl.gov> writes: > > > 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 > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener https://urldefense.us/v3/__https://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!bARGOByHrNW1kx6GeTEkq8OOmkrXte9cSpdwEz_FYq-Qc2FVXoBXoFOjJtKExsznxY8rJjfzPN_HpyXH_ubn$ <https://urldefense.us/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!bARGOByHrNW1kx6GeTEkq8OOmkrXte9cSpdwEz_FYq-Qc2FVXoBXoFOjJtKExsznxY8rJjfzPN_Hp2vIMQvr$ >