MOOSE Modules

  • MOOSE comes with a library of community-developed physics modules.
  • 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 (i.e. neutronics) should be put into the MOOSE modules.
  • The modules are organized so that your application can link against only those which it requires.

MOOSE Modules Anatomy

$ ls moose/modules
  chemical_reactions
  combined
  contact
  fluid_mass_energy_balance
  heat_conduction
  linear_elasticity
  navier_stokes
  phase_field
  richards
  solid_mechanics
  tensor_mechanics
  water_steam_eos
  • All applications are set up to use the MOOSE modules.
  • If you need assistance adding or removing unneeded modules from your application, please contact us and we'll be happy to help.

MOOSE Modules Anatomy - cont.

  • The contents of each module are the same as any MOOSE 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 with the following syntax:
    ################################## MODULES ####################################
    # SOLID_MECHANICS   := yes
    # LINEAR_ELASTICITY := yes

MOOSE modules: Solid Mechanics Example

bridge.png

bridge-von-mises.png

bridge-displacement.png

  • Available in modules/solidmechanics
  • Stats:
    • 127,650 elements, 25,227 nodes
  • Features:
    • Large displacement formulation
    • Plasticity
    • Creep

MOOSE modules: Flow Example

flow-velocity.png

flow-streamlines.png

flow-pressure.png

  • Available in modules/navierstokes
  • Subsonic Test Case:
    • Mach 0.5 over a circular arc
    • Euler equations
    • 8,232 elements, 9,675 nodes