From: Roy S. <roy...@ic...> - 2017-11-06 15:01:51
|
On Sat, 4 Nov 2017, Manav Bhatia wrote: > I have been writing my transient data to exodusII files and using them in Paraview for visualization using ExodusII_IO::write_time_step() > > Is there a utility available to read previously written solution (to exodusII file) into memory into a System vector? > > If not, is there one available for a different format? Maybe XDR? EquationSystems::read() will fill *all* your vectors in *all* your Systems with the data in that output, but I don't know of a way to grab just one vector. I seem to remember the Reduced Basis code doing something tricky... looks like it's using System::read_serialized_data() directly? > What are the limitations placed by adaptivity on either, given > that the mesh topology can also be changing with time? Strict. With parallel output files, even repartitioning would prevent you from reading the same data back in later; typically those are only usable when you write out the corresponding parallel mesh files at the same time. With serial XDA/XDR files, we can use libHilbert to get a ordering which depends only on element and node locations (except when you have overlapping nodes or elements, where we have to use unique_id() as a "tie breaker"), but you can still only read your data back onto a mesh that is refined in exactly the same way. One option in the case of AMR might be to save your meshes after each refinement step, and if you want to read an old solution onto a new mesh, do so by reading the old mesh, reading the old solution onto the old mesh, and using a MeshFunction to project it onto the new mesh. --- Roy |