Meshing Workflow in MOOSE

Constructing a Reactor Mesh Hierarchically

MOOSE's Mesh System and Reactor Module contains numerous "MeshGenerator" objects which either (a) create a mesh from scratch or (b) perform operations on existing meshes. To create a mesh, the user must define a sequence of MeshGenerator object calls inside the [Mesh] block to construct a geometry beginning with the smallest components (pins) and building up to larger components (core). For example, after pins are defined, they can be patterned into an assembly, and assemblies can then be patterned into a core. Application of a peripheral core zone, trimming along symmetry lines and extrusion to 3D are optional in the final steps.

The meshing workflow for a standard reactor core follows the general hierarchical process of identifying key features in the geometry and building them hierarchically in terms of smallest to largest (pins, assemblies, core, core periphery):

  1. Define pins

  2. Define assembly by patterning existing pins into a lattice and adding coolant background and/or duct region

  3. Define core by patterning assemblies into a lattice

  4. Apply core periphery zones like a circular shield

  5. Trim along lines of symmetry to reduce computational expense

  6. Extrude to 3D

Execution

Use any executable with the Reactor module compiled (see Building the Reactor Module), such as $MOOSE_DIR/modules/combined/combined-opt or $MOOSE_DIR/modules/reactor-opt along with the --mesh-only command line option:


$MOOSE_DIR/modules/reactor/reactor-opt -i <my_meshing_input.i> --mesh-only

The --mesh-only optional command line parameter executes only the [Mesh] block of the input file and outputs the generated mesh. This is useful while building and testing the mesh as it doesn't require the rest of the MOOSE problem be defined in the input file. Recent updates to the --mesh-only option now allow the mesh output in Exodus format to include the extra element integer IDs (see Reporting IDs: A Powerful Feature for Assisting with Physics Input and Output Processing) defined on the mesh by default for convenient visualization purposes.

When you are satisfied with your mesh input, you may invoke MOOSE without the --mesh-only option to execute the entire input file (mesh building and physics input).

Executables of any MOOSE applications that contain the Reactor module in their Makefile can also be used, such as Griffin, Sockeye, Pronghorn, Cardinal, and BlueCRAB.

Visualization with ParaView

The Exodus output format is the preferred way to write out simulation results from MOOSE simulations. This format is supported by ParaView, VisIt, and other postprocessing applications. ParaView is most commonly used, but the visualization procedure is similar for other programs.

To save a lot of clicks, the following settings are recommended (in Edit->Settings):

  • Auto Apply: Automatically apply changes in the 'Properties' panel

  • Load All Variables: Load all variables when loading a data set

  • Default Time Step: Go to last timestep

Figure 1: Recommended default settings in ParaView. Ahrens et al. (2005)

To visually inspect a mesh, first load the Exodus output file (ending in .e) into ParaView. Select the Open button in the top left corner, browse to the Exodus mesh file, click OK, and click the Apply button in the Properties dialogue in the lower left corner.

Figure 2: Open Exodus mesh file in ParaView. Ahrens et al. (2005)

With the mesh loaded, there are two key visualization options in the top center of the menu: the visualization style on the right, which is good to set to Surface with Edges to show where the element boundaries are located, and the visualization property on the left, which can be switched between the various properties defined on the mesh.

Figure 3: ParaView visualization selectors. Ahrens et al. (2005)

There are also a variety of toggles in the Properties dialog in the lower left corner, which can control which elements of the mesh are visualized. After any modification of the properties, be sure to click Apply for the changes to apply.

Figure 4: ParaView properties dialogue. Ahrens et al. (2005)

In this example, the periphery block was removed and outer core side set is highlighted (in green).

Figure 5: Example of selected blocks/sidesets. Ahrens et al. (2005)

References

  1. James Ahrens, Berk Geveci, and Charles Law. ParaView: an end-user tool for large data visualization. In Visualization Handbook. Elesvier, 2005. URL: https://doi.org/10.1016/B978-012387582-2/50038-1.[BibTeX]