www.mooseframework.org
Public Types | Public Member Functions | Protected Attributes | List of all members
DiscreteNucleationInserterBase Class Referenceabstract

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 <DiscreteNucleationInserterBase.h>

Inheritance diagram for DiscreteNucleationInserterBase:
[legend]

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

 DiscreteNucleationInserterBase (const InputParameters &parameters)
 
virtual bool isMapUpdateRequired () const
 
virtual const NucleusListgetNucleusList () const
 
virtual const NucleusChangesgetInsertionsAndDeletions () const
 
virtual const Real & getRate () const =0
 

Protected Attributes

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...
 

Detailed Description

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 26 of file DiscreteNucleationInserterBase.h.

Member Typedef Documentation

◆ NucleusChanges

using DiscreteNucleationInserterBase::NucleusChanges = std::pair<unsigned int, unsigned int>

Definition at line 38 of file DiscreteNucleationInserterBase.h.

◆ NucleusList

Every MPI task should keep a full list of nuclei (in case they cross domains with their finite radii)

Definition at line 35 of file DiscreteNucleationInserterBase.h.

◆ NucleusLocation

using DiscreteNucleationInserterBase::NucleusLocation = std::pair<Real, Point>

A nucleus has an expiration time and a location.

Definition at line 32 of file DiscreteNucleationInserterBase.h.

Constructor & Destructor Documentation

◆ DiscreteNucleationInserterBase()

DiscreteNucleationInserterBase::DiscreteNucleationInserterBase ( const InputParameters &  parameters)

Definition at line 21 of file DiscreteNucleationInserterBase.C.

22  : ElementUserObject(parameters),
23  _global_nucleus_list(declareRestartableData("global_nucleus_list", NucleusList(0))),
24  _changes_made(0, 0),
25  _update_required(_app.isRecovering() || _app.isRestarting())
26 {
27  setRandomResetFrequency(EXEC_TIMESTEP_END);
28 }
NucleusChanges _changes_made
count the number of nucleus insertions and deletions
std::vector< NucleusLocation > NucleusList
Every MPI task should keep a full list of nuclei (in case they cross domains with their finite radii)...
bool _update_required
is a map update required
NucleusList & _global_nucleus_list
the global list of all nuclei over all processors

Member Function Documentation

◆ getInsertionsAndDeletions()

virtual const NucleusChanges& DiscreteNucleationInserterBase::getInsertionsAndDeletions ( ) const
inlinevirtual

Definition at line 42 of file DiscreteNucleationInserterBase.h.

Referenced by DiscreteNucleationData::getValue().

42 { return _changes_made; }
NucleusChanges _changes_made
count the number of nucleus insertions and deletions

◆ getNucleusList()

virtual const NucleusList& DiscreteNucleationInserterBase::getNucleusList ( ) const
inlinevirtual

Definition at line 41 of file DiscreteNucleationInserterBase.h.

41 { return _global_nucleus_list; }
NucleusList & _global_nucleus_list
the global list of all nuclei over all processors

◆ getRate()

virtual const Real& DiscreteNucleationInserterBase::getRate ( ) const
pure virtual

◆ isMapUpdateRequired()

virtual bool DiscreteNucleationInserterBase::isMapUpdateRequired ( ) const
inlinevirtual

Member Data Documentation

◆ _changes_made

NucleusChanges DiscreteNucleationInserterBase::_changes_made
protected

◆ _global_nucleus_list

NucleusList& DiscreteNucleationInserterBase::_global_nucleus_list
protected

◆ _update_required

bool DiscreteNucleationInserterBase::_update_required
protected

The documentation for this class was generated from the following files: