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.

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.9.tar.gz (472.1 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.9-py3-none-any.whl (524.2 kB view details)

Uploaded Python 3

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

Hashes for glacium-0.1.9.tar.gz
Algorithm Hash digest
SHA256 9339c3f94908f5c815463c4c9a705deb03cafc88b287412f08ab2b063c557c74
MD5 7ce352d03c34f155b7a88ef18267687c
BLAKE2b-256 d298f7f6a26d592b9675fbb6dba80c061370fd3a018431490d59606e262af1a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for glacium-0.1.9.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.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

Hashes for glacium-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 c41b84305085944446fd48cc1580967b89632fa6e441eb68298f0f2fc3c09f4b
MD5 75fa43b9a5577a403c353cb5670e92fa
BLAKE2b-256 d8346e775c999feed9b84dbc657c9f9e8734c352a75fd117819418ee80233f02

See more details on using hashes here.

Provenance

The following attestation bundles were made for glacium-0.1.9-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