62 Event(
const double &rate_in ,
const std::string &type_in );
69 void setRate(
const double &rate_in );
70 const std::string &
getType( )
const;
73 static void fillRatesArr(
double *event_rates ,
const std::vector< Event* > &events );
74 static void fillRatesVec( std::vector< double > &event_rates ,
const std::vector< Event* > &events );
75 static std::vector< double >
getRatesVec(
const std::vector< Event* > &events );
76 static double getSumOfRates(
const std::vector< Event* > &events );
93 Reaction(
const double &rate_in ,
const LAMMPS_NS::tagint &atom1id_in ,
const LAMMPS_NS::tagint &atom2id_in ,
const int &bond_type_in );
100 void initialize(
const LAMMPS_NS::tagint &atom1id_in ,
const LAMMPS_NS::tagint &atom2id_in ,
const int &bond_type_in ,
const double &rate_in);
102 void assignAtom1(
const LAMMPS_NS::tagint &atom1id_in );
103 void assignAtom2(
const LAMMPS_NS::tagint &atom2id_in );
121 BondBreak(
const double &rate_in ,
const LAMMPS_NS::tagint &atom1id_in ,
const LAMMPS_NS::tagint &atom2id_in ,
const int &bond_type_in ,
PredefinedReaction *break_teamplate_in );
141 BondForm(
const double &rate_in ,
const LAMMPS_NS::tagint &atom1id_in ,
const LAMMPS_NS::tagint &atom2id_in ,
const int &bond_type_in ,
PredefinedBondForm *form_template_in );
162 Deposition(
const double &rate_in ,
const double site_pos_in[3] ,
const double rot_pos_in[3] ,
const double &rot_theta_in ,
const int &mol_id_in ,
const std::string &mol_name_in ,
PredefinedDeposition *depo_template_in );
194 Diffusion(
const double &rate_in ,
const double vacancy_pos_in[3] ,
const LAMMPS_NS::tagint &parent_id_in ,
const int &parent_type_in ,
const int &is_displacive_in ,
const int &diffused_type_in ,
PredefinedDiffusionHop *diff_template_in );
child of PAPRECA::Reaction dedicated to bond-breaking events.
Definition: event.h:114
PredefinedReaction * getBreakTemplate()
Definition: event.cpp:183
BondBreak(const double &rate_in, const LAMMPS_NS::tagint &atom1id_in, const LAMMPS_NS::tagint &atom2id_in, const int &bond_type_in, PredefinedReaction *break_teamplate_in)
Definition: event.cpp:177
~BondBreak()
Definition: event.cpp:180
PredefinedReaction * break_template
Definition: event.h:129
Child of PAPRECA::Event dedicated to monoatomic or molecular adsorption.
Definition: event.h:154
std::string mol_name
Definition: event.h:179
double rot_theta
Definition: event.h:177
double * getSitePos()
Definition: event.cpp:215
const double & getRotTheta() const
Definition: event.cpp:217
double * getRotPos()
Definition: event.cpp:216
Deposition(const double &rate_in, const double site_pos_in[3], const double rot_pos_in[3], const double &rot_theta_in, const int &mol_id_in, const std::string &mol_name_in, PredefinedDeposition *depo_template_in)
Definition: event.cpp:208
double rot_pos[3]
Definition: event.h:176
double site_pos[3]
Definition: event.h:175
const int & getMolId() const
Definition: event.cpp:218
PredefinedDeposition * depo_template
Definition: event.h:183
~Deposition()
Definition: event.cpp:212
PredefinedDeposition * getDepoTemplate()
Definition: event.cpp:220
int mol_id
Definition: event.h:178
const std::string & getMolName() const
Definition: event.cpp:219
child of PAPRECA::Event class dedicated to diffusion events.
Definition: event.h:187
PredefinedDiffusionHop * diff_template
Definition: event.h:214
const LAMMPS_NS::tagint & getParentId() const
Definition: event.cpp:235
int diffused_type
Definition: event.h:211
int parent_type
Definition: event.h:209
LAMMPS_NS::tagint parent_id
Definition: event.h:208
double vacancy_pos[3]
Definition: event.h:206
int is_displacive
Displacive diffusion events "displace" the parent atom. This is defined as an integer (and not as boo...
Definition: event.h:210
const int & getParentType() const
Definition: event.cpp:236
Diffusion(const double &rate_in, const double vacancy_pos_in[3], const LAMMPS_NS::tagint &parent_id_in, const int &parent_type_in, const int &is_displacive_in, const int &diffused_type_in, PredefinedDiffusionHop *diff_template_in)
Definition: event.cpp:228
~Diffusion()
Definition: event.cpp:231
double * getVacancyPos()
Definition: event.cpp:234
PredefinedDiffusionHop * getDiffTemplate()
Definition: event.cpp:239
const int & getDiffusedType() const
Definition: event.cpp:238
int isDisplacive()
Definition: event.cpp:237
Parent class for PAPRECA events.
Definition: event.h:46
static void fillRatesArr(double *event_rates, const std::vector< Event * > &events)
Definition: event.cpp:43
static std::vector< double > getRatesVec(const std::vector< Event * > &events)
Definition: event.cpp:74
void assignType(const std::string &type_in)
Definition: event.cpp:37
void setRate(const double &rate_in)
Definition: event.cpp:39
static void deleteAndClearLocalEvents(LAMMPS_NS::LAMMPS *lmp, std::vector< Event * > &events_local)
Definition: event.cpp:99
std::string type
Definition: event.h:81
double rate
Definition: event.h:80
const std::string & getType() const
Definition: event.cpp:40
const double & getRate() const
Definition: event.cpp:38
virtual ~Event()
Definition: event.cpp:33
Event()
Definition: event.cpp:31
static double getSumOfRates(const std::vector< Event * > &events)
Definition: event.cpp:93
void assignRate(const double &rate_in)
Definition: event.cpp:36
static void fillRatesVec(std::vector< double > &event_rates, const std::vector< Event * > &events)
Definition: event.cpp:59
child of PAPRECA::Event dedicated to monoatomic desorption events (i.e., where a single atom is eject...
Definition: event.h:219
PredefinedMonoatomicDesorption * getMonoDesTemplate()
Definition: event.cpp:250
const LAMMPS_NS::tagint & getParentId() const
Definition: event.cpp:248
const int & getParentType() const
Definition: event.cpp:249
LAMMPS_NS::tagint parent_id
Definition: event.h:235
~MonoatomicDesorption()
Definition: event.cpp:245
int parent_type
Definition: event.h:236
MonoatomicDesorption(const double &rate_in, const LAMMPS_NS::tagint &parent_id_in, const int &parent_type_in, PredefinedMonoatomicDesorption *des_template_in)
Definition: event.cpp:244
PredefinedMonoatomicDesorption * monodes_template
Definition: event.h:239
class associated with deposition events. This is a Predefined template for PAPRECA::Deposition events...
Definition: event_list.h:153
class associated with diffusion events. This is a Predefined template for PAPRECA::DiffusionHop event...
Definition: event_list.h:120
associated with monoatomic desorption events. This is a Predefined template for PAPRECA::MonoatomicDe...
Definition: event_list.h:205
class associated with reaction events. This is a Predefined template for PAPRECA::BondBreak and PAPRE...
Definition: event_list.h:55
Child of PAPRECA:Event and parent of PAPRECA::BondBreak and PAPRECA::BondForm classes.
Definition: event.h:86
void assignBondType(const int &bond_type_ind)
Definition: event.cpp:148
int bond_type
Definition: event.h:109
LAMMPS_NS::tagint atom1id
Definition: event.h:108
const int & getBondType() const
Definition: event.cpp:145
Reaction(const double &rate_in, const LAMMPS_NS::tagint &atom1id_in, const LAMMPS_NS::tagint &atom2id_in, const int &bond_type_in)
Definition: event.cpp:139
void assignAtom1(const LAMMPS_NS::tagint &atom1id_in)
Definition: event.cpp:146
void initialize(const LAMMPS_NS::tagint &atom1id_in, const LAMMPS_NS::tagint &atom2id_in, const int &bond_type_in, const double &rate_in)
Definition: event.cpp:150
void assignAtom2(const LAMMPS_NS::tagint &atom2id_in)
Definition: event.cpp:147
void resetEvent()
Definition: event.cpp:161
LAMMPS_NS::tagint atom2id
Definition: event.h:108
~Reaction()
Definition: event.cpp:140
const LAMMPS_NS::tagint & getAtom1ID() const
Definition: event.cpp:143
const LAMMPS_NS::tagint & getAtom2ID() const
Definition: event.cpp:144
Declarations of PredefinedEvent classes.
Declarations for LAMMPS wrapper functions.
Utility functions (e.g., for arrays, strings etc.) and typedefs used in papreca.cpp main and in the o...