The Actions System
- Actions are used to construct other MOOSE objects (Variables, Kernels, etc.)
- MOOSE has a large set of common tasks that are performed for every problem
- Supports complete dependency resolution
- Customizable and extendable
Actions System Model (tasks)
- Setting up a problem in MOOSE is very order sensitive.
- The setup order is defined in
Moose.C for all MOOSE-based applications.
- Each step of the setup phase is called a
- MOOSE looks for Actions that will satisfy the current
- Some of the tasks are optional, but they still have to be executed in the proper order.
- The list of tasks can be augmented by registering a new
task and declaring its dependencies:
Actions System Model (Action Object)
- To build a new
Action, inherit from
Action and override the
- Typically you will set up other MOOSE objects with your
Action. For example:
- Set up and add a group of Kernels.
- Set up a group of Variables, each with their own
- Inspect other Actions in the warehouse, and add objects appropriately.
- A single
Action can be registered with more than one
- A single
Action can only satisfy one
task, however the system may create several instances of any one
Action to satisfy multiple
Some built-in MOOSE "tasks"
The Parser (briefly)
- MOOSE comes with an input file parser that will automatically create Actions for you based on the syntax it sees.
- Using the MOOSE
Parser (or any parser) is not required. MOOSE operates on Actions which can be built in any way the developer chooses.
- To use the
Parser, Actions must first be associated with syntax blocks (this works much like object registration).
- Encounters a new syntax block in the input file.
- Checks to see if there is an
Action associated with that block.
- Gets the
InputParameters for your object using the appropriate
- Parses and fills in the
InputParameters object with options from the input file.
- Builds and stores the appropriate
Action in MOOSE's
Actions System Model