Line data Source code
1 : /**********************************************************************/ 2 : /* DO NOT MODIFY THIS HEADER */ 3 : /* MAGPIE - Mesoscale Atomistic Glue Program for Integrated Execution */ 4 : /* */ 5 : /* Copyright 2017 Battelle Energy Alliance, LLC */ 6 : /* ALL RIGHTS RESERVED */ 7 : /**********************************************************************/ 8 : 9 : #pragma once 10 : 11 : #include "GeneralUserObject.h" 12 : #include "MyTRIMRasterizer.h" 13 : 14 : #include <map> 15 : #include <vector> 16 : 17 : class MooseMesh; 18 : 19 : /** 20 : * This UserObject rasterizes a simulation domain for the MyTRIM library 21 : */ 22 : class MyTRIMRunBase : public GeneralUserObject 23 : { 24 : public: 25 : static InputParameters validParams(); 26 : 27 : MyTRIMRunBase(const InputParameters & parameters); 28 : 29 : // get the number of elements in the TRIM simulation 30 223 : unsigned int nVars() const { return _nvars; } 31 : 32 : // get the name of the rasterizer object (this is to add an artificial dependence in an AuxKernel) 33 476 : UserObjectName getRasterizerName() const { return getParam<UserObjectName>("rasterizer"); } 34 : 35 : // get const reference to the rasterizer object 36 235 : const MyTRIMRasterizer & rasterizer() const { return _rasterizer; } 37 : 38 : protected: 39 : /// Rasterizer object to provide the material data 40 : const MyTRIMRasterizer & _rasterizer; 41 : 42 : /// trim simulation parameters 43 : const MyTRIMRasterizer::TrimParameters & _trim_parameters; 44 : 45 : /// number of elements in the TRIM simulation 46 : const unsigned int _nvars; 47 : 48 : /// number of primary knock-on atoms (PKA) to simulate 49 : const std::vector<MyTRIM_NS::IonBase> & _pka_list; 50 : 51 : /// The Mesh we're using 52 : MooseMesh & _mesh; 53 : 54 : /// dimension of the mesh 55 : const unsigned int _dim; 56 : };