HexagonalGridPositions

Create positions along a hexagonal grid. Numbering of positions increases first counterclockwise, then expanding outwards from the inner ring. Inner-numbering is within a radial ring.

Certain pins may be excluded using the "pattern" and "include_in_pattern" parameter. The last two HexagonalGridPositions objects created in the following snippet display this feature by excluding the '2' or the '3' positions in the pattern. Note that the pattern is rotated 30 degrees clockwise in the positions created.

[Positions<<<{"href": "../../syntax/Positions/index.html"}>>>]
  active<<<{"description": "If specified only the blocks named will be visited and made active"}>>> = 'hex_grid'
  [hex_grid]
    type = HexagonalGridPositions<<<{"description": "Create positions along a hexagonal grid. Numbering of positions increases first counterclockwise, then expanding outwards from the inner ring. Inner-numbering is within a radial ring.", "href": "HexagonalGridPositions.html"}>>>
    center<<<{"description": "Center of the hexagonal grid"}>>> = '0 0 0'
    nr<<<{"description": "Number of hexagonal rings"}>>> = 2
    # the lattice flat to flat is very large compared to the pitch * nr
    # the duct would be in between the lattice and the lattice
    lattice_flat_to_flat<<<{"description": "Distance between two (inner) opposite sides of a lattice. Also known as bundle pitch or inner flat-to-flat distance"}>>> = 7
    pin_pitch<<<{"description": "Distance between pins"}>>> = 0.5
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'out'
  []
  [hex_grid_2rings_exclusions]
    type = HexagonalGridPositions<<<{"description": "Create positions along a hexagonal grid. Numbering of positions increases first counterclockwise, then expanding outwards from the inner ring. Inner-numbering is within a radial ring.", "href": "HexagonalGridPositions.html"}>>>
    center<<<{"description": "Center of the hexagonal grid"}>>> = '0 0 0'
    nr<<<{"description": "Number of hexagonal rings"}>>> = 2
    pattern<<<{"description": "A double-indexed hexagonal-shaped array starting with the upper-left corner. '-1's are not selected as positions."}>>> = '1 1;
             2  1  2;
               1 1'
    include_in_pattern<<<{"description": "A vector of the numbers in the pattern to include"}>>> = '1'
    lattice_flat_to_flat<<<{"description": "Distance between two (inner) opposite sides of a lattice. Also known as bundle pitch or inner flat-to-flat distance"}>>> = 4
    pin_pitch<<<{"description": "Distance between pins"}>>> = 0.5
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'out'
  []
  [hex_grid_3rings_exclusions]
    type = HexagonalGridPositions<<<{"description": "Create positions along a hexagonal grid. Numbering of positions increases first counterclockwise, then expanding outwards from the inner ring. Inner-numbering is within a radial ring.", "href": "HexagonalGridPositions.html"}>>>
    center<<<{"description": "Center of the hexagonal grid"}>>> = '0 0 0'
    nr<<<{"description": "Number of hexagonal rings"}>>> = 3
    pattern<<<{"description": "A double-indexed hexagonal-shaped array starting with the upper-left corner. '-1's are not selected as positions."}>>> = '1 1 1;
              1 1 1 1;
             2 1 3 2 3;
              1 1 3 1;
               1 1 1'
    include_in_pattern<<<{"description": "A vector of the numbers in the pattern to include"}>>> = '1 2'
    lattice_flat_to_flat<<<{"description": "Distance between two (inner) opposite sides of a lattice. Also known as bundle pitch or inner flat-to-flat distance"}>>> = 4
    pin_pitch<<<{"description": "Distance between pins"}>>> = 0.5
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'out'
  []
[]
(modules/reactor/test/tests/positions/hexagonal_grid_positions.i)

Input Parameters

  • centerCenter of the hexagonal grid

    C++ Type:libMesh::Point

    Controllable:No

    Description:Center of the hexagonal grid

  • lattice_flat_to_flatDistance between two (inner) opposite sides of a lattice. Also known as bundle pitch or inner flat-to-flat distance

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Distance between two (inner) opposite sides of a lattice. Also known as bundle pitch or inner flat-to-flat distance

  • nrNumber of hexagonal rings

    C++ Type:unsigned int

    Controllable:No

    Description:Number of hexagonal rings

  • pin_pitchDistance between pins

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Distance between pins

Required Parameters

  • include_in_patternA vector of the numbers in the pattern to include

    C++ Type:std::vector<unsigned int>

    Controllable:No

    Description:A vector of the numbers in the pattern to include

  • initial_positionsPositions at the beginning of the simulation

    C++ Type:PositionsName

    Controllable:No

    Description:Positions at the beginning of the simulation

  • patternA double-indexed hexagonal-shaped array starting with the upper-left corner. '-1's are not selected as positions.

    C++ Type:std::vector<std::vector<unsigned int>>

    Controllable:No

    Description:A double-indexed hexagonal-shaped array starting with the upper-left corner. '-1's are not selected as positions.

  • positions_patternA double-indexed hexagonal-shaped array with the index of other Positions objects starting with the upper-left corner. These positions objects will be distributed within the hexagonal grid. The indexing is given in 'positions_pattern_indexing'. Use '-1' to discard a position in the lattice.

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

    Controllable:No

    Description:A double-indexed hexagonal-shaped array with the index of other Positions objects starting with the upper-left corner. These positions objects will be distributed within the hexagonal grid. The indexing is given in 'positions_pattern_indexing'. Use '-1' to discard a position in the lattice.

  • positions_pattern_indexing{}A map from the name of positions objects to their index in the 'positions_pattern'

    Default:{}

    C++ Type:std::map<std::string, unsigned int, std::less<std::string>, std::allocator<std::pair<std::stringconst, unsigned int>>>

    Controllable:No

    Description:A map from the name of positions objects to their index in the 'positions_pattern'

Optional Parameters

  • allow_duplicate_execution_on_initialFalseIn the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).

    Default:False

    C++ Type:bool

    Controllable:No

    Description:In the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).

  • execute_onNONEThe list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.

    Default:NONE

    C++ Type:ExecFlagEnum

    Options:XFEM_MARK, FORWARD, ADJOINT, HOMOGENEOUS_FORWARD, ADJOINT_TIMESTEP_BEGIN, ADJOINT_TIMESTEP_END, NONE, INITIAL, LINEAR, LINEAR_CONVERGENCE, NONLINEAR, NONLINEAR_CONVERGENCE, POSTCHECK, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, MULTIAPP_FIXED_POINT_CONVERGENCE, FINAL, CUSTOM

    Controllable:No

    Description:The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.

  • execution_order_group0Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.

    Default:0

    C++ Type:int

    Controllable:No

    Description:Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.

  • force_postauxFalseForces the UserObject to be executed in POSTAUX

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Forces the UserObject to be executed in POSTAUX

  • force_preauxFalseForces the UserObject to be executed in PREAUX

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Forces the UserObject to be executed in PREAUX

  • force_preicFalseForces the UserObject to be executed in PREIC during initial setup

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Forces the UserObject to be executed in PREIC during initial setup

Execution Scheduling Parameters

  • auto_broadcastFalseWether Positions should be broadcasted across all ranks

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Wether Positions should be broadcasted across all ranks

  • auto_sortFalseWhether Positions should be sorted by coordinates

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether Positions should be sorted by coordinates

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

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

    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

    Controllable:Yes

    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>

    Controllable:No

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

  • use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

Advanced Parameters

  • prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

  • use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

Material Property Retrieval Parameters

Input Files