I'm using ExodusII_IO::copy_elemental_solution to copy element data to a
new System object, and this works fine in serial using code like the below:

----------------------------------------------

  Mesh mesh(comm);
  ExodusII_IO exo_io(mesh);

  if (comm.rank() == 0)
  {
    exo_io.read(path_to_mesh_file);
  }
  MeshCommunication().broadcast(mesh);

  mesh.prepare_for_use();

  EquationSystems es(mesh);
  ExplicitSystem& materials_system =
    es->add_system<ExplicitSystem> ("data");
  materials_system.add_variable ("data", CONSTANT, MONOMIAL);
  es->init();

  exo_io.copy_elemental_solution(es, "data", "data");

----------------------------------------------


However, in parallel I hit the error "ERROR, ExodusII file must be opened
for reading before copying an elemental solution!" at the start of
copy_elemental_solution.

As far as I know (e.g. based on namebased_io.C) we should only call "read"
on proc 0, so I don't see how to make this work in parallel, since in that
case exo_io is only "opened for reading" on proc 0.

Does anyone have any suggestions on this? (John, I gather that you were the
author of most of the ExodusII reader stuff, so I thought you might know
the answer?)

Thanks!
David
------------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to