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.6.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.6-py3-none-any.whl (10.4 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: waves_workflows-0.13.6.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.6.tar.gz
Algorithm Hash digest
SHA256 fbcc21386ac2aa44cf5bf53257ba30b6b3f98c2f63b7f1dd1691084fd987bcb1
MD5 afee4946dd9dfdd47f94531ad8aaab91
BLAKE2b-256 f8f8c34bdd624b7e93c20b0debd835ddda97717fe784ccf0f0e88436f759b19a

See more details on using hashes here.

Provenance

The following attestation bundles were made for waves_workflows-0.13.6.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.6-py3-none-any.whl.

File metadata

File hashes

Hashes for waves_workflows-0.13.6-py3-none-any.whl
Algorithm Hash digest
SHA256 3b0605ea8bd4e51dd386ff19d53ccc565e39f4e00a249dcd5d5480095d9300fe
MD5 8e40cedea1997441f3cafe7101c364a2
BLAKE2b-256 cf08a7bcf56de32bf596cfeb9abee7c0ecad346c49f56bdb54f4a5a3f57ac380

See more details on using hashes here.

Provenance

The following attestation bundles were made for waves_workflows-0.13.6-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