Name | tankoh2 JSON |
Version |
2.7.2
JSON |
| download |
home_page | None |
Summary | Design and optimization of H2 tanks for high pressure applications and cryogenic hydrogen storage |
upload_time | 2025-08-27 11:09:36 |
maintainer | Caroline Lüders |
docs_url | None |
author | Sebastian Freund |
requires_python | <4.0,>=3.9 |
license | MIT |
keywords |
lh2 tank
winding
hydrogen
storage
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# tankoh2
[](https://gitlab.com/DLR-SY/tank/tankoh2/-/commits/master)
[](https://gitlab.com/DLR-SY/tank/tankoh2/-/commits/master)
[](https://gitlab.com/DLR-SY/tank/tankoh2/-/releases)
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](https://www.mefex.de/software/)
## 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](https://dlr-sy.gitlab.io/tank/tankoh2/)
## Installation
### Installation for users
Coming soon: installation via pypi using `pip install tankoh2`
When tankoh2 is installed, please follow the steps in [Settings File](#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](#settings-file).
### For winding: Path to µChain
Add an environment variable named MYCROPYCHAINPATH
and set its value to the path of your [µChain](https://www.mefex.de/software/) 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](#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](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](LICENSE.md)
## Change Log
see [changelog](changelog.md)
## Authors
[Sebastian Freund](mailto:sebastian.freund@dlr.de)
[Caroline Lüders](mailto:caroline.lueders@dlr.de)
[Linus Jacobsen](mailto:linus.jacobsen@dlr.de)
[Felipe Franzoni](mailto:felipe.franzoni@dlr.de)
Raw data
{
"_id": null,
"home_page": null,
"name": "tankoh2",
"maintainer": "Caroline L\u00fcders",
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": "caroline.lueders@dlr.de>",
"keywords": "lh2 tank, winding, hydrogen, storage",
"author": "Sebastian Freund",
"author_email": "sebastian.freund@dlr.de>",
"download_url": "https://files.pythonhosted.org/packages/89/fa/cc76c7f6155fbc062336d3f2858091b6b0d6bc31cec401e56315ee275d37/tankoh2-2.7.2.tar.gz",
"platform": null,
"description": "# tankoh2\n\n[](https://gitlab.com/DLR-SY/tank/tankoh2/-/commits/master)\n[](https://gitlab.com/DLR-SY/tank/tankoh2/-/commits/master)\n[](https://gitlab.com/DLR-SY/tank/tankoh2/-/releases)\n\n\nDesign and optimization of H2 tanks.\n\nFor metal structures, tankoh2 is a standalone pre-design tool.\nFor CFRP structures, a detailed winding optimization is performed.\nThe winding simulation is carried out by [\u00b5Chain](https://www.mefex.de/software/)\n\n## Features\n\n- Material/layup read/write\n- Define requirements for cryogenic or high-pressure hydrogen storage\n- Create dome (spherical, isotensoid, torisspherical or conical) and liner from cylindrical length and radius or using a dome contour\n- Setup of a vessel model\n- Optimization of each layer with respect to minimizing puck fibre failure, bending loads, and maintaining a good contour\n- Create and run DOE with support of DLR tools (delismm, fa_pyutils)\n- Routines for the improvement of the FEM model generatred by Abaqus CAE\n- Planned features:\n - Global optimization of\n - All angles of helical layers\n - All hoop layer shifts\n - Target: mass minimization\n - Constraint: puck fibre failure\n - Improved DOE: Liner and fitting adjustment w.r.t. vessel geometry\n - Abaqus: introduction of the abaqus solver at the end of the optimization process\n\n## Documentation\nHere is the full [Documentation](https://dlr-sy.gitlab.io/tank/tankoh2/)\n\n## Installation\n\n### Installation for users\nComing soon: installation via pypi using `pip install tankoh2`\n\nWhen tankoh2 is installed, please follow the steps in [Settings File](#settings-file).\n\n### Installation from source\n- Get tankoh2 from\n > https://gitlab.com/DLR-SY/tank/tankoh2.git\n- Install python 3.10 (On the Windows Installer, check the advanced option to add Python to your path and to install pip)\n- Install poetry\n > pip install poetry\n- Install requirements for the project\n > cd <path_to_tankoh2>\n > poetry install\n- When tankoh2 is installed, please follow the steps in [Settings File](#settings-file).\n\n### For winding: Path to \u00b5Chain\n\nAdd an environment variable named MYCROPYCHAINPATH\nand set its value to the path of your [\u00b5Chain](https://www.mefex.de/software/) installation.\n\nOld Method, will be deprecated soon: Alternatively, in the folder `/src/tankoh2/`, create a file `settings.json`\nand include the path here.\n\n```\n{\n \"mycropychainPath\": \"<path_to_muChain>\"\n}\n```\n\n### Activate the environment\n\nThis needs to be done whenever you want to use tankoh2.\nFirst, navigate into tankoh2's source directory.\n\n```\ncd <path_to_tankoh2>/src\n```\n\nThen, 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'.\n\n```\npoetry shell\n```\n\n### Test the installation\n\n```\npython -m tankoh2 --help\n```\n\nYou can perform a standalone test for metal tanks\n\n```\npython -m tankoh2 --materialName alu2219 --windingOrMetal metal --domeType circle\n```\n\n### Developers\n- Follow the steps [Installation from source](#installation-from-source) above\n- Install all dev dependencies and test dependencies listed in ``pyproject.toml``\n\n#### Pre-Commit Hooks\n\nDevelopers may also install the pre-commit hook.\n\n**Precommit**\n1. If not installed: install the pre-commit\n > pip install pre-commit\n2. In the tankoh2 folder\n > pre-commit install\n\nThis enables the pre-commit hooks defined in _.pre-commit-config.yaml_\nand eases your commits and successful pipline runs. You can test pre-commit by running\n> pre-commit run\n\n### Requirements\n\nsee **tool.poetry.dependencies** section in [pyproject.toml](pyproject.toml)\n\nFreeCAD is required for conical domes\n\n## Usage\nA full list the available parameters is created with\n\n```\npython -m tankoh2 --help\n```\n\n### Winding\n\nFor winding mode, a valid \u00b5Wind license is required!\nRun the following, to start a winding optimization.\n\n```\npython -m tankoh2\n```\n\n### Metal\n\nA design run for metal structures can be run by\n\n```\npython -m tankoh2 --materialName alu2219 --windingOrMetal metal --domeType circle\n```\n\n### Config Files:\nIt'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.\nConfig files need to be put in the folder tankoh2/designs and are used via the option --configFile [nameOfFile.yaml]. For example:\n\n```\npython -m tankoh2 --configFile 700bar_example.yaml\n```\n\nAny 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.\nThe 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.\n\nParameters given in config files are overwritten by parameters supplied explicitly via options.\n\n```\npython -m tankoh2 --configFile 700bar_example.yaml --safetyFactor 2.0\n```\nThe option --windingOrMetal can currently not be defined in a config file and must be given explicitly for metal simulation (default is winding).\n\n## Contributing to _tankoh2_\n\nWe welcome your contribution!\n\nIf you want to provide a code change, please:\n\n* Create a fork of the project.\n* Develop the feature/patch\n* Provide a merge request.\n\n> If it is the first time that you contribute, please add yourself to the list\n> of contributors below.\n\n\n## Citing\n\nPlease cite name and web address of the project\n\n## License\n\nsee [license](LICENSE.md)\n\n## Change Log\n\nsee [changelog](changelog.md)\n\n## Authors\n\n[Sebastian Freund](mailto:sebastian.freund@dlr.de)\n[Caroline L\u00fcders](mailto:caroline.lueders@dlr.de)\n[Linus Jacobsen](mailto:linus.jacobsen@dlr.de)\n[Felipe Franzoni](mailto:felipe.franzoni@dlr.de)\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Design and optimization of H2 tanks for high pressure applications and cryogenic hydrogen storage",
"version": "2.7.2",
"project_urls": {
"Changelog": "https://gitlab.dlr.de/sy-stm/software/tankoh2/-/blob/master/changelog.md",
"Documentation": "https://sy-stm.pages.gitlab.dlr.de/software/tankoh2/",
"Homepage": "https://gitlab.dlr.de/sy-stm/software//tankoh2",
"Repository": "https://gitlab.com/DLR-SY/tank/tankoh2"
},
"split_keywords": [
"lh2 tank",
" winding",
" hydrogen",
" storage"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "123333096578d321d316d87230002b21a86a91fe574a1a9bed92a6fb498e6a79",
"md5": "3d3ba8a0878ff59f4ee02adc6a861ef0",
"sha256": "e38cdb611226d4af06473c0918e6287197d2a06c880ff0333ac1bc4e3d3486ec"
},
"downloads": -1,
"filename": "tankoh2-2.7.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3d3ba8a0878ff59f4ee02adc6a861ef0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 222559,
"upload_time": "2025-08-27T11:09:35",
"upload_time_iso_8601": "2025-08-27T11:09:35.508802Z",
"url": "https://files.pythonhosted.org/packages/12/33/33096578d321d316d87230002b21a86a91fe574a1a9bed92a6fb498e6a79/tankoh2-2.7.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "89facc76c7f6155fbc062336d3f2858091b6b0d6bc31cec401e56315ee275d37",
"md5": "71d26d2015dff24c8fb3a072a0b8dcf3",
"sha256": "a4824659029bfe93671eaea5c8b2cfa909b7f5d1d5a1faf0fad854c9e880280b"
},
"downloads": -1,
"filename": "tankoh2-2.7.2.tar.gz",
"has_sig": false,
"md5_digest": "71d26d2015dff24c8fb3a072a0b8dcf3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 195464,
"upload_time": "2025-08-27T11:09:36",
"upload_time_iso_8601": "2025-08-27T11:09:36.609132Z",
"url": "https://files.pythonhosted.org/packages/89/fa/cc76c7f6155fbc062336d3f2858091b6b0d6bc31cec401e56315ee275d37/tankoh2-2.7.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-27 11:09:36",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "DLR-SY",
"gitlab_project": "tank",
"lcname": "tankoh2"
}