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 "PKAEmpiricalBase.h" 12 : #include "Function.h" 13 : 14 : /** 15 : * PKAs with time dependent mass, charge, energy, and rate 16 : */ 17 : class PKAFunction : public PKAEmpiricalBase 18 : { 19 : public: 20 : static InputParameters validParams(); 21 : 22 : PKAFunction(const InputParameters & parameters); 23 : 24 : protected: 25 : /// Fission rate (per unit volume) 26 6000 : virtual Real getPKARate() const override { return _pka_rate.value(_time, Point()); }; 27 : 28 : ///@{ charge, mass, energy 29 6000 : virtual unsigned int getZ() const override { return _Z.value(_time, Point()); }; 30 6000 : virtual Real getM() const override { return _m.value(_time, Point()); }; 31 6000 : virtual Real getE() const override { return _E.value(_time, Point()); }; 32 : ///@} 33 : 34 : /// Fission rate (per unit volume) 35 : const Function & _pka_rate; 36 : 37 : /// PKA nuclear charge 38 : const Function & _Z; 39 : 40 : /// PKA mass 41 : const Function & _m; 42 : 43 : /// PKA Energy (in eV) 44 : const Function & _E; 45 : 46 : /// time 47 : const Real & _time; 48 : };