Markers System

The marker system is a sub-system of the Adaptivity system in MOOSE. The Marker objects serve to set the refinement flag to one of four states as defined by the C++ Enum MarkerValue. MOOSE will call the computeElementMarker method, which returns a MarkerValue. This value is then applied to an elemental AuxVariable. The automatic mesh refinement engine will then use this field to refine and coarsen the mesh in a consistent manner, as detailed in the Adaptivity system.

Marker Values

The four possible MarkerValue states are defined in Marker.h as follows:

  enum MarkerValue
  {
    DONT_MARK = -1,
    COARSEN,
    DO_NOTHING,
    REFINE
  };
(framework/include/markers/Marker.h)

The purpose of each value of the MarkerValue is define in the following table.

StateDescription
DONT_MARKDo not apply any refinement flag to the element.
COARSENMarks an element to be coarsened, if possible.
DO_NOTHINGDoes not change the marker flag from the current state.
REFINEMarks and element to be refined, if possible.

Example Syntax

[Adaptivity]
  [./Markers]
    [./box]
      type = BoxMarker
      bottom_left = '0.3 0.3 0'
      top_right = '0.6 0.6 0'
      inside = refine
      outside = do_nothing
    [../]
    [./combo]
      type = ComboMarker
      markers = 'box box2'
    [../]
    [./box2]
      type = BoxMarker
      bottom_left = '0.5 0.5 0'
      top_right = '0.8 0.8 0'
      inside = refine
      outside = coarsen
    [../]
  [../]
[]
(test/tests/markers/combo_marker/combo_marker_test.i)

Available Objects

  • Moose App
  • ArrayMooseVariableUsed for grouping standard field variables with the same finite element family and order
  • BoundaryMarkerMarks all elements with sides on a given boundary for refinement/coarsening
  • BoundaryPreservedMarkerMarks elements for refinement or coarsening based on the provided marker value, while preserving the given boundary.
  • BoxMarkerMarks the region inside and outside of a 'box' domain for refinement or coarsening.
  • ComboMarkerA marker that converts many markers into a single marker by considering the maximum value of the listed markers (i.e., refinement takes precedent).
  • ErrorFractionMarkerMarks elements for refinement or coarsening based on the fraction of the min/max error from the supplied indicator.
  • ErrorToleranceMarkerCoarsen or refine elements based on an absolute tolerance allowed from the supplied indicator.
  • MooseVariableRepresents standard field variables, e.g. Lagrange, Hermite, or non-constant Monomials
  • MooseVariableBaseBase class for Moose variables. This should never be the terminal object type
  • MooseVariableConstMonomialSpecialization for constant monomials that avoids unnecessary loops
  • MooseVariableFVRealBase class for Moose variables. This should never be the terminal object type
  • MooseVariableScalarMoose wrapper class around scalar variables
  • OrientedBoxMarkerMarks inside and outside a box that can have arbitrary orientation and center point.
  • ReporterPointMarkerMarks the region inside or empty if it contains a reporter defined point for refinement or coarsening.
  • UniformMarkerUniformly mark all elements for refinement or coarsening.
  • ValueRangeMarkerMark elements for adaptivity based on the supplied upper and lower bounds and the specified variable.
  • ValueThresholdMarkerThe refinement state based on a threshold value compared to the specified variable.
  • VectorMooseVariableRepresents vector field variables, e.g. Vector Lagrange, Nedelec or Raviart-Thomas
  • Navier Stokes App
  • BernoulliPressureVariableBase class for Moose variables. This should never be the terminal object type
  • INSFVEnergyVariableBase class for Moose variables. This should never be the terminal object type
  • INSFVPressureVariableBase class for Moose variables. This should never be the terminal object type
  • INSFVScalarFieldVariableBase class for Moose variables. This should never be the terminal object type
  • INSFVVelocityVariableBase class for Moose variables. This should never be the terminal object type
  • PINSFVSuperficialVelocityVariableBase class for Moose variables. This should never be the terminal object type
  • PiecewiseConstantVariableBase class for Moose variables. This should never be the terminal object type
  • Phase Field App
  • DiscreteNucleationMarkerMark new nucleation sites for refinement

Available Actions