Design and optimization of H2 tanks for high pressure applications and cryogenic hydrogen storage
Project description
tankoh2
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
- Global optimization of
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
- 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
- If not installed: install the pre-commit
pip install pre-commit
- 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tankoh2-2.9.0.tar.gz.
File metadata
- Download URL: tankoh2-2.9.0.tar.gz
- Upload date:
- Size: 435.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a84eb2e4e7f5df787998422b8f364cd7088ca577a30db2deb6ed3a37aa63c02e
|
|
| MD5 |
3498004a38f99504bb055e0d35036a62
|
|
| BLAKE2b-256 |
670d1972473f3a9ae971bc1bed70792bc608fccf1fe15a8d44e0aea3bfb626e5
|
File details
Details for the file tankoh2-2.9.0-py3-none-any.whl.
File metadata
- Download URL: tankoh2-2.9.0-py3-none-any.whl
- Upload date:
- Size: 477.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54ee6d896ba5c36f1c869c1ff33ffabbe5f0d88ea94c1cdda94fe62b7bc3cfe0
|
|
| MD5 |
58e8c45283fe97b02101dd349638c1ea
|
|
| BLAKE2b-256 |
978150cc18f83a799d87724228c541fc232886c49979219fe9965be211150ea4
|