Line data Source code
1 : //* This file is part of the MOOSE framework 2 : //* https://mooseframework.inl.gov 3 : //* 4 : //* All rights reserved, see COPYRIGHT for full restrictions 5 : //* https://github.com/idaholab/moose/blob/master/COPYRIGHT 6 : //* 7 : //* Licensed under LGPL 2.1, please see LICENSE for details 8 : //* https://www.gnu.org/licenses/lgpl-2.1.html 9 : 10 : #include "DiscreteNucleationInserterBase.h" 11 : 12 : InputParameters 13 333 : DiscreteNucleationInserterBase::validParams() 14 : { 15 333 : InputParameters params = ElementUserObject::validParams(); 16 333 : params.set<ExecFlagEnum>("execute_on") = EXEC_TIMESTEP_END; 17 333 : return params; 18 0 : } 19 : 20 176 : DiscreteNucleationInserterBase::DiscreteNucleationInserterBase(const InputParameters & parameters) 21 : : ElementUserObject(parameters), 22 176 : _global_nucleus_list(declareRestartableData<NucleusList>("global_nucleus_list", 0)), 23 : _changes_made(0, 0), 24 352 : _update_required(_app.isRecovering() || _app.isRestarting()) 25 : { 26 : // Even though this object executes on timestep_end, registering on timestep_begin will allow 27 : // generators to be restored if a timestep is repeated. 28 176 : setRandomResetFrequency(EXEC_TIMESTEP_BEGIN); 29 176 : } 30 : 31 : template <> 32 : void 33 467 : dataStore(std::ostream & stream, 34 : DiscreteNucleationInserterBase::NucleusLocation & nl, 35 : void * context) 36 : { 37 467 : storeHelper(stream, nl.time, context); 38 467 : storeHelper(stream, nl.center, context); 39 467 : storeHelper(stream, nl.radius, context); 40 467 : } 41 : 42 : template <> 43 : void 44 126 : dataLoad(std::istream & stream, 45 : DiscreteNucleationInserterBase::NucleusLocation & nl, 46 : void * context) 47 : { 48 126 : loadHelper(stream, nl.time, context); 49 126 : loadHelper(stream, nl.center, context); 50 126 : loadHelper(stream, nl.radius, context); 51 126 : }