Adaptivity System

MOOSE employs -adaptivity to automatically refine or coarsen the mesh in regions of high or low estimated solution error, respectively. The idea is to concentrate degrees of freedom (DOFs) where the error is highest, while reducing DOFs where the solution is already well-captured. This is achieved through splitting and joining elements from the original mesh based on an error Indicator. Once an error has been computed, a Marker is used to decide which elements to refine or coarsen. Mesh adaptivity can be employed with both Steady and Transient Executioners.

Refinement Patterns

MOOSE employs "self-similar", isotropic refinement patterns, as shown in the figure. When an element is marked for refinement, it is split into elements of the same type. For example, when using Quad4 elements, four "child" elements are created when the element is refined. Coarsening happens in reverse, children are deleted and the "parent" element is reactivated. The original mesh starts at refinement level 0. Each time an element is split, the children are assigned a refinement level one higher than their parents.

Self-similar refinement pattern utilized by MOOSE for adaptivity.

Input Parameters

  • max_h_level0Maximum number of times a single element can be refined. If 0 then infinite.

    Default:0

    C++ Type:unsigned int

    Options:

    Description:Maximum number of times a single element can be refined. If 0 then infinite.

  • initial_steps0The number of adaptive steps to do based on the initial condition.

    Default:0

    C++ Type:unsigned int

    Options:

    Description:The number of adaptive steps to do based on the initial condition.

  • cycles_per_step1The number of adaptive steps to use when on each timestep during a Transient simulation.

    Default:1

    C++ Type:unsigned int

    Options:

    Description:The number of adaptive steps to use when on each timestep during a Transient simulation.

  • start_time-1.79769e+308The time that adaptivity will be active after.

    Default:-1.79769e+308

    C++ Type:double

    Options:

    Description:The time that adaptivity will be active after.

  • recompute_markers_during_cyclesFalseRecompute markers during adaptivity cycles

    Default:False

    C++ Type:bool

    Options:

    Description:Recompute markers during adaptivity cycles

  • markerThe name of the Marker to use to actually adapt the mesh.

    C++ Type:MarkerName

    Options:

    Description:The name of the Marker to use to actually adapt the mesh.

  • inactiveIf specified blocks matching these identifiers will be skipped.

    C++ Type:std::vector

    Options:

    Description:If specified blocks matching these identifiers will be skipped.

  • steps0The number of adaptive steps to use when doing a Steady simulation.

    Default:0

    C++ Type:unsigned int

    Options:

    Description:The number of adaptive steps to use when doing a Steady simulation.

  • stop_time1.79769e+308The time after which adaptivity will no longer be active.

    Default:1.79769e+308

    C++ Type:double

    Options:

    Description:The time after which adaptivity will no longer be active.

  • active__all__ If specified only the blocks named will be visited and made active

    Default:__all__

    C++ Type:std::vector

    Options:

    Description:If specified only the blocks named will be visited and made active

  • initial_markerThe name of the Marker to use to adapt the mesh during initial refinement.

    C++ Type:MarkerName

    Options:

    Description:The name of the Marker to use to adapt the mesh during initial refinement.

Optional Parameters

Available Subsystems