RotationSearch

Description

RotationSearch is a CriticalitySearch that targets a specified -eigenvalue by updating an openmc.Cell.rotation, which can be applied to one or more cells in the OpenMC model. The RotationSearch class inherits from OpenMCCellTransformBase, which handles all modifications to the cells involved in a search.

commentnote

The cells specified in the search must be filled with a universe. All cells included in the search will have the same rotation applied.

Only axis aligned searches are allowed, so the user needs to specify which rotation axis ( x, y, or z) will be modified via the "rotation_axis" parameter when searching for a critical configuration. The main reason for this restriction is that it is very easy to create an OpenMC model with voids prone to lost particles by modifying multiple rotation angles at once. If your model desires to rotate around a non-principal axis or rotate around multiple axes, it is advised to instead build a version in a different reference frame that searches by rotating along one of the three available axes.

Example Input File Syntax

Here is a valid RotationSearch which shows the corresponding CriticalitySearch block used to define the search which will happen on each iteration.

[Problem<<<{"href": "../../syntax/Problem/index.html"}>>>]
  type = OpenMCCellAverageProblem

  [CriticalitySearch<<<{"href": "../../syntax/Problem/CriticalitySearch/index.html"}>>>]
    type = RotationSearch
    cell_ids = '5'
    rotation_axis = 'z'
    minimum = '0.0'
    maximum = '90.0'
    tolerance = 1e-2
  []
[]
(test/tests/criticality/rotation/openmc.i)

Input Parameters

  • cell_idsList of OpenMC cell IDs whose filled universes will be transformed.

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

    Controllable:No

    Description:List of OpenMC cell IDs whose filled universes will be transformed.

  • maximumMaximum for values to search over; the root must occur at a value smaller than the maximum

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Maximum for values to search over; the root must occur at a value smaller than the maximum

  • minimumMinimum for values to search over; the root must occur at a value greater than the minimum

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Minimum for values to search over; the root must occur at a value greater than the minimum

  • rotation_axisAxis about which to rotate the cell's fill.

    C++ Type:MooseEnum

    Options:x, y, z

    Controllable:No

    Description:Axis about which to rotate the cell's fill.

Required Parameters

  • estimatorcombinedType of eigenvalue estimator to use

    Default:combined

    C++ Type:MooseEnum

    Options:collision, absorption, tracklength, combined

    Controllable:No

    Description:Type of eigenvalue estimator to use

  • target1Target value of k effective to search for

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Range:target > 0.0

    Controllable:No

    Description:Target value of k effective to search for

  • tolerance0.001Absolute tolerance to converge multiplication factor; be aware that if too few particles are used, statistical noise may require many criticality calculations to converge.

    Default:0.001

    C++ Type:double

    Unit:(no unit assumed)

    Range:tolerance > 0

    Controllable:No

    Description:Absolute tolerance to converge multiplication factor; be aware that if too few particles are used, statistical noise may require many criticality calculations to converge.

Optional Parameters

  • 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:No

    Description:Set the enabled status of the MooseObject.

Advanced Parameters

Input Files