Skip to main content

KRATOS Multiphysics ("Kratos") is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.

Project description

HDF5Application

The HDF5Application enables the serialization of a model part with or without MPI using the HDF5 library. The model part is stored in and HDF5 file, which can be used for:

  • Viewing a model part with HDFVIEW
  • Scientific visualization with tools supporting XDMF. Tools, which are known to work, include ParaView 5.4 and VisIt.
  • Checkpointing (under development).
  • Re-partitioning (not supported yet).

Installing HDF5 (minimum version 1.8)

The HDF5 C libraries are used with the HDF5Application. If Kratos is configured with MPI then the parallel HDF5 library must be installed. Otherwise, the serial HDF5 library is used.

Serial HDF5 Library

Ubuntu

    sudo apt-get install libhdf5-dev

Parallel HDF5 Library

Ubuntu

    sudo apt-get install libhdf5-openmpi-dev

Build Instructions

  1. Install serial or parallel HDF5 library

  2. Configure Kratos to build the HDF5Application (following the standard instructions)

    • For GNU/Linux:
    add_app ${KRATOS_APP_DIR}/HDF5Application
    
    • For Windows:
    CALL :add_app %KRATOS_APP_DIR%\HDF5Application;
    
  3. Build Kratos

Installing h5py

This package is needed to use some of the python-files, e.g. xdmf_utils.py

    sudo apt-get install python-h5py / python3-h5py

Note

The minimum version for the GCC compiler is 4.9. This is because earlier version don't fully support regular expressions.

Kratos processes

There are few available HDF5 processes which can be integrated into work flow via ProjectParameters.json file.

Initialization from hdf5 process

This process can be used to initialize a given model part using existing HDF5 files. Illustrated example reads in VELOCITY and PRESSURE variables from "hdf5_output/example_initialization_file.h5" file to nodal historical data value container, and nodal, elemental and condition non-historical data value containers. This process also can read FLAGS from HDF5 file and populate model part accordingly.

