buildconstruction

This tutorial is incomplete, but feel free to browse the currently available content. Otherwise, refer back to the Examples & Tutorials page for other helpful training materials or check out the MOOSE Application Development pages for more information.

Tutorial 1: Application Development

In this tutorial, the reader shall work through the steps to create a custom MOOSE-based application to solve real-world physics problems. The instructions begin with defining the problem and converting the governing partial differential equations (PDEs) into an expression compatible with MOOSE. As the tutorial progresses, the core C++ classes that are available to developers for solving problems, as well as the basic systems of MOOSE, will be discussed.

This tutorial is the focus of the live hosted Framework Workshops. New users are encouraged to engage themselves in this training by reading the content carefully and reproducing the steps, without simply copying and pasting code. This tutorial is designed to be an in-depth explanation of creating a complete, custom multiphysics application including the process of using a repository and testing.

Tutorial Contents

  1. Preface
    1. Navigation
    2. Acronyms
  2. Problem Statement
    1. Governing Equations
    2. Material Properties
    3. References
  3. Step 1: Create a Custom MOOSE Application
    1. Create a GitHub Account
    2. Run the Stork Script and Initialize the New Application
      1. Compile the Application Executable
      2. Test the Application
    3. Enable Use of GitHub
      1. Open an Account
      2. Create a Repository
      3. Interacting with Git Using a Secure Shell (SSH)
  4. Step 2: Write an Input File
    1. Input File Format
    2. Execute an Input File
      1. Execute Using the Terminal
      2. Execute Using Peacock
    3. Demonstration
      1. Input File
      2. Results
      3. Commit
  5. Step 3: Introduction to MOOSE Objects
    1. MOOSE Objects
    2. Demonstration
      1. Source Code
  6. Step 4: Generate a Weak Form
    1. The Method of Weighted Residuals
      1. Procedure for Generating Weak Forms
    2. The Galerkin Finite Element Method
    3. Demonstration
  7. Step 5: Develop a Kernel Object
    1. Kernel Objects
    2. Demonstration
      1. Source Code
      2. Input File
      3. Results
      4. Commit
  8. Step 6: Define a Set of Input Parameters
    1. Input Parameters
      1. Declaring Valid Parameters
      2. Accessing Parameter Values
    2. Demonstration
      1. Source Code
      2. Input File
      3. Results
      4. Commit
  9. Step 7: Execute in Parallel
    1. MOOSE Multiprocessing
      1. Basic Commands
      2. Model Setup
      3. Evaluating and Enhancing Performance
    2. Demonstration
  10. Step 8: Write a Regression Test
    1. TestHarness
      1. Test Setup
      2. Test Specification
      3. Run Tests
    2. Demonstration
      1. Source Code
      2. Input File
      3. Results
      4. Test
      5. Commit
  11. Step 9: Develop a Material Object
    1. Material Objects
      1. Producing and Consuming Properties
      2. Property Output
    2. Demonstration
      1. Source Code
      2. Input File
      3. Results
      4. Test
      5. Commit
  12. Step 10: Develop an AuxKernel Object
    1. Auxiliary Variables
    2. Auxiliary Kernel Objects
    3. Demonstration
      1. Source Code
      2. Input File
      3. Results
      4. Test
      5. Commit
  13. Step 11: Develop a Time-dependent Kernel Object