New member : HDF5 previous to Finite Element Analyses

Dear All,

I'm thinking in using hdf5 format in order to store FEA results prior to
additional "in-house" calculations; I'm currently diging into the docs
to unterstand how it works, but I would like to know if a standard (or a
"best practice") exists in how to make it for that specific topic/field?

The main objective is not to reinvent the wheel :slight_smile: but to take benefits
to years of feedback from the community.

(I'm using a finite element solver for mechanical and thermal analyses,
in static/transient condition, and linear/non-linear calculations ...
very basic).

Regards

Paul

If you are looking for an FEA “standard” I/O format, it does not exist. CGNS is as close as it gets, but that is for CFD data. There has been some discussion in the past to extend CGNS to include Solid Mechanics, but it never gained traction. For FEA data formats which are geared towards solid mechanics and store the data in HDF5 you have these that I know of:

(1) Exodus (https://gsjaardema.github.io/seacas/)

(2) Silo (https://wci.llnl.gov/simulation/computer-codes/silo)

(3) MOAB (http://sigma.mcs.anl.gov/moab-library/)

(4) XDMF (http://www.xdmf.org/index.php/XDMF_Model_and_Format)

Most vis packages can read these formats and understand that it is FE data.

Scot

···

On Feb 20, 2018, at 8:36 AM, paul.carrico@free.fr<mailto:paul.carrico@free.fr> wrote:

Dear All,

I'm thinking in using hdf5 format in order to store FEA results prior to additional "in-house" calculations; I'm currently diging into the docs to unterstand how it works, but I would like to know if a standard (or a "best practice") exists in how to make it for that specific topic/field?

The main objective is not to reinvent the wheel :slight_smile: but to take benefits to years of feedback from the community.

(I'm using a finite element solver for mechanical and thermal analyses, in static/transient condition, and linear/non-linear calculations ... very basic).

Regards

Paul

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@lists.hdfgroup.org<mailto:Hdf-forum@lists.hdfgroup.org>
http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

Hi Scot,

First of all thanks for this feedback and links.

I would like to say that the goal is first to store and work on the data
coming from the finite element solver; in my reflexion the
post-processing is another stage and I'm looking at xdmf format for that
purpose (that can call hdf5 file for "heavy" data).

My questioning is on the structure of the hdf5 file that will contain
huge amount of data (mesh and results); in order to be efficient, I'm
wondering where I can find "best pratices", articles or usefull
information's in the litterature.

Regards

Paul

···

Le 2018-02-20 16:24, Scot Breitenfeld a Ă©crit :

If you are looking for an FEA "standard" I/O format, it does not exist. CGNS is as close as it gets, but that is for CFD data. There has been some discussion in the past to extend CGNS to include Solid Mechanics, but it never gained traction. For FEA data formats which are geared towards solid mechanics and store the data in HDF5 you have these that I know of:

(1) Exodus (https://gsjaardema.github.io/seacas/)

(2) Silo (https://wci.llnl.gov/simulation/computer-codes/silo)

(3) MOAB (http://sigma.mcs.anl.gov/moab-library/)

(4) XDMF (http://www.xdmf.org/index.php/XDMF_Model_and_Format)

Most vis packages can read these formats and understand that it is FE data.

Scot

On Feb 20, 2018, at 8:36 AM, paul.carrico@free.fr wrote:

Dear All,

I'm thinking in using hdf5 format in order to store FEA results prior to additional "in-house" calculations; I'm currently diging into the docs to unterstand how it works, but I would like to know if a standard (or a "best practice") exists in how to make it for that specific topic/field?

The main objective is not to reinvent the wheel :slight_smile: but to take benefits to years of feedback from the community.

(I'm using a finite element solver for mechanical and thermal analyses, in static/transient condition, and linear/non-linear calculations ... very basic).

Regards

Paul _______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@lists.hdfgroup.org
http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@lists.hdfgroup.org
http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

This is a wide-open question. Obviously, you can look at the codes I mentioned to see how they best laid out their FE data in the HDF5 file. You can also look at the CGNS data layout.

If you are looking into "general" examples of how to write FE data into an HDF5 file then you can look into a couple of projects we've worked on:

(1) https://github.com/PETTT/miniIO
Is a set of I/O kernels for unstructured, structure, AMR, and cartesian meshes; we used these for parallel benchmarks and they use XDMF. These might be more approachable then looking at full production FE I/O libraries.

(2) https://bitbucket.hdfgroup.org/projects/HDFFV/repos/performance/browse/combust_io
Is another FE I/O kernel we plan on using as an HDF5 benchmark.

Additionally, there are best-use practices you can find on the HDF5 webpage. For example, about performance issues,

https://support.hdfgroup.org/HDF5/faq/perfissues.html

and general FAQs about the software,

https://support.hdfgroup.org/HDF5/hdf5-quest.html

would be a good place to start.

Scot

···

On Feb 21, 2018, at 2:11 AM, paul.carrico@free.fr<mailto:paul.carrico@free.fr> wrote:

Hi Scot,

First of all thanks for this feedback and links.

I would like to say that the goal is first to store and work on the data coming from the finite element solver; in my reflexion the post-processing is another stage and I'm looking at xdmf format for that purpose (that can call hdf5 file for "heavy" data).

My questioning is on the structure of the hdf5 file that will contain huge amount of data (mesh and results); in order to be efficient, I'm wondering where I can find "best pratices", articles or usefull information's in the litterature.

Regards

Paul

Le 2018-02-20 16:24, Scot Breitenfeld a Ă©crit :

If you are looking for an FEA "standard" I/O format, it does not exist. CGNS is as close as it gets, but that is for CFD data. There has been some discussion in the past to extend CGNS to include Solid Mechanics, but it never gained traction. For FEA data formats which are geared towards solid mechanics and store the data in HDF5 you have these that I know of:

(1) Exodus (https://gsjaardema.github.io/seacas/)

(2) Silo (https://wci.llnl.gov/simulation/computer-codes/silo)

(3) MOAB (http://sigma.mcs.anl.gov/moab-library/)

(4) XDMF (http://www.xdmf.org/index.php/XDMF_Model_and_Format)

Most vis packages can read these formats and understand that it is FE data.

Scot

On Feb 20, 2018, at 8:36 AM, paul.carrico@free.fr<mailto:paul.carrico@free.fr> wrote:

Dear All,

I'm thinking in using hdf5 format in order to store FEA results prior to additional "in-house" calculations; I'm currently diging into the docs to unterstand how it works, but I would like to know if a standard (or a "best practice") exists in how to make it for that specific topic/field?

The main objective is not to reinvent the wheel :slight_smile: but to take benefits to years of feedback from the community.

(I'm using a finite element solver for mechanical and thermal analyses, in static/transient condition, and linear/non-linear calculations ... very basic).

Regards

Paul

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@lists.hdfgroup.org<mailto:Hdf-forum@lists.hdfgroup.org>
http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@lists.hdfgroup.org<mailto:Hdf-forum@lists.hdfgroup.org>
http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

Hi Paul.

I’ve worked on some finite element visualizations and developed a data layout for hdf5 on that way, where data is stored on nodes and/or integration points, and connectivity in the time steps where it is changing and linked otherwise, node/elemnts sets, … . Maybe it is useful for you:
pdf

Best,
Marcel

Hi Paul

you can find here a simple Mesh API which is pretty typical and a good starting point

https://gamma.hdfgroup.org/papers/prototypes/mesh/

I use HDF5 for storing FEA data alongside lots of other data in blobs, XML, etc. I use HDF5 as a container for everything. Some things to consider for your data structure implementations using HDF5 is the following:

  1. Grouping of data: will it scale if you want to save more data from other sources?

  2. HDF5 is useful for storing large arrays of data that are shared between clients. The persistence data of a single client might be better off serialized.

  3. Does the HDF5 metadata system support the performance characteristics for your application? The tree structure of HDF5 makes it extremely slow to collect e.g. the same result variable from several time steps. Some redundant lookup tables are a lifesaver in this case.

Kind regards

Dimitris

Thanks Marcel for the feedback - I’ll have a deep look in your pdf file

Regards

Paul

Thanks Dimitri