Tutorial Introduction

Start Options

Users who want to jump straight to a minimally functional simulation workflow with native SCons can start with the SCons Quickstart. The WAVES Quickstart has the same features but uses the WAVES extension to SCons.

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 Tutorial 01: Geometry to help users create the content of Tutorial 00: SConstruct. 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:10

SCons Quickstart

Minimally functional simulation build system workflow using pure SCons

00:10

WAVES 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 re-used 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 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: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:30

Tutorial: Mesh Convergence

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

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

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 Re-use

Re-use task definitions

00:10

Tutorial: setuptools_scm

Dynamic version number from git tags