Line data Source code
1 : /********************************************************************/ 2 : /* SOFTWARE COPYRIGHT NOTIFICATION */ 3 : /* Cardinal */ 4 : /* */ 5 : /* (c) 2021 UChicago Argonne, LLC */ 6 : /* ALL RIGHTS RESERVED */ 7 : /* */ 8 : /* Prepared by UChicago Argonne, LLC */ 9 : /* Under Contract No. DE-AC02-06CH11357 */ 10 : /* With the U. S. Department of Energy */ 11 : /* */ 12 : /* Prepared by Battelle Energy Alliance, LLC */ 13 : /* Under Contract No. DE-AC07-05ID14517 */ 14 : /* With the U. S. Department of Energy */ 15 : /* */ 16 : /* See LICENSE for full restrictions */ 17 : /********************************************************************/ 18 : 19 : #pragma once 20 : 21 : #include "MooseTypes.h" 22 : #include "InputParameters.h" 23 : 24 : class MooseEnum; 25 : 26 : class OpenMCCellAverageProblem; 27 : 28 : /** 29 : * Base class for applications of transforms to a OpenMC cells. 30 : */ 31 0 : class OpenMCCellTransformBase 32 : { 33 : public: 34 : static InputParameters validParams(); 35 : 36 : /// Enumeration for the transform type 37 : static const MooseEnum transform_type; 38 : /// The symbols for each dimension in the transform vector: ["φ", "θ", "ψ"] 39 : static const std::array<std::string, 3> rotation_vector_symbols; 40 : /// The symbols for the transform vector in a list form: "φ, θ, ψ" 41 : static const std::string rotation_vector_symbols_list; 42 : 43 : OpenMCCellTransformBase(const MooseObject & moose_object); 44 : 45 : /** 46 : * Do a transformation on the given cells. 47 : * @param[in] transform_type The transform type (translation or rotation) 48 : * @param[in] transform_vector The vector by to transform 49 : */ 50 : void transform(const MooseEnum & transform_type, const Point & transform_vector); 51 : 52 : protected: 53 : /// OpenMC cell IDs to which the translation will be applied 54 : const std::set<int32_t> _cell_ids; 55 : 56 : private: 57 : /// The MooseObject owning this transform 58 : const MooseObject & _moose_object; 59 : 60 : /// The OpenMC problem; for calling the transforms 61 : OpenMCCellAverageProblem & _openmc_problem; 62 : };