From: Roy Stogner <roystgnr@ic...>  20060301 19:17:39

On Wed, 1 Mar 2006, David Xu wrote: > 1. Does libmesh support Hermite polynomial shape function? Yes, but as far as I know only the 2D case (the BognerFoxSchmidt rectangle) is well tested. I just caught a bug in the 3D Hermite a little while ago, and I think there's still a bug remaining. I haven't tested the 1D case at all except insofar as the 1D code gets used by the 2D element. > If so, how do I specify it in the my code? By overwriting the default argument to ::add_variable(), like so: system.add_variable("u", THIRD, HERMITE); Note that only cubics (THIRD) are supported by the Hermite elements, and your mesh had better be rectilinear if you want them to work correctly. > I didn't find any indication in the examples. That's my fault. I don't want to commit an updated example 15 until I'm certain the 3D case is working correctly. > I assume they all use Lagrange polynomial as default? Yes. > 2. How do I specify the polynomial order (p) in the code? In the second argument to add_variable(). > 3. In this line equation_systems("Poisson").add_variable("u", SECOND); > Is "SECOND" the order of polynomial shape function or the order of > gauss quadrature? The polynomial order. > 4. Do the element types (QUAD4, QUAD9, etc.) already include > polynomial order information implicitly? No. The higher order elements give you the chance to use higher order mapping functions, and give libMesh more places to put degrees of freedom (because edge and face DoFs are usually necessary for higher order shape functions), but if you just convert a QUAD4 mesh into a QUAD9 mesh while specifying bilinear shape functions it shouldn't change your results beyond whatever different floatingpoint errors do to the mapping functions.  Roy Stogner 