Re: [Libmesh-devel] Higher than second order elements. From: Roy Stogner - 2009-02-24 19:31:09 ```On Tue, 24 Feb 2009, Vijay S. Mahadevan wrote: > Are there any higher than second order Finite Elements in Libmesh ? I > obviously do not see them in the class docs but just wondering if > there was some trick to apply say a 5th order Lagrange basis to a > QUAD4 elem. Then would Libmesh automatically create the extra dofs > needed to make this unisolvent ?! There are higher order elements, just not higher order Lagrange elements; try the HIERARCHIC basis instead if you want C0 higher order polynomials. You can even do adaptive p refinement with them. (probably hp, too, but I wouldn't guarantee that's working) There is a limitation on geometric element compatibility, though: you need to have a node on every face or edge which corresponds to the center of support of a basis function. So to use your example, a QUAD4 won't work for most higher order elements (cubic HERMITEs being the only exception) because there's no nodes to store edge degrees of freedom. There's also a limitation on output: our .xda/.xdr formats will save all your higher order data to machine precision, but at least the visualization formats I use are first-order-only; I'm not sure we can even plot quadratics except by turning them into 2^d linears first. > If this is gibberish and libmesh does not have higher than > second-order elements, do let me know. In 2D, nth order HIERARCHICs should work on every second order geometric element. In 3D, they work on hexes only at the moment. > If you have suggestions to implement higher order elements, I would > be glad to hear them also. Adding support for HIERARCHIC tets and pyramids would first require adding the geometric elements to support them: a PYRAMID5 doesn't have the edge or face nodes necessary to support even second order elements, and a TET10 doesn't have the face nodes. We need to round things out with a PYRAMID14, PYRAMID19, and TET14 one of these days. If the impression you're getting is that we've each written exactly enough higher order stuff for our own apps to work, you'd be right. None of the missing bits I've mentioned would be hard to add to libMesh if you need them; they're just tedious enough that nobody's done so yet. --- Roy ```