Parent class for PAPRECA events.
More...
#include <event.h>
Parent class for PAPRECA events.
DISCLAIMER: PAPRECA::Event objects are not to be confused with PredefinedEventList objects. For more information about PredefinedEvent objects please refer to the relevant header and/or the documentation (event_list.h and event_list.cpp). PAPRECA::Event objects are the events discovered and (potentially) executed by the kMC algorithm. Every MPI proc can (and will) discover different PAPRECA::Event objects. The types of PAPRECA::Event supported by the initial version of this software are: PAPRECA::BondBreak, PAPRECA::BondForm, PAPRECA::Deposition (i.e., adsorption), PAPRECA::DiffusionHop, and PAPRECA::MonoatomicDesorption. It should be straightforward to extend the software to include new PAPRECA:Event types. A new child PAPRECA::Event class can be developed to enable the discovery of new classes of events. New event style implementations should be placed in this header.
◆ Event() [1/2]
PAPRECA::Event::Event |
( |
| ) |
|
◆ Event() [2/2]
PAPRECA::Event::Event |
( |
const double & |
rate_in, |
|
|
const std::string & |
type_in |
|
) |
| |
◆ ~Event()
PAPRECA::Event::~Event |
( |
| ) |
|
|
virtual |
◆ assignRate()
void PAPRECA::Event::assignRate |
( |
const double & |
rate_in | ) |
|
◆ assignType()
void PAPRECA::Event::assignType |
( |
const std::string & |
type_in | ) |
|
◆ deleteAndClearLocalEvents()
void PAPRECA::Event::deleteAndClearLocalEvents |
( |
LAMMPS_NS::LAMMPS * |
lmp, |
|
|
std::vector< Event * > & |
events_local |
|
) |
| |
|
static |
Deletes all local events (different on each MPI process) and clears the events_local vector of PAPRECA::Event objects.
- Parameters
-
[in] | lmp | pointer to LAMMPS object. |
[in,out] | events_local | vector containing all the PAPRECA::Event objects for a specific MPI process. |
◆ fillRatesArr()
void PAPRECA::Event::fillRatesArr |
( |
double * |
event_rates, |
|
|
const std::vector< Event * > & |
events |
|
) |
| |
|
static |
Receives a vector of pointers to event objects, and fills a (previously-initialized) double array with the rates of events.
- Parameters
-
[in] | event_rates | previously-initialized array of doubles. |
[in] | events | vector to pointers of PAPRECA::Event objects (and/or objects of children of PAPRECA::Event). |
- See also
- Event::fillRatesVec()
- Note
- This function assumes that the event_rates array was properly initialized (i.e., has as many elements as the number of events in the vector of pointers to PAPRECA::Event objects. Incorrectly initializing the array of doubles will lead to segmentation faults.
◆ fillRatesVec()
void PAPRECA::Event::fillRatesVec |
( |
std::vector< double > & |
event_rates, |
|
|
const std::vector< Event * > & |
events |
|
) |
| |
|
static |
Same as Event::fillRatesArr() but fills a vector of doubles instead of an array of doubles.
- Parameters
-
[in] | event_rates | vector of doubles storing the rates of events. |
[in] | events | vector to pointers of PAPRECA::Event objects (and/or objects of children of PAPRECA::Event). |
- See also
- Event::fillRatesArr()
- Note
- Even though a vector is used here, the present function can still lead to segmentation faults, since it uses C-style array access (i.e., event_rates[i]) instead of C++-style push_back functions. The use of C-style array access was mandatory to facilitate the communicator of data between MPI processes.
◆ getRate()
const double & PAPRECA::Event::getRate |
( |
| ) |
const |
◆ getRatesVec()
std::vector< double > PAPRECA::Event::getRatesVec |
( |
const std::vector< Event * > & |
events | ) |
|
|
static |
Receives a vector of pointer to PAPRECA::Event objects and returns a vector of doubles of their corresponding rates.
- Parameters
-
- Returns
- vector of double rates of the input events.
◆ getSumOfRates()
double PAPRECA::Event::getSumOfRates |
( |
const std::vector< Event * > & |
events | ) |
|
|
static |
◆ getType()
const std::string & PAPRECA::Event::getType |
( |
| ) |
const |
◆ setRate()
void PAPRECA::Event::setRate |
( |
const double & |
rate_in | ) |
|
◆ rate
double PAPRECA::Event::rate |
|
protected |
◆ type
std::string PAPRECA::Event::type |
|
protected |
The documentation for this class was generated from the following files: