From: Sahai, A. <sa...@il...> - 2014-06-24 17:51:34
|
I think I've been able to solve the problem by reading the external mesh by directly using the mesh object through mesh.read(string) instead of using the ExodusII_IO object. Regards Amal ________________________________________ From: Sahai, Amal Sent: Tuesday, June 24, 2014 1:10 PM To: John Peterson Cc: lib...@li... Subject: RE: [Libmesh-users] Libmesh Gridgen import I have uploaded the mesh on: https://docs.google.com/file/d/0BzY4xZs53VOLMWUzT0Y2d0NHSUk/edit Also, I was using the following code to check the mesh by accessing the different properties: for ( ; el != end_el; ++el) { const Elem* elem = *el; const unsigned int sbd_id = elem->subdomain_id(); std::cout << std::endl << "Element subdomain id = " << sbd_id << std::endl; std::cout << "Sides are :" << std::endl; for (unsigned int side =0 ; side < elem->n_sides(); side++) { short int bc_id = mesh.boundary_info->boundary_id (elem,side); if (bc_id != BoundaryInfo::invalid_id) std::cout << "Side : " << side << "belongs to bdy" << bc_id << std::endl; else std::cout << "Side : " << side << "belongs to the interior." << std::endl; } } The strange thing is, this loop never gets entered. Regards Amal ________________________________________ From: John Peterson [jwp...@gm...] Sent: Tuesday, June 24, 2014 12:52 PM To: Sahai, Amal Cc: lib...@li... Subject: Re: [Libmesh-users] Libmesh Gridgen import On Tue, Jun 24, 2014 at 10:40 AM, Sahai, Amal <sa...@il...> wrote: > I have a few questions regarding importing ExodusII meshes created in Gridgen to Libmesh. I have created a simple structured mesh in Gridgen with the .exo format. Also, I made sure that the boundary conditions were defined as side sets. I face no problems reading the mesh using the ExodusII_IO object: > > ExodusII_IO exo(mesh); > exo.read("BUMP100x100.exo"); > > I get the following mesh message when I use mesh.print_info() > > Mesh Information: > mesh_dimension()=2 > spatial_dimension()=3 > n_nodes()=10000 > n_local_nodes()=0 > n_elem()=9801 > n_local_elem()=0 > n_active_elem()=9801 > n_subdomains()=1 > n_partitions()=1 > n_processors()=1 > n_threads()=1 > processor_id()=0 > > The issue is, when I try accessing the elements or the nodes of the mesh through the element iterators, I am unable to do so. A case in point is the following loop: > > MeshBase::const_element_iterator el = mesh.active_local_elements_begin(); > const MeshBase::const_element_iterator end_el = mesh.active_local_elements_end(); > for ( ; el != end_el; ++el) > std::cout<<"AAAAAAAAAAAAAA\n"; > > This loop is never entered. Is there something wrong with how I am importing the mesh? Or is there something that I need to correct while making the mesh in Gridgen? Please advice. This is certainly a strange error. I originally suspected that your mesh might contain element types not supported by libmesh, but that would have generated an error message during read... is there any way you can share this mesh file (google doc or something similar) with me directly so that I can take a closer look? -- John |