Skip to main content

Computational science and engineering parameteric study workflows

Project description

https://img.shields.io/github/actions/workflow/status/lanl-aea/waves/pages.yml?branch=main&label=GitHub-Pages https://img.shields.io/github/v/release/lanl-aea/waves?label=GitHub-Release https://img.shields.io/conda/vn/conda-forge/waves https://img.shields.io/conda/dn/conda-forge/waves.svg?label=Conda%20downloads https://img.shields.io/pypi/v/waves-workflows?label=PyPI%20package https://img.shields.io/pypi/dm/waves-workflows?label=PyPI%20downloads https://zenodo.org/badge/591388602.svg

Description

WAVES (LANL code C23004) is a computational science and engineering workflow tool that integrates parametric studies with traditional software build systems.

In addition to the parametric study Python package and command line utilities, WAVES also includes SCons builders for common engineering software used by model simulation (modsim) repositories. The tutorial simulations in this project use SCons as the automated build system and translate software build system concepts in the language of engineering simulation and analysis. The SCons documentation should be consulted as a reference for additional build system concepts, command line options, and project configuration.

This project includes a MODSIM-TEMPLATE which is used for the tutorials and for integration and regression testing of the WAVES extensions to SCons. The template modsim project can be duplicated from the command line as waves fetch modsim_template after installation.

Installation

Conda

WAVES can be installed in a Conda environment with the Conda package manager. See the Conda installation and Conda environment management documentation for more details about using Conda.

$ conda install --channel conda-forge waves

pip

WAVES may also be installed from PyPI with pip under the distribution name waves-workflows: https://pypi.org/project/waves-workflows/. The package installs and imports as waves, so care must be taken to avoid name clashes with similarly named PyPI packages.

$ pip install waves-workflows

Spack

WAVES may be installed with the Spack package manager under the distribution name py-waves: https://packages.spack.io/package.html?name=py-waves. The package installs and imports as waves.

$ spack install py-waves

Documentation

The documentation is bundled with the Conda package and can be accessed locally without a network connection after installation from the command line as waves docs. The documentation is also web-hosted:

The MODSIM-TEMPLATE documentation is hosted as a separate webpage as a demonstration for what modsim project documentation can look like.

Developers

Developer Notes

The full developer manual can be found at:

Clone the project

  • GitHub

    $ git clone git@github.com:lanl-aea/waves.git
  • LANL

    $ git clone ssh://git@re-git.lanl.gov:10022/aea/python-projects/waves.git

Local development environments

SCons can be installed in a Conda environment with the Conda package manager. See the Conda installation and Conda environment management documentation for more details about using Conda.

  1. Create the environment if it doesn’t exist

    $ pwd
    path/to/local/git/clone/waves
    $ conda env create --name waves-env --file environment.yml
  2. Activate the environment

    $ conda activate waves-env

In addition to the primary development environment file environment.yml, several other environment files are maintained for CI jobs. For Windows developers, environment-win.yml removes packages that are not available for Windows and packages that are only necessary for deployment jobs. The conda-build.yml and pip-build.yml are stripped down to the bare essentials for building Conda and pip packages, respectively.

Documentation

The documentation build is automated with SCons as the documentation target. The HTML documentation builds to waves/build/docs/html/index.html

  • Build the WAVES documentation

    $ pwd
    path/to/local/git/clone/waves/
    $ scons documentation

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

waves_workflows-0.13.7.tar.gz (9.9 MB view details)

Uploaded Source

Built Distribution

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

waves_workflows-0.13.7-py3-none-any.whl (10.4 MB view details)

Uploaded Python 3

File details

Details for the file waves_workflows-0.13.7.tar.gz.

File metadata

  • Download URL: waves_workflows-0.13.7.tar.gz
  • Upload date:
  • Size: 9.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for waves_workflows-0.13.7.tar.gz
Algorithm Hash digest
SHA256 fcc8fbbe70bd79aa1743a8b33aa64a7db100afa73a60b4c8c3860aceb91ce86c
MD5 b52631b80cc94bf1ef09b29942eb35fd
BLAKE2b-256 5fc3dcf71f2e01ed8ab532fcd5f1772af7f1dcc1e17bf6f5a8a8c8abea8e6641

See more details on using hashes here.

Provenance

The following attestation bundles were made for waves_workflows-0.13.7.tar.gz:

Publisher: release.yml on lanl-aea/waves

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

File details

Details for the file waves_workflows-0.13.7-py3-none-any.whl.

File metadata

File hashes

Hashes for waves_workflows-0.13.7-py3-none-any.whl
Algorithm Hash digest
SHA256 3e616b0c6bcc9b1657be5f7b6050e6b87cb6d127bbc7d77917bbb22d21671ef0
MD5 5c42c04ae5acf6a985a7b3911ca4192c
BLAKE2b-256 7908f556e590d8f3343c4231260c9de18a1d45ce9b3e2b14045f1946bdeaa1b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for waves_workflows-0.13.7-py3-none-any.whl:

Publisher: release.yml on lanl-aea/waves

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