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