Examples and Tutorials

This page includes various demonstrations intended to introduce the basics of MOOSE for creating custom applications to solve unique and challenging multiphysics problems. Each example or tutorial focuses on different aspects of MOOSE, primarily the fundamental systems that are available to solve multiphysics problems.

Before proceeding, please visit the Install MOOSE page and the New Users page. It is assumed that the reader has a minimial understanding in computer programming with C++.

Examples

The MOOSE repository has a directory named examples with several subdirectories. Each subdirectory has code for a MOOSE-based application and input file(s) for running simulations. Each example can be used by running a binary that is first compiled by running make in the applicable subdirectory. The resulting application binary (named e.g. ex01-opt) is used to run input files. A guide explaining what each example demonstrates and how to use it is provided here:

Module Use Examples

Example problems are provided for some of the individual Physics Modules. A comprehensive list of all that are available is given below. Simply expand the example set under a module header and follow their links.

Contact
Geochemistry
Level Set
Porous Flow
Reconstructed Discontinuous Galerkin

Parameter Studies, Statistics, and Sensitivity Analysis:

Surrogate Models:

Stochastic Tools

The following example combines the Heat Conduction, Tensor Mechanics, and Stochastic Tools modules and demonstrates one of the core purposes of MOOSE—solving multiphysics problems: Using Stochastic Tools with Multiphysics Models

Tutorials

Tutorial 1: Application Development
Learn how to develop a MOOSE-based application to solve coupled systems of differential equations in a multiphysics setting. This tutorial teaches you how to create custom MOOSE objects, setup input files to invoke these objects, and how to process and visualize the results of your simulations.

Tutorial 2: MultiApp Demonstration
Learn how to use the Multiapp and Transfer systems to couple many multiphysics applications together across differing time or length scales.

Tutorial 3: Code Verification
Demonstrate the use of analytical solutions and the Method of Manufactured Solutions (MMS) for code verification.

schoolPorous Flow Tutorial

Porous Flow Tutorial
This tutorial guides the user through some commonly-used aspects of the Porous Flow module. It concerns fluid injection through a borehole into a large fluid-filled reservoir. The tutorial begins with simple Darcy flow, and gradually adds more complex phenomena such as coupling with heat and solid mechanics, multi-phase flows and chemical reactions.

Workshops

The MOOSE development team at INL occasionally hosts live training. Registration is typically open for all who wish to attend, although space is usually limited. Below are links to the training presentation, a recent video recording of the training, and other targeted more advanced workshop presentations.

MOOSE training events will typically be announced on the home page, but be sure to join the mailing list for further updates!

Isogeometric Analysis

Isogeometric Analysis in MOOSE

C++ Programming References

MOOSE developers need only a basic understanding of computer programming with C++ to get started. If possible, it may be helpful to review the following resources:

Besides checking out the references that are listed above, a strong and clear Google search can go a long way. Remember that you can always find help from our Community.