Skip to main content

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. Programmatic control is available through a high level pipeline API; see docs/high_level_api/intro.rst for an overview.

Publish to PyPI

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"

Metadata

Release files for glacium 0.1.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for glacium 0.1.10
File Size Uploaded
glacium-0.1.10.tar.gz 479.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for glacium 0.1.10
File Interpreter ABI Platform
glacium-0.1.10-py3-none-any.whl Python 3 none any Details

Total release size: 1.0 MB

Release files / glacium-0.1.10.tar.gz

Download URL glacium-0.1.10.tar.gz
Size 479.9 kB
Tags Source
SHA-256 checksum
How to use checksums
ab77ca51e25f81ba48e21a9ee74cee850a65520e8bf222d83772bf2c987587ee
BLAKE2b-256 checksum
How to use checksums
e8216886d792afbbd61a606cba6b25316add880a22b3c48e114c049ed70eb665
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 17, 2025.

Transparency log

Release files / glacium-0.1.10-py3-none-any.whl

Download URL glacium-0.1.10-py3-none-any.whl
Size 534.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
27d061141187061d1b9ff9b742ddb577fefd3f86a39dcb09f3c0aeb51746a25b
BLAKE2b-256 checksum
How to use checksums
9976d3a761be1855e6a544aa7148ee1965d54e484a630d80dda0ecd035cd20e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 17, 2025.

Transparency log

Release history Release notifications | RSS feed

1.1.0

2 release files

1.0.5

2 release files

This release

0.1.10 This release

2 release files

0.1.9

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page