Modules Overview

MOOSE includes a set of community developed physics modules that you can build on to create your own application.

  • The purpose of the modules is to encapsulate common kernels, boundary conditions, etc. to prevent code duplication.
  • Examples include: heat conduction, solid mechanics, Navier-Stokes, and others.
  • No export controlled physics (e.g., neutronics) should be put into the modules.
  • The modules are organized so that your application can link against only those which it requires.

Modules Anatomy

  • All applications are set up to use the modules.
$ ls moose/modules
contact  misc  phase_field solid_mechanics  chemical_reactions heat_conduction  modules.mk
richards  tensor_mechanics  combined  linear_elasticity  navier_stokes  run_tests  water_steam_eos
  • The contents of each module are the same as any application.
$ ls moose/modules/solid_mechanics
Makefile  doc  include  lib  plugins  run_tests  src  tests
  • Application codes specify the modules they want to use in their Makefiles.
################################## MODULES ####################################
SOLID_MECHANICS   := yes
LINEAR_ELASTICITY := yes

Modules: Solid Mechanics Example

bridge.png
Displacement Magnitude

bridge-displacement.png
Displacement

bridge-von-mises.png
Von Misses Stress

Modules: Flow Example

  • Available in: moose/modules/navier_stokes

  • Subsonic Test Case:

    • Mach 0.5 over a circular arc
    • Euler equations
    • 8,232 elements, 9,675 nodes

flow-velocity.png
Velocity

flow-streamlines.png
Velocity Streamlines

flow-pressure.png
Pressure