Description
CosseratRodIO
currently does not support multiple rod IO. The user instead has to create an IO object for each rod in order to properly render each rod as a rod in Paraview, with separate xmf files for each rod. A preliminary workaround was to append all the nodes of Cosserat rods into a single array, and then add the array as lagrangian field into base IO
, altogether bypassing the need for CosseratRodIO
. This is slightly undesirable since the rendering in Paraview will render the rods as points and not as polylines.
Instead, the add_as_lagrangian_fields_for_io()
function in the base IO
class should handle multiple rods (i.e multiple grids) just like how add_as_eulerian_fields_for_io()
handles multiple fields (albeit on the same grid). CosseratRodIO
can then leverage that and add rods to the IO as needed, resulting in only one file for paraview rendering.
I will push an updated patch of this implementation in sopht-mpi
(taking care of the parallel hdf5 writing). This should provide a better idea on how we can refactor and merge MPIIO
to the base IO
in sopht
as planned in #146