Carlos... first let me apologize for taking so long to get back to you on this.... I've been hunting other bugs before I could get to this. There are actually three issues at play with Exodus and example 9 (and probably 10... and other examples).
The first one is that for Exodus output your subdomain_id's for each element must be 1 or greater. The problem is that when libMesh builds meshes internally the subdomain_id is just 0. Similarly... if you fix that issue... you run into the same problem with sidesets (libMesh automatically starts numbering sidesets at 0 for internally generated meshes). And finally... in the mesh for Example9 there are two different types of elements... but both have the same subdomain_id (0). This is a no-no with Exodus... it can only store one element type per subdomain. Basically what this comes down to is that Exodus is currently not compatible with the internal mesh generation of libMesh. It used to work because we made some terrible assumptions and just wrote everything to subdomain 1 (and didn't used to write sidesets at all). Now that the Exodus writer is more correct... it's barfing on this stuff. I'm up for any suggestions about what to do. Maybe we should allow you to pass in a subdomain_id and starting sideset number to build_cube() or the like? A way around all of this would be to generate an exodus mesh in an external mesh generator (like Cubit) and read that into example9 as the mesh... that way it doesn't have any of these issues... Derek On Mon, Apr 13, 2009 at 1:52 PM, Derek Gaston <fried...@gmail.com> wrote: > Carlos... I'm sure this is my fault.... I'll get back to you on this as > soon as possible. > > Derek > > > On Apr 12, 2009, at 1:49 PM, Carlos Lopez wrote: > > Hello, >> >> I've modified example #9 to do 1 time step and write the solution to >> an exodus file by changing the line >> >> GMVIO(mesh).write_equation_systems (file_name.str(), equation_systems); >> >> >> to >> >> ExodusII_IO(mesh).write_equation_systems ("out.e", equation_systems); >> >> the program throws the following error: >> >> >> [ex_put_block] Error: element block id 0 already exists in file id 8 >> exerrval = -1 >> Error writing element block. >> [0] src/mesh/exodusII_io_helper.C, line 118, compiled Apr 12 2009 at >> 14:16:59 >> terminate called after throwing an instance of 'libMesh::LogicError' >> what(): Error in libMesh internal logic >> >> Are there other steps required for writing exodus files? >> >> Thanks for your help, >> Carlos. >> >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by: >> High Quality Requirements in a Collaborative Environment. >> Download a free trial of Rational Requirements Composer Now! >> http://p.sf.net/sfu/www-ibm-com >> _______________________________________________ >> Libmesh-users mailing list >> Libmesh-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/libmesh-users >> > > ------------------------------------------------------------------------------ Stay on top of everything new and different, both inside and around Java (TM) technology - register by April 22, and save $200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco. 300 plus technical and hands-on sessions. Register today. Use priority code J9JMT32. http://p.sf.net/sfu/p _______________________________________________ Libmesh-users mailing list Libmesh-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libmesh-users