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 "MyTRIMRunBase.h" 12 : #include "ThreadedRecoilDiracSourceLoop.h" 13 : 14 : /** 15 : * This UserObject rasterizes a simulation domain for the MyTRIM library and 16 : * stores the resulting defect distributions as 17 : */ 18 : class MyTRIMDiracRun : public MyTRIMRunBase 19 : { 20 : public: 21 : static InputParameters validParams(); 22 : 23 : MyTRIMDiracRun(const InputParameters & parameters); 24 : 25 19 : virtual void initialize() {} 26 : virtual void execute(); 27 : virtual void finalize(); 28 : 29 : /// @{ shorthand typedefs 30 : typedef ThreadedRecoilDiracSourceLoop::MyTRIMResult MyTRIMResult; 31 : typedef ThreadedRecoilDiracSourceLoop::MyTRIMResultList MyTRIMResultList; 32 : /// @} 33 : 34 : /// get the TRIM result data 35 : const MyTRIMResultList & result() const; 36 : 37 : protected: 38 : ///@{ pack/unpack the _result_map into a structure suitable for parallel communication 39 : void serialize(std::string & serialized_buffer); 40 : void deserialize(std::vector<std::string> & serialized_buffers); 41 : ///@} 42 : 43 : /// data such as interstitials and vacancies produced will be stored here 44 : MyTRIMResultList _result_list; 45 : 46 : ///@{ timers 47 : PerfID _perf_trim; 48 : PerfID _perf_finalize; 49 : ///@} 50 : };