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 245 : DiscreteNucleationInserterBase::validParams() 14 : { 15 245 : InputParameters params = ElementUserObject::validParams(); 16 245 : params.set<ExecFlagEnum>("execute_on") = EXEC_TIMESTEP_END; 17 245 : return params; 18 0 : } 19 : 20 132 : DiscreteNucleationInserterBase::DiscreteNucleationInserterBase(const InputParameters & parameters) 21 : : ElementUserObject(parameters), 22 132 : _global_nucleus_list(declareRestartableData<NucleusList>("global_nucleus_list", 0)), 23 : _changes_made(0, 0), 24 264 : _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 132 : setRandomResetFrequency(EXEC_TIMESTEP_BEGIN); 29 132 : } 30 : 31 : template <> 32 : void 33 287 : dataStore(std::ostream & stream, 34 : DiscreteNucleationInserterBase::NucleusLocation & nl, 35 : void * context) 36 : { 37 287 : storeHelper(stream, nl.time, context); 38 287 : storeHelper(stream, nl.center, context); 39 287 : storeHelper(stream, nl.radius, context); 40 287 : } 41 : 42 : template <> 43 : void 44 83 : dataLoad(std::istream & stream, 45 : DiscreteNucleationInserterBase::NucleusLocation & nl, 46 : void * context) 47 : { 48 83 : loadHelper(stream, nl.time, context); 49 83 : loadHelper(stream, nl.center, context); 50 83 : loadHelper(stream, nl.radius, context); 51 83 : }