Jed is right about the numerics. However, this does not look hard. Here is my try at it:
https://gitlab.com/petsc/petsc/-/merge_requests/4838 Please tell me if this works and I will make a test and merge. Thanks, Matt On Thu, Feb 10, 2022 at 6:47 PM Jed Brown <j...@jedbrown.org> wrote: > Susanne, do you want PetscFE to make the serendipity (8-node) finite > element space or do you just want to read these meshes? I.e., would it be > okay with you if the coordinates were placed in a Q_2 (9-node, biquadratic) > finite element space? > > This won't matter if you're traversing the dofs per edge manually, but > there are some efficiency benefits of using the Q_2 space (especially if > your code can use the tensor product, perhaps via a library like libCEED). > Note that Q_2 spaces have better stability properties. For example, the Q_2 > space is inf-sup stable with P_1 discontinuous pressure (gives third order > L^2 and second order H^1 convergence), but serendipity (8-node) is only > stable with piecewise constant pressure (gives second order L^2 and first > order H^1 convergence). > > Susanne Claus <susanne.cl...@onera.fr> writes: > > > Dear Matthew, > > > > Thank you so much. > > I have a attached a small 8-noded quadrilateral mesh file (Version 4 > > ASCII) generated with gmsh 4.8.4. > > > > Best wishes, > > Susanne > > > > On 10.02.2022 16:23, Matthew Knepley wrote: > > > >> On Thu, Feb 10, 2022 at 10:12 AM Susanne Claus <susanne.cl...@onera.fr> > > >> wrote: > >> > >>> Hello, > >>> > >>> I am using DMPlex for the mesh structure of a solid mechanics finite > >>> element code. I mainly use gmsh as input file format. When I try to > >>> read in 8-noded Quadrilaterals (Element type 16 in gmsh) DMPlex tells > >>> me that this element type is unknown. However a 9-noded Quadrilateral > >>> can be read without problem. On inspecting the plexgmsh.c source code > >>> I can see that 8-noded quadrilaterals are deactivated: > >>> > >>> #if 0 > >>> 146: {20, GMSH_TRI, 2, 3, 3, 9, NULL}, > >>> 147: {16, GMSH_QUA, 2, 2, 4, 8, NULL}, > >>> > >>> For our application these 8-noded quadrilateral are very important. > >>> > >>> Is there any reason why they have not been implemented/deactivated in > >>> the dmplex gmsh reader? > >> > >> No, we can handle them in the same way I think. Let me look at it. > >> Hopefully it is easy. > >> > >> Thanks, > >> > >> Matt > >> > >>> Thank you for all the great work you are doing. PETSc is amazing. > >>> > >>> Best wishes, > >>> Susanne Claus > >> > >> -- > >> > >> 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://www.cse.buffalo.edu/~knepley/ [1] > > > > -- > > > > Susanne Claus > > Ingénieur Chercheur > > Applied Mathematics and Scientific Computing Group > > DTIS > > > > ONERA - The French Aerospace Lab > > 6 Chemin de la Vauve aux Granges, 91120 Palaiseau > > > > Links: > > ------ > > [1] http://www.cse.buffalo.edu/~knepley/ > > $MeshFormat > > 4.1 0 8 > > $EndMeshFormat > > $PhysicalNames > > 2 > > 1 2 "Neumann" > > 2 1 "Domain" > > $EndPhysicalNames > > $Entities > > 4 4 1 0 > > 1 0 0 0 0 > > 2 1 0 0 0 > > 3 1 1 0 0 > > 4 0 1 0 0 > > 1 -9.999999994736442e-08 -1e-07 -1e-07 1.0000001 1e-07 1e-07 0 2 1 -2 > > 2 0.9999999000000001 -9.999999994736442e-08 -1e-07 1.0000001 1.0000001 > 1e-07 1 2 2 2 -3 > > 3 -9.999999994736442e-08 0.9999999000000001 -1e-07 1.0000001 1.0000001 > 1e-07 0 2 3 -4 > > 4 -1e-07 -9.999999994736442e-08 -1e-07 1e-07 1.0000001 1e-07 0 2 4 -1 > > 1 -9.999999994736442e-08 -9.999999994736442e-08 -1e-07 1.0000001 > 1.0000001 1e-07 1 1 4 1 2 3 4 > > $EndEntities > > $Nodes > > 9 21 1 46 > > 0 1 0 1 > > 1 > > 0 0 0 > > 0 2 0 1 > > 2 > > 1 0 0 > > 0 3 0 1 > > 3 > > 1 1 0 > > 0 4 0 1 > > 4 > > 0 1 0 > > 1 1 0 3 > > 5 > > 35 > > 36 > > 0.5 0 0 > > 0.25 0 0 > > 0.75 0 0 > > 1 2 0 3 > > 6 > > 37 > > 38 > > 1 0.5 0 > > 1 0.25 0 > > 1 0.75 0 > > 1 3 0 3 > > 7 > > 39 > > 40 > > 0.5 1 0 > > 0.75 1 0 > > 0.25 1 0 > > 1 4 0 3 > > 8 > > 41 > > 42 > > 0 0.5 0 > > 0 0.75 0 > > 0 0.25 0 > > 2 1 0 5 > > 9 > > 43 > > 44 > > 45 > > 46 > > 0.5 0.5 0 > > 0.75 0.5 0 > > 0.5 0.25 0 > > 0.25 0.5 0 > > 0.5 0.75 0 > > $EndNodes > > $Elements > > 2 6 197 206 > > 1 2 8 2 > > 197 2 6 37 > > 198 6 3 38 > > 2 1 16 4 > > 203 2 6 9 5 37 43 44 36 > > 204 1 5 9 8 35 44 45 42 > > 205 4 8 9 7 41 45 46 40 > > 206 3 7 9 6 39 46 43 38 > > $EndElements > -- 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://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>