On 28/09/2013 11:31, Garth N. Wells wrote:
On 28 September 2013 10:42, Chris Richardson <[email protected]> wrote:

This is a continuation of the discussion at:

https://bitbucket.org/fenics-project/dolfin/pull-request/52

The question is how best to save a time-series of Function in HDF5, when the
cell and dof layout remains constant.

It has been suggested to use:

u = Function(V)
h0 = HDF5File('Timeseries_of_Function.h5', 'w')
h0.write(u, '/Function')
# Then later
h0.write(u.vector(), "/Vector/0")
h0.write(u.vector(), "/Vector/1")


Shouldn't this be

    h0.write(u.vector(), "/Function/Vector/0")
    h0.write(u.vector(), "/Function/Vector/1")


In the HDF5File model, the user is free to put vectors etc wherever they want. There is no explicit meaning
to dumping extra vectors inside the "group" of a Function.


and to read back:

u = Function(V)
h0 = HDF5File('Timeseries_of_Function.h5', 'r')
h0.read(u, "/Function")
h0.read(u.vector(), "/Function/vector")


OK, this probably should have been

h0.read(u.vector(), "/Vector/1")

When reading in a vector, it is just read directly, and
not reordered in any way. If the vector was saved from a different set of processors, with different partitioning, the order could be quite different.

When reading a Function, the vector is reordered to take this into account.

If the vector is already associated with a Function (not all vectors are) then it should be possible to reorder it when reading... maybe that should be an option.

Chris
_______________________________________________
fenics mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics

Reply via email to