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

Reply via email to