For the list_of_variables in either nodal_data_value_settings, element_data_value_settings, condition_data_value_settings one can specify ALL_VARIABLES_FROM_FILE which will read all the variables available in the input hdf5 file and will populate the model part accordingly. This ALL_VARIABLES_FROM_FILE should be used alone (There can be only this entry in the list if it is used).

            {
                "kratos_module": "KratosMultiphysics.HDF5Application",
                "python_module": "initialization_from_hdf5_process",
                "Parameters": {
                    "model_part_name": "MainModelPart",
                    "file_settings": {
                        "file_name": "hdf5_output/example_initialization_file.h5",
                        "echo_level": 1
                    },
                    "nodal_solution_step_data_settings" : {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "nodal_data_value_settings": {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "element_data_value_settings" : {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "condition_data_value_settings" : {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "nodal_flag_value_settings": {
                        "list_of_variables": [
                            "SLIP"
                        ]
                    },
                    "element_flag_value_settings" : {
                        "list_of_variables": [
                            "SLIP"
                        ]
                    },
                    "condition_flag_value_settings" : {
                        "list_of_variables": [
                            "SLIP"
                        ]
                    }
                }
            }

Single mesh temporal input process

This process is used to initialize model part variables at each time step from hdf5 files. You can specify the list of hdf5 files to read from by changing the "file_name" with tags <time> as shown in following example. If no <time> tag is present in "file_name", then same file will be read at each time step and the variables specified will be initialized. In this process, mesh is only read from the initial time step file. Results for each container will be read from time series h5 files.

For the list_of_variables in either nodal_data_value_settings, element_data_value_settings, condition_data_value_settings one can specify ALL_VARIABLES_FROM_FILE which will read all the variables available in the input hdf5 file and will populate the model part accordingly. This ALL_VARIABLES_FROM_FILE should be used alone (There can be only this entry in the list if it is used).

            {
                "kratos_module": "KratosMultiphysics.HDF5Application",
                "python_module": "single_mesh_temporal_input_process",
                "Parameters": {
                    "model_part_name": "MainModelPart",
                    "file_settings": {
                        "file_name": "hdf5_output/<model_part_name>-<time>.h5",
                        "time_format": "0.4f",
                        "echo_level": 1
                    },
                    "nodal_solution_step_data_settings" : {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "nodal_data_value_settings": {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "element_data_value_settings" : {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "condition_data_value_settings" : {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "nodal_flag_value_settings": {
                        "list_of_variables": [
                            "SLIP"
                        ]
                    },
                    "element_flag_value_settings" : {
                        "list_of_variables": [
                            "SLIP"
                        ]
                    },
                    "condition_flag_value_settings" : {
                        "list_of_variables": [
                            "SLIP"
                        ]
                    }
                }
            }

Single mesh temporal output process

This process can be used to output data from model parts to HDF5. This will write mesh only in the first time step h5 file. Rest of the time series h5 files will contain only results for each nodal/element/condition containers.

For the list_of_variables in nodal_solution_step_data_settings, one can specify ALL_VARIABLES_FROM_VARIABLES_LIST as the only item (Then this list should only have that entry) so it will write all the variables in the corresponding model's solution step variable list.

            {
                "kratos_module": "KratosMultiphysics.HDF5Application",
                "python_module": "single_mesh_temporal_output_process",
                "Parameters": {
                    "model_part_name": "MainModelPart",
                    "file_settings": {
                        "file_name": "hdf5_output/<model_part_name>-<time>.h5",
                        "time_format": "0.4f",
                        "max_files_to_keep": "unlimited",
                        "echo_level": 1
                    },
                    "output_time_settings": {
                        "step_frequency": 1,
                        "time_frequency": 1.0
                    },
                    "nodal_solution_step_data_settings" : {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "nodal_data_value_settings": {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "element_data_value_settings" : {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "element_gauss_point_value_settings" : {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "condition_data_value_settings" : {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "condition_gauss_point_value_settings" : {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "nodal_flag_value_settings": {
                        "list_of_variables": [
                            "SLIP"
                        ]
                    },
                    "element_flag_value_settings" : {
                        "list_of_variables": [
                            "SLIP"
                        ]
                    },
                    "condition_flag_value_settings" : {
                        "list_of_variables": [
                            "SLIP"
                        ]
                    }
                }
            }

Multiple mesh temporal output process

This process is used to output model part variable data to HDF5 with mesh written for each time step. This is useful in the case if required to write down deformed mesh in each time step.

For the list_of_variables in nodal_solution_step_data_settings, one can specify ALL_VARIABLES_FROM_VARIABLES_LIST as the only item (Then this list should only have that entry) so it will write all the variables in the corresponding model's solution step variable list.

            {
                "kratos_module": "KratosMultiphysics.HDF5Application",
                "python_module": "multiple_mesh_temporal_output_process",
                "Parameters": {
                    "model_part_name": "MainModelPart",
                    "file_settings": {
                        "file_name": "hdf5_output/<model_part_name>-<time>.h5",
                        "time_format": "0.4f",
                        "max_files_to_keep": "unlimited",
                        "echo_level": 1
                    },
                    "output_time_settings": {
                        "step_frequency": 1,
                        "time_frequency": 1.0
                    },
                    "model_part_output_settings": {
                        "prefix": "/ModelData"
                    },
                    "nodal_solution_step_data_settings" : {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "nodal_data_value_settings": {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "element_data_value_settings" : {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "element_gauss_point_value_settings" : {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "condition_data_value_settings" : {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "condition_gauss_point_value_settings" : {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "nodal_flag_value_settings": {
                        "list_of_variables": [
                            "SLIP"
                        ]
                    },
                    "element_flag_value_settings" : {
                        "list_of_variables": [
                            "SLIP"
                        ]
                    },
                    "condition_flag_value_settings" : {
                        "list_of_variables": [
                            "SLIP"
                        ]
                    }
                }
            }

Single mesh xdmf output process for Paraview

This process outputs model part variable data for each time step, additionally it writes down the XDMF file after each time step which is required to visualize HDF5 data in paraview. This process requires h5py to be installed in the python version (which is compiled with Kratos Multiphysics)

For the list_of_variables in nodal_solution_step_data_settings, one can specify ALL_VARIABLES_FROM_VARIABLES_LIST as the only item (Then this list should only have that entry) so it will write all the variables in the corresponding model's solution step variable list.

            {
                "kratos_module": "KratosMultiphysics.HDF5Application",
                "python_module": "single_mesh_xdmf_output_process",
                "Parameters": {
                    "model_part_name": "MainModelPart",
                    "file_settings": {
                        "file_name": "hdf5_output/<model_part_name>-<time>.h5",
                        "time_format": "0.4f",
                        "max_files_to_keep": "unlimited",
                        "echo_level": 1
                    },
                    "output_time_settings": {
                        "step_frequency": 1,
                        "time_frequency": 1.0
                    },
                    "model_part_output_settings": {
                        "prefix": "/ModelData"
                    },
                    "nodal_solution_step_data_settings" : {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "nodal_data_value_settings": {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "element_data_value_settings" : {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "condition_data_value_settings" : {
                        "list_of_variables": [
                            "VELOCITY",
                            "PRESSURE"
                        ]
                    },
                    "nodal_flag_value_settings": {
                        "list_of_variables": [
                            "SLIP"
                        ]
                    },
                    "element_flag_value_settings" : {
                        "list_of_variables": [
                            "SLIP"
                        ]
                    },
                    "condition_flag_value_settings" : {
                        "list_of_variables": [
                            "SLIP"
                        ]
                    }
                }
            }

User defined I/O process

Users can build their own I/O processes by using components of HDF5 application. Following is such example. This example writes model part, and DISPLACEMENT values for each time step at finalize_solution_step

            {
                "kratos_module": "KratosMultiphysics.HDF5Application",
                "python_module": "user_defined_io_process",
                "Parameters": {
                    "model_part_name": "MainModelPart",
                    "process_step": "finalize_solution_step",
                    "controller_settings": {
                        "controller_type": "temporal_controller",
                        "time_frequency": 0.5
                    },
                    "io_settings": {
                        "file_name": "results/<model_part_name>-<time>.h5"
                    },
                    "list_of_operations": [
                        {
                            "operation_type": "model_part_output"
                        },
                        {
                            "operation_type": "nodal_solution_step_data_output",
                            "list_of_variables": ["DISPLACEMENT"]
                        }
                    ]
                }
            }

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

KratosHDF5Application-9.2.2-cp310-cp310-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.10Windows x86-64

KratosHDF5Application-9.2.2-cp39-cp39-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.9Windows x86-64

KratosHDF5Application-9.2.2-cp38-cp38-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.8Windows x86-64

KratosHDF5Application-9.2.2-cp37-cp37m-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.7mWindows x86-64

KratosHDF5Application-9.2.2-cp36-cp36m-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.6mWindows x86-64

File details

Details for the file KratosHDF5Application-9.2.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: KratosHDF5Application-9.2.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.5 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.11

File hashes

Hashes for KratosHDF5Application-9.2.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 be2eba5466615f5a8f65e297c3b410644f7413d34565a991fc7f93c09014b56b
MD5 2873da79efb1418b666105df5b4485ba
BLAKE2b-256 9f21817deac0063e8b9d3f24a92fff77c2924c2d795ec83c6569a7a3a50aa006

See more details on using hashes here.

File details

Details for the file KratosHDF5Application-9.2.2-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: KratosHDF5Application-9.2.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 2.5 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.11

File hashes

Hashes for KratosHDF5Application-9.2.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 3a7485f06486cc364a586118ddfc1017cac9a805e940058c4413128a058daad2
MD5 bc831a0a2f2a5674648640259916a5f3
BLAKE2b-256 ef959b4baec67f3aa5091bcfe241ec7720fc9a0347c03dad80d41e3cc5f6f832

See more details on using hashes here.

File details

Details for the file KratosHDF5Application-9.2.2-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: KratosHDF5Application-9.2.2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 2.5 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.11

File hashes

Hashes for KratosHDF5Application-9.2.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 442d5741d41052e45a2caf6617783da3887dedf98181a208e63b83891b7f4053
MD5 bce9acd68072f5d55432d30ea65a6700
BLAKE2b-256 67eaf86eba62a4548f931b5df94b8d8de4346efbdd9a6524b74927c4222486ab

See more details on using hashes here.

File details

Details for the file KratosHDF5Application-9.2.2-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: KratosHDF5Application-9.2.2-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 2.5 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.11

File hashes

Hashes for KratosHDF5Application-9.2.2-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 9bdc5d75f745d9db2a08aaf66c4c623085ffbf6463ce67289f6ca21cfa80a954
MD5 3170a8a0532077743c6db6e2eb09c00e
BLAKE2b-256 3aec7364b234646319861cd901d74536265fe7f3e90c558c7e90efdb5a95afe4

See more details on using hashes here.

File details

Details for the file KratosHDF5Application-9.2.2-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: KratosHDF5Application-9.2.2-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 2.5 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.11

File hashes

Hashes for KratosHDF5Application-9.2.2-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 7c1beceb31c4b5a43d0db224a1d62aa3afb2c9e946f96604695566a08526df95
MD5 a586fc94bd668e89018b5a487a1b79f5
BLAKE2b-256 e39857337b51af5b0af34b638686fb3e6f640c1fa6c09c21d9d9d3db1d7eb2b3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page