Skip to main content

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. 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"

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

glacium-0.1.10.tar.gz (479.9 kB view details)

Uploaded Source

Built Distribution

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

glacium-0.1.10-py3-none-any.whl (534.6 kB view details)

Uploaded Python 3

File details

Details for the file glacium-0.1.10.tar.gz.

File metadata

  • Download URL: glacium-0.1.10.tar.gz
  • Upload date:
  • Size: 479.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for glacium-0.1.10.tar.gz
Algorithm Hash digest
SHA256 ab77ca51e25f81ba48e21a9ee74cee850a65520e8bf222d83772bf2c987587ee
MD5 3828b02e81261e87708ba1c173789f87
BLAKE2b-256 e8216886d792afbbd61a606cba6b25316add880a22b3c48e114c049ed70eb665

See more details on using hashes here.

Provenance

The following attestation bundles were made for glacium-0.1.10.tar.gz:

Publisher: publish.yml on fledit-sh/glacium-repo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file glacium-0.1.10-py3-none-any.whl.

File metadata

  • Download URL: glacium-0.1.10-py3-none-any.whl
  • Upload date:
  • Size: 534.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for glacium-0.1.10-py3-none-any.whl
Algorithm Hash digest
SHA256 27d061141187061d1b9ff9b742ddb577fefd3f86a39dcb09f3c0aeb51746a25b
MD5 3119bb324f756a469ebd1fe2b5c34897
BLAKE2b-256 9976d3a761be1855e6a544aa7148ee1965d54e484a630d80dda0ecd035cd20e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for glacium-0.1.10-py3-none-any.whl:

Publisher: publish.yml on fledit-sh/glacium-repo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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