Tutorial Introduction#

Start Options#

The Quickstart introduces the core concepts motivating WAVES without diving into the details of implementation.

For a detailed discussion of recommended best practices for SCons and MODSIM-TEMPLATE project setup, meta data, and features, start with Tutorial 00: SConstruct. Most of the SContruct file introduced in Tutorial 00: SConstruct is boilerplate code, so users may want to skip straight to the workflow task definitions in Tutorial 01: Geometry.

An optional waves fetch command is included in every tutorial to help users start in a focus topic without completing previous tutorials. The WAVES Command-Line Utility fetch subcommand may also be used to create a local copy of any tutorial file.

Users who are are ready to create their own modsim repository can use the WAVES Command-Line Utility fetch subcommand to access the project ModSim Templates. The template files include project documentation built with SCons and Sphinx and two simulation configurations for the rectangle project developed in the tutorials: nominal and mesh convergence. The fetch subcommand may be used to recursively fetch directories or to fetch individual files from both the ModSim Templates and the tutorials.

Prerequisites#

  1. Computational Practices - Build System

  2. Software Carpentry: GNU Make - https://swcarpentry.github.io/make-novice/ [1, 9, 30]

  3. Software Carpentry: Python - https://swcarpentry.github.io/python-novice-inflammation/ [1, 8]

Quickstart#

Time to complete (HH:MM)

Tutorial

Summary

00:30

Quickstart

Minimally functional simulation build system workflow using SCons and WAVES

Core Lessons#

Time to complete (HH:MM)

Tutorial

Summary

01:00

Tutorial 00: SConstruct

SCons project configuration and meta data

01:00

Tutorial 01: Geometry

Hierarchical SCons builds, task creation, Abaqus journal files as small utility software

00:45

Tutorial 02: Partition and Mesh

Dependent tasks and execution order

00:20

Tutorial 03: SolverPrep

Copying files into the build directory

00:20

Tutorial 04: Simulation

Abaqus solver execution

00:20

Tutorial 05: Parameter Substitution

Parameterized builds and substituting parameter values into copied files

00:20

Tutorial 06: Include Files

Including files that can be reused in more than one workflow

00:30

Tutorial 07: Cartesian Product

Parameter study introduction using a cartesian product

00:20

Tutorial 08: Data Extraction

Abaqus data extraction

00:30

Tutorial 09: Post-Processing

Example solution to parameter study results concatenation with the parameter study definition

00:20

Tutorial 10: Unit Testing

Unit testing

00:10

Tutorial 11: Regression Testing

Alias for partial simulation verification and regression testing

00:10

Tutorial 12: Data Archival

Archive simulation files for reproducibility and reporting

Supplemental Lessons#

Time to complete (HH:MM)

Tutorial

Summary

00:10

SCons Quickstart

Minimally functional simulation build system workflow using pure SCons

00:10

SCons Multi-Action Tasks

Execute multiple actions on the same target file

00:20

Tutorial: Input Verification

Add input verification to workflow parameters

00:20

Tutorial: Cubit+Abaqus

Geometry, partition, and mesh examples with Cubit replicating Tutorial 04: Simulation

00:20

Tutorial: Cubit+Sierra

Side-by-side Abaqus and Sierra workflows complementing Tutorial: Cubit+Abaqus

00:30

Tutorial: Cubit+Fierro

Fierro builders and workflow complementing Tutorial: Cubit+Abaqus

00:10

Tutorial: Escape Sequences

Changing task actions without re-building the task

00:30

Tutorial 07: Latin Hypercube

Parameter study introduction using a latin hypercube

00:30

Tutorial 07: Sobol Sequence

Parameter study introduction using a Sobol sequence

00:10

Tutorial 07: One-at-a-Time

Parameter study introduction using one-at-a-time set generation

00:30

Tutorial: Mesh Convergence

Mesh convergence parameter study that uses common Geometry and Partition tasks.

00:10

Tutorial: Part Image

Generate Abaqus model images for documentation

00:30

Tutorial: Sensitivity Study

Run a sensitivity study with numpy and SALib

00:30

Tutorial: Abaqus CAE

Integrate Abaqus CAE with build system workflows

Work-in-progress Lessons#

Warning

The lessons in this section represent WAVES features in the “alpha” development stage or draft solutions to common problems that require additional user testing to better define the user story, needs, and desired behavior.

Time to complete (HH:MM)

Tutorial

Summary

01:00

Tutorial: Writing Builders

Writing custom builders and design considerations

00:30

Tutorial: Simulation via SSH

Run the simulation on a remote server via SSH

00:30

Tutorial: Simulation via SLURM

Run the simulation with the SLURM workload manager

00:30

Automatically Extending a Parameter Study

Automatically extending and re-executing a parameter study

00:30

Tutorial: Task Definition Reuse

Reuse task definitions

00:10

Tutorial: setuptools_scm

Dynamic version number from git tags

00:10

Tutorial: Quinoa

Quinoa builders

00:30

Tutorial: Gmsh+CalculiX

Fully open-source, conda-forge-based workflow using Gmsh and CalculiX in place of Abaqus