These are chat archives for Fortran-FOSS-Programmers/General-Discussion

23rd
Feb 2017
victorsndvg
@victorsndvg
Feb 23 2017 16:20
Sorry all because I'm not often reading this thread ...
@szaghi , related with HDF5 and parallel IO with fortran, maybe you can be interested in XH5For. I've experienced good scalability with it. If you need, I can help you with the first steps! ;)
Stefano Zaghi
@szaghi
Feb 23 2017 16:35

@victorsndvg
Dear Victor,
indeed I am studying your library in these days, it is cool. Do you think that an AMR structure (a hierarchy of refined multi-block domain) can be easily represented into your XDMF format? My IO involves hexaedron cells with variables saved at vertex and/or at center (and probably in the future also some at face). Currently, I implemented a dirty solution as Zaak suggested: a stream-unformatted file where each process can direct do IO into its own position. Not yet tested in parallel, thus it will probably do not scale decently (it is no based in MPI IO). For the moment, I am good with this IO: I am developing a new CFD code from scratch, thus I am doing a lot of serial tests, but when the code will reach a critic mass, I'll start to do parallel tests; at that time I'll decide which way do: 0) my own dirty stream file, 1) MPI IO, 2) HDF5, 3) some other good library like your.

For the moment I have to study... Do you think your library can satisfy my needs (parallel AMR on block-structured hexaedrons)?

victorsndvg
@victorsndvg
Feb 23 2017 17:14
First of all I have to say that the library was created because libxdmf (http://www.xdmf.org) is much more than a simple IO library, for me it was difficult to deal with it and also because the fortran layer was not mature enough when I started to develop XH5For (I don't the current status)
XH5For is a light-weight layer, you only have to pass the number of nodes and elements, and its correspondent arrays per task and it write the data into a HDF5 file per timestep
it does nothing more
Not true, it also communicate the number of elements and nodes per task. The library only use broadcasts and allgathers
victorsndvg
@victorsndvg
Feb 23 2017 17:22
In this schema you can write nodal and elemental fields of this types of elements and some more. Ofcourse hexahedron cells are included and fully tested
Unstructured and structured meshes are supported
Face fields are not supported
victorsndvg
@victorsndvg
Feb 23 2017 17:27
Thats all I think ...
I don't know exactly what do mean when you say AMR in terms of the mesh file. XH5For it only writes raw meshes and fields. There is not yet implemented the writing of any extra-metadata like boundary conditions or vicinity
The last note: It also works sequentially! ;)
Stefano Zaghi
@szaghi
Feb 23 2017 17:38

The last note: It also works sequentially!

This is a great plus... but how do it? to my knowledge, you have to select between HDF5 and Parallel HDF5 a priori...

Indeed, yes, my dirty solution relies on an header where a sort of metadata defines the hierarchy of mesh saved. Without such an information it becomes cumbersome to reconstruct the AMR grid, that can changes step by step. I can save the metadata into a separate file, but this is also not much nice
Anyhow, I'll study you library with much more care soon
cheers