Go to the documentation of this file.
12 #include "ElementUserObject.h"
37 const std::vector<Real> &
nuclei(
const Elem *)
const;
72 using NucleusMap = std::unordered_map<dof_id_type, std::vector<Real>>;
bool _mesh_changed
Did the mesh change since the last execution of this PP?
This UserObject maintains a per QP map that indicates if a nucleus is present or not.
std::vector< Real > _elem_map
Buffer for building the per QP map.
std::pair< Real, Real > getRadiusAndWidth() const
InputParameters validParams< DiscreteNucleationMap >()
std::vector< Real > _zero_map
Dummy map for elements without nuclei.
This UserObject manages the insertion and expiration of nuclei in the simulation domain it manages a ...
virtual void initialize()
DiscreteNucleationMap(const InputParameters ¶meters)
virtual void threadJoin(const UserObject &y)
std::unordered_map< dof_id_type, std::vector< Real > > NucleusMap
Per element list with 0/1 flags indicating the presence of a nucleus.
const DiscreteNucleationInserterBase::NucleusList & _nucleus_list
list of nuclei maintained bu the inserter object
virtual void meshChanged()
std::vector< NucleusLocation > NucleusList
Every MPI task should keep a full list of nuclei (in case they cross domains with their finite radii)
int _periodic
variable number to use for minPeriodicDistance calls (i.e. use the periodicity of this variable)
const Real _int_width
Nucleus interface width.
const std::vector< Real > & nuclei(const Elem *) const
const DiscreteNucleationInserterBase & _inserter
UserObject that manages nucleus insertin and deletion.
bool _rebuild_map
Do we need to rebuild the map during this timestep?
const Real _radius
Nucleus radius.
const DiscreteNucleationInserterBase & getInserter() const