No project description provided
Project description
Glacium
Glacium is a lightweight command line tool to manage small
simulation workflows. Projects are created inside the runs/
directory of the current working directory and consist of a global configuration, a set of jobs and
rendered templates. The focus lies on easily defining new recipes and
executing jobs in dependency order.
Installation
Install the package with pip (Python 3.12 or newer is required):
pip install .
Warning: make sure the old pyfpdf package is not installed alongside
fpdf2. The two libraries conflict and can lead to runtime errors. If you see a
warning about PyFPDF, run:
pip uninstall --yes pyfpdf
This exposes a glacium command via the console script entry point.
The DejaVuSans.ttf font used for PDF reports ships with the package.
Usage
Below is a quick tour through the most important CLI commands. Each
command provides --help for additional options.
Create a project
# create a new project from the default recipe
glacium new MyWing
The multishot recipe runs ten solver cycles by default. Override the count with
--multishots:
glacium new MyWing --multishots 5
The command prints the generated project UID. All projects live below
./runs/<UID> in the current working directory. glacium new and glacium init parse case.yaml and write global_config.yaml automatically.
When running multishot jobs the template files for each shot are generated
automatically. After editing case.yaml you can run glacium update to
regenerate the configuration. Set CASE_MULTISHOT in case.yaml to a list
of icing times for each shot.
Case sweep
glacium case-sweep --param CASE_AOA=0,4 --param CASE_VELOCITY=50,100
Use --multishots to change the number of solver cycles per project
(defaults to 10):
glacium case-sweep --param CASE_AOA=0,4 --multishots 20
One project is created for each parameter combination and
global_config.yaml is generated from the project's case.yaml.
The command prints the generated UIDs.
Pipeline
Run a grid convergence study and spawn follow-up projects::
glacium pipeline --level 1 --level 2 --multishot "[10,300,300]"
The call executes the grid-convergence pipeline layout which
creates one project per grid level using the grid_dep recipe,
selects the mesh with the lowest drag and then generates and runs a
single-shot project and optional MULTISHOT case with the chosen grid.
Multishot projects use the multishot recipe. Use --layout to select
another workflow and --pdf to merge all report PDFs into a single
summary file.
List projects
glacium projects
Select a project
# select by number from `glacium projects`
glacium select 1
The selected UID is stored in ~/.glacium_current and used by other
commands.
Run jobs
# run all pending jobs in the current project
glacium run
You can run specific jobs by name as well:
glacium run XFOIL_REFINE XFOIL_POLAR
Show job status
glacium list
The table now includes an index column so you can refer to jobs by number.
Manage individual jobs
# reset a job to PENDING
glacium job reset XFOIL_POLAR
glacium job reset 1 # via index
You can list all available job types with numbers:
glacium job --list
Select a job of the current project by its index:
glacium job select 1
Jobs can also be added or removed via their index:
glacium job add 1
glacium job remove 1
Sync projects with recipes
# refresh the job list of the current project
glacium sync
Update configuration
# rebuild global_config.yaml from case.yaml
glacium update
Display project info
glacium info
Print the case.yaml parameters and a few values from
global_config.yaml for the current project.
Remove projects
# delete the selected project
glacium remove
Use --all to remove every project under runs in the current working directory.
External executables
Paths to third party programs can be configured in
runs/<UID>/_cfg/global_config.yaml inside the current working directory. Important keys include
POINTWISE_BIN, FENSAP_BIN and the newly added
FLUENT2FENSAP_EXE pointing to fluent2fensap.exe on Windows.
Logging
Set GLACIUM_LOG_LEVEL to control the verbosity of the CLI. For example::
export GLACIUM_LOG_LEVEL=DEBUG
Development
All tests can be run with:
pytest
To enable automatic version management install the plugin once:
poetry self add "poetry-dynamic-versioning[plugin]"
poetry install will pull setuptools_scm as specified in pyproject.toml.
Versions are taken from Git tags, e.g.:
git tag v1.2.0 -m "release"
Project details
Release history Release notifications | RSS feed
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 glacium-0.1.9.tar.gz.
File metadata
- Download URL: glacium-0.1.9.tar.gz
- Upload date:
- Size: 472.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9339c3f94908f5c815463c4c9a705deb03cafc88b287412f08ab2b063c557c74
|
|
| MD5 |
7ce352d03c34f155b7a88ef18267687c
|
|
| BLAKE2b-256 |
d298f7f6a26d592b9675fbb6dba80c061370fd3a018431490d59606e262af1a4
|
Provenance
The following attestation bundles were made for glacium-0.1.9.tar.gz:
Publisher:
publish.yml on fledit-sh/glacium-repo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
glacium-0.1.9.tar.gz -
Subject digest:
9339c3f94908f5c815463c4c9a705deb03cafc88b287412f08ab2b063c557c74 - Sigstore transparency entry: 277502943
- Sigstore integration time:
-
Permalink:
fledit-sh/glacium-repo@99889d12b07f8d871fdc5f77ebd1cad5bf7aa7eb -
Branch / Tag:
refs/tags/v0.1.9 - Owner: https://github.com/fledit-sh
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@99889d12b07f8d871fdc5f77ebd1cad5bf7aa7eb -
Trigger Event:
push
-
Statement type:
File details
Details for the file glacium-0.1.9-py3-none-any.whl.
File metadata
- Download URL: glacium-0.1.9-py3-none-any.whl
- Upload date:
- Size: 524.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c41b84305085944446fd48cc1580967b89632fa6e441eb68298f0f2fc3c09f4b
|
|
| MD5 |
75fa43b9a5577a403c353cb5670e92fa
|
|
| BLAKE2b-256 |
d8346e775c999feed9b84dbc657c9f9e8734c352a75fd117819418ee80233f02
|
Provenance
The following attestation bundles were made for glacium-0.1.9-py3-none-any.whl:
Publisher:
publish.yml on fledit-sh/glacium-repo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
glacium-0.1.9-py3-none-any.whl -
Subject digest:
c41b84305085944446fd48cc1580967b89632fa6e441eb68298f0f2fc3c09f4b - Sigstore transparency entry: 277502967
- Sigstore integration time:
-
Permalink:
fledit-sh/glacium-repo@99889d12b07f8d871fdc5f77ebd1cad5bf7aa7eb -
Branch / Tag:
refs/tags/v0.1.9 - Owner: https://github.com/fledit-sh
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@99889d12b07f8d871fdc5f77ebd1cad5bf7aa7eb -
Trigger Event:
push
-
Statement type: