From: Roy Stogner <roystgnr@ic...>  20060629 22:08:04

On Thu, 29 Jun 2006, David Xu wrote: > When I was trying to generate 3D tetrahedral mesh using: > > MeshTools::Generation::build_cube (mesh, 20, 20, 20, 3., 3., 3., 3., 3., > 3., TET10); > > I got: > > ERROR: Unrecognized 3D element type. > [0] src/mesh/mesh_generation.C, line 671, compiled Jun 13 2006 at 23:07:35 > > I thought TET4 and TET10 elements were implemented in libmesh because they > are listed under Generic 3D Finite Elements of libmesh Class DOCs > http://libmesh.sourceforge.net/doxygen/index.php Unfortunately, "implemented in libMesh" doesn't always mean "implemented in every single libMesh function". libMesh currently supports finite element calculations on tetrahedra with linear or quadratic Lagrange elements, but you need to be able to supply your own tet mesh (or get one out of tetgen, now). "Unrecognized 3D element type" is a misleading error message there; perhaps we should change it to something like "3D element type X is not supported by function Y". John Peterson has recently written some code that let him build cubes of tetrahedra, but I don't know if it's debugged and ready to add to CVS yet. > Alternatively I tried tetgen with libmesh using: > > TetGenMeshInterface tetgen (mesh); > tetgen.pointset_convexhull (); > tetgen.triangulate_conformingDelaunayMesh(0., .005); > > And the program threw an error at > > equation_systems.init(); > > and [0] src/fe/fe_lagrange.C, line 614 > > Can anyone tell me what could be the problem? Well, I don't use tetgen so hopefully someone else can help you with that. If you're using the CVS libMesh, line 614 of fe_lagrange.C is the "you tried to use a polynomial order we can't handle" error() call. You'll have to get a full stack trace out of your debugger to find out where the offending code is, but some function in your program tried to use a quartic or higher Lagrange element, and on most geometric elements our Lagrange FE only handles linear and quadratic bases.  Roy Stogner 