void dataLoad(std::istream &stream, DiscreteNucleationInserterBase::NucleusLocation &nl, void *context)
void dataStore(std::ostream &stream, DiscreteNucleationInserterBase::NucleusLocation &nl, void *context)
This UserObject manages the insertion and expiration of nuclei in the simulation domain it manages a ...
bool _update_required
is a map update required
virtual const NucleusList & getNucleusList() const
NucleusChanges _changes_made
count the number of nucleus insertions and deletions
virtual const Real & getRate() const =0
static InputParameters validParams()
std::pair< unsigned int, unsigned int > NucleusChanges
NucleusList & _global_nucleus_list
the global list of all nuclei over all processors
virtual bool isMapUpdateRequired() const
virtual const NucleusChanges & getInsertionsAndDeletions() const
std::vector< NucleusLocation > NucleusList
Every MPI task should keep a full list of nuclei (in case they cross domains with their finite radii)
const InputParameters & parameters() const
A nucleus has an expiration time, a location, and a size.