Skip to main content

Design and optimization of H2 tanks for high pressure applications and cryogenic hydrogen storage

Project description

tankoh2

pipeline status coverage report Latest Release

Design and optimization of H2 tanks.

For metal structures, tankoh2 is a standalone pre-design tool. For CFRP structures, a detailed winding optimization is performed. The winding simulation is carried out by µChain

Features

  • Material/layup read/write
  • Define requirements for cryogenic or high-pressure hydrogen storage
  • Create dome (spherical, isotensoid, torisspherical or conical) and liner from cylindrical length and radius or using a dome contour
  • Setup of a vessel model
  • Optimization of each layer with respect to minimizing puck fibre failure, bending loads, and maintaining a good contour
  • Create and run DOE with support of DLR tools (delismm, fa_pyutils)
  • Routines for the improvement of the FEM model generatred by Abaqus CAE
  • Planned features:
    • Global optimization of
      • All angles of helical layers
      • All hoop layer shifts
      • Target: mass minimization
      • Constraint: puck fibre failure
    • Improved DOE: Liner and fitting adjustment w.r.t. vessel geometry
    • Abaqus: introduction of the abaqus solver at the end of the optimization process

Documentation

Here is the full Documentation

Installation

Installation for users

Coming soon: installation via pypi using pip install tankoh2

When tankoh2 is installed, please follow the steps in Settings File.

Installation from source

  • Get tankoh2 from

    https://gitlab.com/DLR-SY/tank/tankoh2.git

  • Install python 3.10 (On the Windows Installer, check the advanced option to add Python to your path and to install pip)
  • Install poetry

    pip install poetry

  • Install requirements for the project

    cd <path_to_tankoh2> poetry install

  • When tankoh2 is installed, please follow the steps in Settings File.

For winding: Path to µChain

Add an environment variable named MYCROPYCHAINPATH and set its value to the path of your µChain installation.

Old Method, will be deprecated soon: Alternatively, in the folder /src/tankoh2/, create a file settings.json and include the path here.

{
  "mycropychainPath": "<path_to_muChain>"
}

Activate the environment

This needs to be done whenever you want to use tankoh2. First, navigate into tankoh2's source directory.

cd <path_to_tankoh2>/src

Then, before running tankoh2, you need to activate the python environment created by poetry during the installation. Alternatively replace 'python' in the commands with 'poetry run'.

poetry shell

Test the installation

python -m tankoh2 --help

You can perform a standalone test for metal tanks

python -m tankoh2 --materialName alu2219 --windingOrMetal metal --domeType circle

Developers

  • Follow the steps Installation from source above
  • Install all dev dependencies and test dependencies listed in pyproject.toml

Pre-Commit Hooks

Developers may also install the pre-commit hook.

Precommit

  1. If not installed: install the pre-commit

    pip install pre-commit

  2. In the tankoh2 folder

    pre-commit install

This enables the pre-commit hooks defined in .pre-commit-config.yaml and eases your commits and successful pipline runs. You can test pre-commit by running

pre-commit run

Requirements

see tool.poetry.dependencies section in pyproject.toml

FreeCAD is required for conical domes

Usage

A full list the available parameters is created with

python -m tankoh2 --help

Winding

For winding mode, a valid µWind license is required! Run the following, to start a winding optimization.

python -m tankoh2

Metal

A design run for metal structures can be run by

python -m tankoh2 --materialName alu2219 --windingOrMetal metal --domeType circle

Config Files:

It's easiest to write design config files in .yaml format to define any parameters for the winding or metal simulation. Using config files, it's possible to reproduce and modify runs. Config files need to be put in the folder tankoh2/designs and are used via the option --configFile [nameOfFile.yaml]. For example:

python -m tankoh2 --configFile 700bar_example.yaml

Any non-default parameters can be defined in parameter:value pairs. All possible parameters with descriptions can be seen in defaults.yaml and in the documentation. Config files can also recursively include other configFiles as parameters, whose parameters can be overwritten. The parameters which were used in each run are also saved in .yaml format in the run directory. These directories are located under tankoh2/tmp by default.

Parameters given in config files are overwritten by parameters supplied explicitly via options.

python -m tankoh2 --configFile 700bar_example.yaml --safetyFactor 2.0

The option --windingOrMetal can currently not be defined in a config file and must be given explicitly for metal simulation (default is winding).

Contributing to tankoh2

We welcome your contribution!

If you want to provide a code change, please:

  • Create a fork of the project.
  • Develop the feature/patch
  • Provide a merge request.

If it is the first time that you contribute, please add yourself to the list of contributors below.

Citing

Please cite name and web address of the project

License

see license

Change Log

see changelog

Authors

Sebastian Freund Caroline Lüders Linus Jacobsen Felipe Franzoni

Project details


Download files

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

Source Distribution

tankoh2-2.8.1.tar.gz (201.4 kB view details)

Uploaded Source

Built Distribution

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

tankoh2-2.8.1-py3-none-any.whl (229.2 kB view details)

Uploaded Python 3

File details

Details for the file tankoh2-2.8.1.tar.gz.

File metadata

  • Download URL: tankoh2-2.8.1.tar.gz
  • Upload date:
  • Size: 201.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for tankoh2-2.8.1.tar.gz
Algorithm Hash digest
SHA256 c7bd70e7be259a83a98abc77a27396bcf100448585179c1901b19fab389a3d36
MD5 714d004176670d07dd80e5879f453734
BLAKE2b-256 2538ff0464a6b16551edbf7a09447a268fba7ef7f7831e611abff47e332fb5db

See more details on using hashes here.

File details

Details for the file tankoh2-2.8.1-py3-none-any.whl.

File metadata

  • Download URL: tankoh2-2.8.1-py3-none-any.whl
  • Upload date:
  • Size: 229.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for tankoh2-2.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 de05670e766ff657b21b920f44a15df5f80002c800e69099b9e47d89fe377a92
MD5 2fcf3df4c00f45544a9e098e792b1abf
BLAKE2b-256 bb3cb65c19a08812bf92af72e826cf9fc5ccb7a211621a606e36308b292b7885

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