On Mon, 7 Aug 2017, Renato Poli wrote:
I am getting started in libmesh - I've been using it for a month now. I used libmesh introductory example 3 (libmesh_ex3) as a reference for my problem.
I assume you mean introduction_ex3?
The idea is to replace the mesh by one of my one and start from there. I noticed that libmesh_ex3 uses TRI6 or QUAD elements. In my application I was using TRI3 and it did not work. I realized that the example does not work with TRI3 either.
I assume you're using higher than first order elements in your application, like we do in the example?
Is there a reason for that? Should I use TRI6 instead?
Yes, and yes. libMesh stores degree of freedom (DoF) indices on element nodes and element interiors, and it requires those indices to be properly located topologically. Shape functions whose support is on the patch of elements surrounding a node need to have corresponding DoF indices located on that node, shape functions which live on only one element need to have indices located on that element or on a node internal to that element... And most critically in your case:, shape functions whose support is on the two triangles sharing an edge need to have indices located on that edge. Since libMesh doesn't *have* edge objects, we use edge nodes to store such indices. If you have a TRI3, then you don't have any edge nodes, and so you can't use any finite element types which have edge dofs. That means you're restricted to combinations of discontinuous finite elements (XYZ and MONOMIAL, which live within a single element) and first-order finite elements (which have only vertex dofs).
Any advice?
In 2D, if you want to use 2nd order through 11th order basis functions, then use 2nd order geometric elements and you're fine. (roundoff error blows up at higher polynomial degrees, so we currently cap p refinement at 11). Likewise for 3D on hexes. If you want to use 3rd order or higher bases on a mesh with tets, prisms, and/or pyramids, then my advice is to warn us *way* in advance. We don't currently have any elements whose triangular faces have face nodes, so all our elements with triangular faces support a max of p=2. Fixing that has been on my todo list for a decade, but probably won't get *off* my todo list for years to come unless there's a user chomping at the bit for it. --- Roy ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Libmesh-users mailing list Libmesh-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libmesh-users