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#
Software Carpentry: GNU Make - https://swcarpentry.github.io/make-novice/ [1, 9, 30]
Software Carpentry: Python - https://swcarpentry.github.io/python-novice-inflammation/ [1, 8]
Quickstart#
Core Lessons#
Time to complete (HH:MM) |
Tutorial |
Summary |
01:00 |
SCons project configuration and meta data |
|
01:00 |
Hierarchical SCons builds, task creation, Abaqus journal files as small utility software |
|
00:45 |
Dependent tasks and execution order |
|
00:20 |
Copying files into the build directory |
|
00:20 |
Abaqus solver execution |
|
00:20 |
Parameterized builds and substituting parameter values into copied files |
|
00:20 |
Including files that can be reused in more than one workflow |
|
00:30 |
Parameter study introduction using a cartesian product |
|
00:20 |
Abaqus data extraction |
|
00:30 |
Example solution to parameter study results concatenation with the parameter study definition |
|
00:20 |
Unit testing |
|
00:10 |
Alias for partial simulation verification and regression testing |
|
00:10 |
Archive simulation files for reproducibility and reporting |
Supplemental Lessons#
Time to complete (HH:MM) |
Tutorial |
Summary |
00:10 |
Minimally functional simulation build system workflow using pure SCons |
|
00:10 |
Execute multiple actions on the same target file |
|
00:20 |
Add input verification to workflow parameters |
|
00:20 |
Geometry, partition, and mesh examples with Cubit replicating Tutorial 04: Simulation |
|
00:20 |
Side-by-side Abaqus and Sierra workflows complementing Tutorial: Cubit+Abaqus |
|
00:30 |
Fierro builders and workflow complementing Tutorial: Cubit+Abaqus |
|
00:10 |
Changing task actions without re-building the task |
|
00:30 |
Parameter study introduction using a latin hypercube |
|
00:30 |
Parameter study introduction using a Sobol sequence |
|
00:10 |
Parameter study introduction using one-at-a-time set generation |
|
00:30 |
Mesh convergence parameter study that uses common Geometry and Partition tasks. |
|
00:10 |
Generate Abaqus model images for documentation |
|
00:30 |
Run a sensitivity study with numpy and SALib |
|
00:30 |
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 |
Writing custom builders and design considerations |
|
00:30 |
Run the simulation on a remote server via SSH |
|
00:30 |
Run the simulation with the SLURM workload manager |
|
00:30 |
Automatically extending and re-executing a parameter study |
|
00:30 |
Reuse task definitions |
|
00:10 |
Dynamic version number from git tags |
|
00:10 |
Quinoa builders |
|
00:30 |
Fully open-source, conda-forge-based workflow using Gmsh and CalculiX in place of Abaqus |