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 : #ifdef GSL_ENABLED 9 : 10 : #pragma once 11 : 12 : #include "GeneralUserObject.h" 13 : #include "ParkinCoulterInterface.h" 14 : 15 : class PolyatomicRecoil : public GeneralUserObject, public ParkinCoulterInterface 16 : { 17 : public: 18 : static InputParameters validParams(); 19 : 20 : PolyatomicRecoil(const InputParameters & parameters); 21 : void finalize() override; 22 : void execute() override; 23 16 : void initialize() override {} 24 : 25 : protected: 26 : virtual void initDamageFunctions() override; 27 : virtual std::vector<unsigned int> atomicNumbers() const override; 28 : virtual std::vector<Real> massNumbers() const override; 29 : virtual std::vector<Real> numberFractions() const override; 30 32 : virtual Real maxEnergy() const override { return getParam<Real>("Emax"); } 31 : }; 32 : 33 : #endif // GSL_ENABLED