This UserObject manages the insertion and expiration of nuclei in the simulation domain it manages a list of nuclei with their insertion times and their center positions. More...
#include <DiscreteNucleationInserter.h>
Public Types | |
using | NucleusLocation = std::pair< Real, Point > |
A nucleus has an expiration time and a location. More... | |
using | NucleusList = std::vector< NucleusLocation > |
Every MPI task should keep a full list of nuclei (in case they cross domains with their finite radii) More... | |
using | NucleusChanges = std::pair< unsigned int, unsigned int > |
Public Member Functions | |
DiscreteNucleationInserter (const InputParameters ¶meters) | |
virtual void | initialize () |
virtual void | execute () |
virtual void | threadJoin (const UserObject &y) |
virtual void | finalize () |
const Real & | getRate () const |
virtual bool | isMapUpdateRequired () const |
virtual const NucleusList & | getNucleusList () const |
virtual const NucleusChanges & | getInsertionsAndDeletions () const |
Protected Attributes | |
const MaterialProperty< Real > & | _probability |
Nucleation rate density (should be a material property implementing nucleation theory) More... | |
Real | _hold_time |
Duration of time each nucleus is kept active after insertion. More... | |
NucleusList & | _local_nucleus_list |
the local nucleus list of nuclei centered in the domain of the current processor More... | |
Real | _nucleation_rate |
total nucleation rate More... | |
NucleusList & | _global_nucleus_list |
the global list of all nuclei over all processors More... | |
NucleusChanges | _changes_made |
count the number of nucleus insertions and deletions More... | |
bool | _update_required |
is a map update required More... | |
This UserObject manages the insertion and expiration of nuclei in the simulation domain it manages a list of nuclei with their insertion times and their center positions.
A DiscreteNucleationMap is needed to enable the DiscreteNucleation material to look up if a nucleus is present at a given element/qp.
Definition at line 25 of file DiscreteNucleationInserter.h.
|
inherited |
Definition at line 37 of file DiscreteNucleationInserterBase.h.
|
inherited |
Every MPI task should keep a full list of nuclei (in case they cross domains with their finite radii)
Definition at line 34 of file DiscreteNucleationInserterBase.h.
|
inherited |
A nucleus has an expiration time and a location.
Definition at line 31 of file DiscreteNucleationInserterBase.h.
DiscreteNucleationInserter::DiscreteNucleationInserter | ( | const InputParameters & | parameters | ) |
Definition at line 30 of file DiscreteNucleationInserter.C.
|
virtual |
Definition at line 70 of file DiscreteNucleationInserter.C.
|
virtual |
Pack the _global_nucleus_list into a simple vector of Real. libMesh's allgather does not portably work on the original _global_nucleus_list data structure!
Definition at line 111 of file DiscreteNucleationInserter.C.
|
inlinevirtualinherited |
Definition at line 41 of file DiscreteNucleationInserterBase.h.
Referenced by DiscreteNucleationData::getValue().
|
inlinevirtualinherited |
Definition at line 40 of file DiscreteNucleationInserterBase.h.
|
inlinevirtual |
Implements DiscreteNucleationInserterBase.
Definition at line 35 of file DiscreteNucleationInserter.h.
|
virtual |
Definition at line 39 of file DiscreteNucleationInserter.C.
|
inlinevirtualinherited |
Definition at line 39 of file DiscreteNucleationInserterBase.h.
Referenced by DiscreteNucleationData::getValue(), and DiscreteNucleationMap::initialize().
|
virtual |
Definition at line 95 of file DiscreteNucleationInserter.C.
|
protectedinherited |
count the number of nucleus insertions and deletions
Definition at line 50 of file DiscreteNucleationInserterBase.h.
Referenced by execute(), finalize(), DiscreteNucleationFromFile::finalize(), DiscreteNucleationInserterBase::getInsertionsAndDeletions(), initialize(), DiscreteNucleationFromFile::initialize(), and threadJoin().
|
protectedinherited |
the global list of all nuclei over all processors
Definition at line 47 of file DiscreteNucleationInserterBase.h.
Referenced by finalize(), DiscreteNucleationInserterBase::getNucleusList(), initialize(), DiscreteNucleationFromFile::initialize(), and threadJoin().
|
protected |
Duration of time each nucleus is kept active after insertion.
Definition at line 42 of file DiscreteNucleationInserter.h.
Referenced by execute().
|
protected |
the local nucleus list of nuclei centered in the domain of the current processor
Definition at line 45 of file DiscreteNucleationInserter.h.
Referenced by execute(), finalize(), initialize(), and threadJoin().
|
protected |
total nucleation rate
Definition at line 48 of file DiscreteNucleationInserter.h.
Referenced by execute(), finalize(), getRate(), initialize(), and threadJoin().
|
protected |
Nucleation rate density (should be a material property implementing nucleation theory)
Definition at line 39 of file DiscreteNucleationInserter.h.
Referenced by execute().
|
protectedinherited |
is a map update required
Definition at line 53 of file DiscreteNucleationInserterBase.h.
Referenced by finalize(), DiscreteNucleationFromFile::finalize(), and DiscreteNucleationInserterBase::isMapUpdateRequired().