24 #ifndef EVENT_DETECT_H
25 #define EVENT_DETECT_H
50 const bool feCandidateHas4PO4Neibs( PaprecaConfig &papreca_config , PredefinedDiffusionHop *diff_template , LAMMPS_NS::tagint *atom_ids ,
int *atom_types ,
int *neighbors ,
int &neighbors_num ,
ATOM2BONDS_MAP &atomID2bonds );
51 void getDiffPointCandidateCoords( LAMMPS_NS::LAMMPS *lmp , PaprecaConfig &papreca_config ,
double *iatom_xyz ,
double *candidate_xyz , PredefinedDiffusionHop *diff_template );
52 const bool candidateDiffHasCollisions( LAMMPS_NS::LAMMPS *lmp , PaprecaConfig &papreca_config ,
int *neighbors ,
int &neighbors_num ,
double *candidate_xyz ,
const int &diffused_type ,
double *iatom_xyz ,
const int &iatom_type );
53 void getDiffEventsFromAtom( LAMMPS_NS::LAMMPS *lmp , PaprecaConfig &papreca_config ,
const int &iatom ,
int *neighbors ,
int &neighbors_num , std::vector< Event* > &events_local ,
ATOM2BONDS_MAP &atomID2bonds );
56 const bool atomIsInDepoScanRange( PaprecaConfig &papreca_config ,
double *iatom_xyz ,
double &film_height );
57 void getDepoPointCandidateCoords( LAMMPS_NS::LAMMPS *lmp , PaprecaConfig &papreca_config ,
double *iatom_xyz ,
double *candidate_xyz , PredefinedDeposition *depo_template );
59 void getMolCoords( LAMMPS_NS::LAMMPS *lmp ,
double **mol_xyz ,
double **mol_dx ,
const int &mol_natoms ,
double *candidate_center );
62 bool atomHasCollisionWithMolAtoms( LAMMPS_NS::LAMMPS *lmp , PaprecaConfig &papreca_config ,
double *atom_xyz ,
const int &atom_type ,
const int &mol_natoms ,
double **mol_xyz ,
int *mol_atomtype );
63 bool candidateDepoHasCollisions( LAMMPS_NS::LAMMPS *lmp ,
const int &proc_id ,
const int &nprocs , PaprecaConfig &papreca_config ,
int *neighbors ,
int neighbors_num ,
double *candidate_center ,
double *iatom_xyz ,
const int &iatom_type , PredefinedDeposition *depo_template );
64 void getDepoEventsFromAtom( LAMMPS_NS::LAMMPS *lmp , PaprecaConfig &papreca_config ,
const int &proc_id ,
const int &nprocs ,
const int &iatom ,
int *neighbors ,
int &neighbors_num ,
double &film_height , std::vector< Event* > &events_local );
67 const bool headAtomIsCatalyzed( PredefinedReaction *reaction_template ,
int *atom_types ,
int *neighbors ,
int &neighbors_num );
70 const bool atomsBelong2TheSameMol(
const LAMMPS_NS::tagint &iatom_mol ,
const LAMMPS_NS::tagint &jneib_mol );
Declarations for PAPRECA::Bond.
Class storing settings and global variables for the PAPRECA run.
Definition: papreca_config.h:51
Declarations for PAPRECA:Event class and its children classes.
Declarations of PredefinedEvent classes.
Header for geometry calculation functions (e.g., film height, interference).
Declarations for LAMMPS wrapper functions.
const bool candidateDiffHasCollisions(LAMMPS_NS::LAMMPS *lmp, PaprecaConfig &papreca_config, int *neighbors, int &neighbors_num, double *candidate_xyz, const int &diffused_type, double *iatom_xyz, const int &iatom_type)
Definition: event_detect.cpp:118
bool atomHasCollisionWithMolAtoms(LAMMPS_NS::LAMMPS *lmp, PaprecaConfig &papreca_config, double *atom_xyz, const int &atom_type, const int &mol_natoms, double **mol_xyz, int *mol_atomtype)
Definition: event_detect.cpp:331
void getBondFormEventsFromAtom(LAMMPS_NS::LAMMPS *lmp, PaprecaConfig &papreca_config, const int &iatom, int *neighbors, int &neighbors_num, std::vector< Event * > &events_local, ATOM2BONDS_MAP &atomID2bonds)
Definition: event_detect.cpp:681
const bool atomIsInDepoScanRange(PaprecaConfig &papreca_config, double *iatom_xyz, double &film_height)
Definition: event_detect.cpp:205
void getDiffPointCandidateCoords(LAMMPS_NS::LAMMPS *lmp, PaprecaConfig &papreca_config, double *iatom_xyz, double *candidate_xyz, PredefinedDiffusionHop *diff_template)
Definition: event_detect.cpp:70
const bool feCandidateHas4PO4Neibs(PaprecaConfig &papreca_config, PredefinedDiffusionHop *diff_template, LAMMPS_NS::tagint *atom_ids, int *atom_types, int *neighbors, int &neighbors_num, ATOM2BONDS_MAP &atomID2bonds)
Definition: event_detect.cpp:28
std::unordered_map< LAMMPS_NS::tagint, BOND_VECTOR > ATOM2BONDS_MAP
maps atom IDs to their associated PAPRECA::BOND_VECTOR to allow easy access of bonds and bond types.
Definition: bond.h:46
const bool atomCandidatesAreLone(const LAMMPS_NS::tagint atom1_id, const LAMMPS_NS::tagint atom2_id, ATOM2BONDS_MAP &atomID2bonds)
Definition: event_detect.cpp:640
const bool atomsBelong2TheSameMol(const LAMMPS_NS::tagint &iatom_mol, const LAMMPS_NS::tagint &jneib_mol)
Definition: event_detect.cpp:588
void getBondBreakingEventsFromAtom(LAMMPS_NS::LAMMPS *lmp, PaprecaConfig &papreca_config, const int &iatom, int *neighbors, int &neighbors_num, std::vector< Event * > &events_local, ATOM2BONDS_MAP &atomID2bonds)
Definition: event_detect.cpp:533
const bool depoCandidateIsBelowRejectionHeight(PaprecaConfig &papreca_config, double *candidate_xyz, const double &film_height)
Definition: event_detect.cpp:258
void getDiffEventsFromAtom(LAMMPS_NS::LAMMPS *lmp, PaprecaConfig &papreca_config, const int &iatom, int *neighbors, int &neighbors_num, std::vector< Event * > &events_local, ATOM2BONDS_MAP &atomID2bonds)
Definition: event_detect.cpp:151
void getMonoDesEventsFromAtom(LAMMPS_NS::LAMMPS *lmp, PaprecaConfig &papreca_config, const int &iatom, std::vector< Event * > &events_local, ATOM2BONDS_MAP &atomID2bonds)
Definition: event_detect.cpp:752
void getDepoPointCandidateCoords(LAMMPS_NS::LAMMPS *lmp, PaprecaConfig &papreca_config, double *iatom_xyz, double *candidate_xyz, PredefinedDeposition *depo_template)
Definition: event_detect.cpp:218
bool candidateDepoHasCollisions(LAMMPS_NS::LAMMPS *lmp, const int &proc_id, const int &nprocs, PaprecaConfig &papreca_config, int *neighbors, int neighbors_num, double *candidate_center, double *iatom_xyz, const int &iatom_type, PredefinedDeposition *depo_template)
Definition: event_detect.cpp:357
void loopAtomsAndIdentifyEvents(LAMMPS_NS::LAMMPS *lmp, const int &proc_id, int &nprocs, const int &KMC_loopid, PaprecaConfig &papreca_config, std::vector< Event * > &events_local, ATOM2BONDS_MAP &atomID2bonds, double &film_height)
Definition: event_detect.cpp:790
void initMolCoordsArr(double ***mol_xyz, const int &mol_natoms)
Definition: event_detect.cpp:296
const bool atomHasMaxBondTypes(PaprecaConfig &papreca_config, ATOM2BONDS_MAP &atomID2bonds, const LAMMPS_NS::tagint &atom_id, const int &atom_type, const int &bond_type)
Definition: event_detect.cpp:655
const bool headAtomIsCatalyzed(PredefinedReaction *reaction_template, int *atom_types, int *neighbors, int &neighbors_num)
Definition: event_detect.cpp:471
void deleteMolCoordsArr(double **mol_xyz, const int &mol_natoms)
Definition: event_detect.cpp:314
void getMolCoords(LAMMPS_NS::LAMMPS *lmp, double **mol_xyz, double **mol_dx, const int &mol_natoms, double *candidate_center)
Definition: event_detect.cpp:272
void getDepoEventsFromAtom(LAMMPS_NS::LAMMPS *lmp, PaprecaConfig &papreca_config, const int &proc_id, const int &nprocs, const int &iatom, int *neighbors, int &neighbors_num, double &film_height, std::vector< Event * > &events_local)
Definition: event_detect.cpp:413
bool bondBetweenAtomsExists(ATOM2BONDS_MAP &atomID2bonds, const LAMMPS_NS::tagint &atom1_id, const LAMMPS_NS::tagint &atom2_id)
Definition: event_detect.cpp:614
const bool bondLengthIsWithinBreakLimits(LAMMPS_NS::LAMMPS *lmp, PredefinedReaction *break_template, const int &iatom, const LAMMPS_NS::tagint &jatom_id)
Definition: event_detect.cpp:501
const bool atomHasMaxBonds(PaprecaConfig &papreca_config, ATOM2BONDS_MAP &atomID2bonds, const LAMMPS_NS::tagint &atom_id, const int atom_type)
Definition: event_detect.cpp:600
Declarations for PAPRECA::PaprecaConfig class storing settings and global variables.
Utility functions (e.g., for arrays, strings etc.) and typedefs used in papreca.cpp main and in the o...