Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Rightclick on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
From: Rochan Upadhyay <u.rochan@gm...>  20110823 17:15:35

Hi libMesh Forum, I am computing a simple model for char strength using libmesh, solving essentially the linear elasticity equations. I have managed to do so on simple meshes generated by libMesh (MeshTools::Generation) but am having problems (which I believe is due to my own ignorance) on solving them in more complicated meshes generated using Gmsh. I am stuck at a very basic level. For example using example 3 from libmesh 'Examples' gives the following output from equation_systems.print_info(); : Mesh Information: mesh_dimension()=2 spatial_dimension()=3 n_nodes()=961 n_local_nodes()=961 n_elem()=225 n_local_elem()=225 n_active_elem()=225 n_subdomains()=1 n_processors()=1 processor_id()=0 EquationSystems n_systems()=1 System "Poisson" Type "LinearImplicit" Variables="u" Finite Element Types="LAGRANGE", "JACOBI_20_00" Infinite Element Mapping="CARTESIAN" Approximation Orders="SECOND", "THIRD" n_dofs()=961 n_local_dofs()=961 n_constrained_dofs()=0 n_vectors()=1 while reading a different mesh generated using Gmsh file gives the following: Mesh Information: mesh_dimension()=2 spatial_dimension()=3 n_nodes()=2000 n_local_nodes()=0 n_elem()=1881 n_local_elem()=0 n_active_elem()=1881 n_subdomains()=1 n_processors()=1 processor_id()=0 EquationSystems n_systems()=1 System "Poisson" Type "LinearImplicit" Variables="u" Finite Element Types="LAGRANGE", "JACOBI_20_00" Infinite Element Mapping="CARTESIAN" Approximation Orders="FIRST", "THIRD" n_dofs()=0 n_local_dofs()=0 n_constrained_dofs()=0 n_vectors()=1 The mesh is read correctly. However, it does not display the number of degrees of freedom. I would surmise that given the mesh (a structured mesh with quadrilaterals) and the approximation order it ought to be able to tell the number of degrees of freedom. In hte code, I only replaced the libMesh mesh generation in example 3 with the line GmshIO(mesh).read("gmsh_ex3.msh"); Further the above errors are with first order approximation. If I use second order: equation_systems.get_system("Poisson").add_variable("u", SECOND); Then I receive the following error message: [0] src/fe/fe_lagrange.C, line 632, compiled Mar 2 2011 at 09:35:54 terminate called after throwing an instance of 'libMesh::LogicError' what(): Error in libMesh internal logic Clearly I am missing quite a lot here which would be obvious to Gmsh users. I suspect other commands are also needed but am having difficulties on figuring out what they are. Also the mesh was created from the following .geo Gmsh code: lc = 0.1; Point(1) = {0,1,0,lc}; Point(2) = {10,1,0,lc}; Point(3) = {10,1,0,lc}; Point(4) = {0,1,0,lc}; Line(1) = {1,2}; Line(2) = {2,3}; Line(3) = {3,4}; Line(4) = {4,1}; Line Loop(1) = {1,2,3,4}; Plane Surface(1) = {1}; Transfinite Line{1,3} = 100; Transfinite Line{2,4} = 20; Transfinite Surface{1} = {1,2,3,4}; Recombine Surface{1}; Mesh.Smoothing = 100; MyLine1 = 0; MyLine2 = 1; MyLine3 = 2; MyLine4 = 3; Physical Line(MyLine1) = {1}; Physical Line(MyLine2) = {2}; Physical Line(MyLine3) = {3}; Physical Line(MyLine4) = {4}; Physical Surface(30) = {1}; 
From: John Peterson <jwpeterson@gm...>  20110823 17:31:14

Hi Rochan, > n_dofs()=0 > n_local_dofs()=0 > n_constrained_dofs()=0 > n_vectors()=1 > > The mesh is read correctly. However, it does not display the number of > degrees of freedom. I would surmise that given the mesh (a structured > mesh with quadrilaterals) and the approximation order it ought to be > able to tell the number of degrees of freedom. This issue popped up a couple days ago in the context of the TetGen reader. You have to call mesh.prepare_for_use() after reading in the mesh so that it is properly partitioned; this should fix the n_dofs() problem > In hte code, I only replaced the libMesh mesh generation in example 3 > with the line > GmshIO(mesh).read("gmsh_ex3.msh"); > > Further the above errors are with first order approximation. If I use > second order: > > equation_systems.get_system("Poisson").add_variable("u", SECOND); > > Then I receive the following error message: > > [0] src/fe/fe_lagrange.C, line 632, compiled Mar 2 2011 at 09:35:54 > terminate called after throwing an instance of 'libMesh::LogicError' > what(): Error in libMesh internal logic Are these QUAD4's from GMSH? You won't be able to use secondorder elements on QUAD4's, you can convert them to QUAD9's with a call to mesh.all_second_order().  John 
Sign up for the SourceForge newsletter:
No, thanks