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.1.tar.gz (9.7 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.1-py3-none-any.whl (10.1 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: waves_workflows-0.13.1.tar.gz
  • Upload date:
  • Size: 9.7 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.1.tar.gz
Algorithm Hash digest
SHA256 419e29c7d92a5b6966f9be2835c20b0c8e7d4a5986beb0360fe0db37b6b0ac10
MD5 b2b1b56dc1409cc76158b7045e45ee7a
BLAKE2b-256 e72e69901d74c9ded6d4ae7c3955a865b47d3a0e738b7520636e45ca98fc7a8f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for waves_workflows-0.13.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c0f99ed66de19d50182b6b977e17c3b4c579bb986c571a53d38c8d8aba6c45af
MD5 d8a44d1f3833f2b1f9cdd1c20016de5c
BLAKE2b-256 16c2f5307f9ab8b10860f6b4ba0e6ba00ea4bc1d034b6a699dbc218d05d78a5f

See more details on using hashes here.

Provenance

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