BooleanComboMarker

Description

The BooleanComboMarker class combines multiple other markers together using boolean operations. The markers provided in refine_markers are responsible for determining if an element should be refined, while the markers provided in coarsen_markers are responsible for determining if an element should be coarsened. Setting boolean_operator to and will require all refine_markers to return MarkerValue::REFINE before BooleanComboMarker marks an element for refinement. Setting`boolean_operator` to or will require a single marker to return MarkerValue::REFINE before an element is marked for refinement. The same holds true for coarsen_markers with MarkerValue::COARSEN. In the event both the refinement and coarsening expressions are true, the preferred refinement operation (priority) is used to determine if the element is marked for refinement or coarsening.

Example Input File Syntax

[Adaptivity]
  [Markers]
    [combo]
      type = BooleanComboMarker
      refine_markers = 'box box2'
      coarsen_markers = 'box2 box3'
      boolean_operator = and
      priority = refinement
    []
    [box]
      type = BoxMarker
      bottom_left = '0.3 0.3 0'
      top_right = '0.6 0.6 0'
      inside = refine
      outside = do_nothing
    []
    [box2]
      type = BoxMarker
      bottom_left = '0.5 0.5 0'
      top_right = '0.8 0.8 0'
      inside = refine
      outside = coarsen
    []
    [box3]
      type = BoxMarker
      bottom_left = '0.7 0.7 0'
      top_right = '1.0 1.0 0'
      inside = coarsen
      outside = do_nothing
    []
  []
[]
(test/tests/markers/boolean_combo/prioritize_refine_and.i)

Input Parameters

  • coarsen_markersA list of the marker names to be used for coasening.

    C++ Type:std::vector<MarkerName>

    Unit:(no unit assumed)

    Controllable:No

    Description:A list of the marker names to be used for coasening.

  • refine_markersA list of the marker names to be used for refinement.

    C++ Type:std::vector<MarkerName>

    Unit:(no unit assumed)

    Controllable:No

    Description:A list of the marker names to be used for refinement.

Required Parameters

  • blockThe list of blocks (ids or names) that this object will be applied

    C++ Type:std::vector<SubdomainName>

    Unit:(no unit assumed)

    Controllable:No

    Description:The list of blocks (ids or names) that this object will be applied

  • boolean_operatorandHow the different markers should be combined. Options are to AND each marker together or to OR them together.

    Default:and

    C++ Type:MooseEnum

    Unit:(no unit assumed)

    Options:and, or

    Controllable:No

    Description:How the different markers should be combined. Options are to AND each marker together or to OR them together.

  • priorityrefinementThe operator to be prioritized when marking elements.

    Default:refinement

    C++ Type:MooseEnum

    Unit:(no unit assumed)

    Options:refinement, coarsening

    Controllable:No

    Description:The operator to be prioritized when marking elements.

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Unit:(no unit assumed)

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Set the enabled status of the MooseObject.

  • outputsVector of output names where you would like to restrict the output of variables(s) associated with this object

    C++ Type:std::vector<OutputName>

    Unit:(no unit assumed)

    Controllable:No

    Description:Vector of output names where you would like to restrict the output of variables(s) associated with this object

Advanced Parameters

Input Files