Line data Source code
1 : #pragma once 2 : 3 : #include "CriticalitySearchBase.h" 4 : #include "OpenMCCellTransformBase.h" 5 : 6 : /** 7 : * Perform a criticality search based on a rotation angle 8 : */ 9 : class RotationSearch : public CriticalitySearchBase, public OpenMCCellTransformBase 10 : { 11 : public: 12 : static InputParameters validParams(); 13 : 14 : RotationSearch(const InputParameters & parameters); 15 : 16 : /** Update OpenMC model with the next guess for critical. 17 : * @param[in] angle guess to pass to the next iteration 18 : */ 19 : virtual void updateOpenMCModel(const Real & angle) override; 20 48 : virtual bool changingGeometry() const override { return true; } 21 : 22 : protected: 23 720 : virtual std::string units() const override { return "[degrees]"; } 24 96 : virtual std::string quantity() const override { return "Rotation"; } 25 : 26 : /// the index of the rotational axis used to search for criticality 27 : const int _rotation_axis_idx; 28 : };