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
};
(../moose/framework/include/markers/Marker.h)The purpose of each value of the MarkerValue
is define in the following table.
State | Description |
---|---|
DONT_MARK | Do not apply any refinement flag to the element. |
COARSEN | Marks an element to be coarsened, if possible. |
DO_NOTHING | Does not change the marker flag from the current state. |
REFINE | Marks 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
[../]
[../]
[]
(../moose/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 or Nedelec
- Ferret App
- PolarizationNWEMarkerThe the refinement state based on a threshold value compared to the specified variable.
- Phase Field App
- DiscreteNucleationMarkerMark new nucleation sites for refinement
Available Actions
- Moose App
- AddElementalFieldActionAdds elemental auxiliary variable for adaptivity system.
- AddMarkerActionAdd a Marker object to a simulation.