Tutorials

Cardinal treats its NekRS and OpenMC wrappings similar to native MOOSE applications - NekRS and OpenMC can be combined with any other MOOSE application to provide multiphysics feedback (either together or individually). In addition, NekRS and OpenMC can be run as standalone applications using Cardinal, if you would like to leverage Cardinal's postprocessing and/or Exodus mesh projection features. There are no limitations on how NekRS and OpenMC can interact with the MOOSE framework - as long as you can construct a MultiApp hierarchy that addresses your physics of interest, the existing Transfers in the MOOSE framework are all that are needed to send data to/from NekRS and OpenMC and MOOSE.

Figure 1 illustrates how NekRS and OpenMC interact with MOOSE - at a high level, "OpenMC talks to MOOSE" and "NekRS talks to MOOSE," such that any simulation coupling OpenMC to NekRS is actually just communicating through a MOOSE "intermediary." So, if you are interested in multiphysics coupling of OpenMC and NekRS, all you need to understand is how NekRS and OpenMC individually couple to MOOSE, which is covered by the Tutorials for NekRS and Tutorials for OpenMC sections below. Nevertheless, we do also include some tutorials that specifically couple both NekRS and OpenMC simultaneously, in the Tutorials for Coupling NekRS and OpenMC section. Within each category, we do recommend moving sequentially.

Figure 1: High-level illustration of how NekRS and OpenMC couple to MOOSE

Note that because this project is under significant active development; near-term upcoming features are indicated where appropriate.

commentnote:Prerequisites

These tutorials assume some familiarity with MOOSE, NekRS, and OpenMC as individual tools. Please consult the MOOSE documentation, NekRS documentation, and OpenMC documentation for code-specific documentation.

These tutorials will make use of different classes in Cardinal, all of which are also documented here.

commentnote:Computing Needs

Many of these tutorials were developed with NEAMS and NRIC VTB support. As such, many are "production"-type models developed for other programs, and may use very fine meshes. We will indicate required computing resources for each tutorial. If you have access to High-Performance Computing (HPC) resources, check out our HPC guide to find example job submission scripts, which you can adapt. Regardless of your computing capacity, we recommend reading all tutorials, as they contain a lot of useful information on how to approach multiphysics coupling.

Tutorials for NekRS

schooltip

These tutorials make use of the following major Cardinal classes. We recommend quickly reading this documentation before proceeding.

  1. Introduction to NekRS

  2. Running as a standalone application

  3. Conjugate heat transfer coupling to MOOSE

  4. Multiscale coupling to SAM

  5. Forward uncertainty quantification

  6. Postprocessing/extracting the NekRS solution

Tutorials for OpenMC

schooltip

These tutorials make use of the following major Cardinal classes. We recommend quickly reading this documentation before proceeding.

Think you're ready for the tutorials? Take our OpenMC Cardinal quiz!

  1. Temperature coupling to MOOSE

  2. Temperature and density coupling to MOOSE

Tutorials for Coupling NekRS and OpenMC

  1. Coupling of NekRS, OpenMC, and MOOSE

Miscellaneous

  1. Restarting coupled NekRS and MOOSE simulations

  2. Coupling to arbitrary MOOSE applications

  3. Assessing convergence

  4. What Transfer should I use?