PAPRECA hybrid off-lattice kMC/MD simulator  2.0.0 (17 September 2024)
papreca_config.h
Go to the documentation of this file.
1 /*----------------------------------------------------------------------------------------
2 PAPRECA hybrid off-lattice kinetic Monte Carlo/Molecular dynamics simulator.
3 Copyright (C) 2024 Stavros Ntioudis, James P. Ewen, Daniele Dini, and C. Heath Turner
4 
5 This program is free software; you can redistribute it and/or
6 modify it under the terms of the GNU General Public License
7 as published by the Free Software Foundation; either version 2
8 of the License, or (at your option) any later version.
9 
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14 
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 ----------------------------------------------------------------------------------------*/
19 
22 
23 #ifndef PAPRECA_CONFIG_H
24 #define PAPRECA_CONFIG_H
25 
26 //LAMMPS Headers
27 #include "lammps.h"
28 #include "library.h"
29 #include "random_mars.h"
30 
31 
32 //System Headers
33 #include <mpi.h>
34 #include <limits>
35 #include <fstream>
36 #include <iostream>
37 
38 
39 //kMC Headers
40 #include "event_list.h"
41 #include "lammps_wrappers.h"
42 #include "utilities.h"
43 #include "export_files.h"
44 
45 namespace PAPRECA{
46 
47  /*This function stores variables that are necessary for the PAPRECA run.
48  You can consider this class as a container storing the simulation settings and global variables.
49  Most variables in this class are initialized by the PAPRECA input file.*/
50 
52 
55  public:
56 
57  //Constructors/Destructors
58  PaprecaConfig( );
59  ~PaprecaConfig( );
60 
61  //Essential parameters
62  void setKMCsteps( const unsigned long int &KMC_steps_in );
63  const unsigned long int &getKMCsteps( ) const;
64  void setKMCperMD( const unsigned long int &KMC_per_MD_in );
65  const unsigned long int &getKMCperMD( ) const;
66  void setTimeEnd( const double &time_end_in );
67  const double &getTimeEnd( );
68 
69  //Random numbers
70  void initRanNumGenerator( LAMMPS_NS::LAMMPS *lmp , const int &seed );
71  const double getUniformRanNum( ) const;
72  const bool ranNumGeneratorIsInitialized( ) const;
73 
74  //Atom groups
75  void setFluidAtomTypes( const std::vector< int > &fluid_atomtypes_in );
76  const std::vector< int > &getFluidAtomTypes( ) const;
77  void setFrozenAtomTypes( const std::vector< int > &frozen_atomtypes_in );
78  const std::vector< int > &getFrozenAtomTypes( ) const;
79 
80  //Predefined events
81  PredefinedReaction *getReactionFromBondType( const int &bond_type );
83  int getMaxBondsFromSpecies( const int &atom_type );
84  int getMaxBondTypesOfSpecies( const int &atom_type , const int &bond_type );
85  PredefinedDiffusionHop *getDiffusionHopFromAtomType( const int &atom_type );
88  void initPredefinedReaction( const int &atom1_type , const int &atom2_type , const int &bond_type , const double &rate , const std::vector< int > &catalyzing_types );
89  void initPredefinedBondForm( const int &atom1_type , const int &atom2_type , const int &bond_type , const double &bond_dist , const int &delete_atoms , const int &lone_candidates , const bool &same_mol , const double &rate , const std::vector< int > &catalyzing_types );
90  void initPredefinedDiffusionHop( const int &parent_type , const double &insertion_vel , const double &diff_dist , const bool &is_displacive , const int &diffused_type , const double &rate , const std::string &custom_style , const std::vector< int > &custom_atomtypes );
91  void initPredefinedDeposition( LAMMPS_NS::LAMMPS *lmp , const int &parent_type , const double &depo_offset , const double &insertion_vel , const std::string &adsorbate_name , const double &rate , const bool &variable_sticking , const double &sticking_coeff );
92  void initPredefinedMonoatomicDesorption( const int &parent_type , const double &rate );
93  void setSpeciesMaxBonds( const int &species , const int &bonds_max );
94  void setSpeciesMaxBondTypes( const int &species , const int &bond_type , const int &bonds_max );
95  void calcStickingCoeffs( );
96  const bool predefinedCatalogHasBondBreakEvents( ) const;
97  const bool predefinedCatalogHasBondFormEvents( ) const;
98  const bool predefinedCatalogHasDiffusionHopEvents( ) const;
99  const bool predefinedCatalogHasDepositionEvents( ) const;
100  const bool predefinedCatalogHasMonoDesEvents( ) const;
101  const bool predefinedCatalogIsEmpty( ) const;
102 
103  //Random Deposition and Diffusion Vectors
104  void setRandomDepoVecs( const bool &random_depovecs_in );
105  const bool &depoVecsAreRandom( ) const;
106  void setRandomDiffVecs( const bool &random_diffvecs_in );
107  const bool &diffVecsAreRandom( ) const;
108  void setRandomDiffVecsStyle( const std::string &diffvecs_style_in );
109  const std::string &getRandomDiffVecsStyle( ) const;
110 
111 
112  //Deposition height settings
113  void setDepoHeights( const double &height_deposcan_in , const double &height_deporeject_in );
114  const double &getHeightDepoScan( ) const;
115  const double &getHeightDepoReject( ) const;
116 
117  //Desorption settings
118  void setDesorptionHeight( const double &desorb_cut_in );
119  const double &getDesorptionHeight( ) const;
120  void setDesorbDelMax( const int &desorb_delmax_in );
121  const int &getDesorbDelMax( ) const;
122  void setDesorptionStyle( const std::string &desorb_style_in );
123  const std::string &getDesorptionStyle( ) const;
124 
125  //Film height calculation settings
126  void setHeightMethod( const std::string &height_method_in );
127  const std::string &getHeightMethod( ) const;
128  void setHeightPercentage( const double &height_percentage_in ); //Only for method mass_bins!
129  const double &getHeightPercentage( ) const; //Only for film height percentage method!
130  void setBinWidth( const double &bin_width_in );
131  const double &getBinWidth( ) const;
132 
133  //type2sigma
134  void initSigmasFromLammps( LAMMPS_NS::LAMMPS *lmp );
135  void setSpeciesPair2Sigma( const int &species1 , const int &species2 , const double &sigma );
136  void setSigmaStyle( const std::string &sigmastyle_in );
137  const std::string &getSigmaStyle( )const;
138  void setSigmaMix( const std::string &mixstyle_in );
139  const std::string &getSigmaMixStyle( )const;
140  void mixSigmas( LAMMPS_NS::LAMMPS *lmp );
141  const double getSigmaFromAtomTypes( const int &atom1_type , const int &atom2_type );
142  const bool type2SigmaMapIsEmpty( ) const;
143 
144  //Equilibration LAMMPS
145  void setMinimize1( const std::string &minimize1_in );
146  const std::string &getMinimize1( ) const;
147  void setMinimize2( const std::string &minimize2_in );
148  const std::string &getMinimize2( ) const;
149  void setTrajDuration( const int &traj_duration_in );
150  const int &getTrajDuration( ) const;
151  void setCtimeConvert( const double &c_convert_in );
152  const double &getCtimeConvert( );
153 
154  //Neighbor lists
155  void setNeibLists( const std::string &neiblist_half_in , const std::string &neiblist_full_in );
156  const std::string &getHalfNeibListName( ) const;
157  const std::string &getFullNeibListName( ) const;
158 
159  //Output files
160  Log &getLogFile( );
163  void calcSurfaceCoverage( );
166  void setupExportFiles( const int &proc_id );
167  void setHybridStartTimeStamp4ExecTimeFile( const int &KMC_loopid );
168  void calcHybridAndKMCTimes4ExecTimeFile( const int &nprocs , const int &KMC_loopid );
169  void setMDTimeStamp4ExecTimeFile( const int &KMC_loopid );
170  void calcMDTime4ExecTimeFile( const int &nprocs , const int &KMC_loopid );
171  void appendExportFiles( LAMMPS_NS::LAMMPS *lmp , const int &proc_id , const double &time , const char *event_type , const double &film_height , const int &KMC_loopid );
172  void dumpElementalDistributionFile( LAMMPS_NS::LAMMPS *lmp , const int &proc_id , const int &KMC_loopid , double **mass_profiles_total , double *atom_mass , const int &bins_num , const int &types_num );
173  void closeExportFiles( const int &proc_id );
174  void setRestartDumpFreq( const int &restart_dumpfreq_in );
175  const int &getRestartDumpFreq( )const;
176  void dumpLAMMPSRestart( LAMMPS_NS::LAMMPS *lmp , const int KMC_loopid );
177 
178  protected:
179 
180 
181  //Random number generator.
182  LAMMPS_NS::RanMars *rnum_gen = NULL;
183 
184  //Essential parameters
185  unsigned long int KMC_steps = 0;
186  unsigned long int KMC_per_MD = 0;
187  double time_end = std::numeric_limits< double >::max( );
188 
189  //Atom groups
190  std::vector< int > fluid_atomtypes;
191  std::vector< int > frozen_atomtypes;
192 
193  //Predefined events
195  bool random_depovecs = false;
196  bool random_diffvecs = false;
197  std::string diffvecs_style = "3D";
198  double height_deposcan = -1;
199  double height_deporeject = -1;
200 
201  //Desorption settings. For thin-film growth you might wanna delete atoms flying above a certain height, after the equilibration step.
202  double desorb_cut = -1;
203  int desorb_delmax = std::numeric_limits< int >::max( );
204  std::string desorb_style = "";
205 
206  //Film Height Calculation Settings
207  std::string height_method = "";
208  double height_percentage = 0.0;
209  double bin_width = 1.0;
210 
211  //Map that returns the sigma distance (i.e., equilibrium distance of species as in the LJ potential). Currently initialized from the LAMMPS input.
213  std::string sigma_style = "";
214  std::string sigma_mix =""; //< Two types of sigma_mix are currently supported: geom/arithm. See: https://docs.lammps.org/pair_modify.html. This variable is initialized as NONE so we know there is no mixing even when the mix keyword is not used.
215 
216  //Equilibrations - LAMMPS
217  //The user can pass valid LAMMPS commands to minimize the configuration before the LAMMPS trajectory (minimize1) and after (minimize2)
218  std::string minimize1 = "";
219  std::string minimize2 = "";
220  int traj_duration = 0;
221  double c_time_convert = -1;
222 
223  //Neighbor lists
224  std::string neiblist_half = "";
225  std::string neiblist_full = "";
226 
227  //Output files
231  double surface_coverage = 0.0;
234  int restart_dumpfreq = std::numeric_limits< int >::max( );
235 
236  };
237 
238 
239 }//end of namespace PAPRECA
240 
241 
242 #endif
Child class of File, manages distribution.log files.
Definition: export_files.h:129
Child class of File, manages execTimes.log files.
Definition: export_files.h:149
Child class of File, manages heightVtime.log files.
Definition: export_files.h:91
Child class of File, manages papreca.log files.
Definition: export_files.h:70
Class storing settings and global variables for the PAPRECA run.
Definition: papreca_config.h:51
SurfaceCoverage surfcoverage_file
stores a PAPRECA::SurfaceCoverage file.
Definition: papreca_config.h:230
void initPredefinedReaction(const int &atom1_type, const int &atom2_type, const int &bond_type, const double &rate, const std::vector< int > &catalyzing_types)
Definition: papreca_config.cpp:131
unsigned long int KMC_per_MD
Perform that many KMC(PAPRECA) steps for every MD(LAMMPS) step.
Definition: papreca_config.h:186
void calcStickingCoeffs()
Definition: papreca_config.cpp:210
void initPredefinedDiffusionHop(const int &parent_type, const double &insertion_vel, const double &diff_dist, const bool &is_displacive, const int &diffused_type, const double &rate, const std::string &custom_style, const std::vector< int > &custom_atomtypes)
Definition: papreca_config.cpp:171
const double & getTimeEnd()
Definition: papreca_config.cpp:35
void calcMDTime4ExecTimeFile(const int &nprocs, const int &KMC_loopid)
Definition: papreca_config.cpp:516
const double & getHeightPercentage() const
Definition: papreca_config.cpp:326
void setSigmaStyle(const std::string &sigmastyle_in)
Definition: papreca_config.cpp:345
std::vector< int > fluid_atomtypes
stores fluid atom types (as defined in the PAPRECA input file).
Definition: papreca_config.h:190
void setDesorptionStyle(const std::string &desorb_style_in)
Definition: papreca_config.cpp:318
PaprecaConfig()
Definition: papreca_config.cpp:26
void setFluidAtomTypes(const std::vector< int > &fluid_atomtypes_in)
Definition: papreca_config.cpp:43
const int & getTrajDuration() const
Definition: papreca_config.cpp:427
double time_end
Optional parameter. The user can define an ending simulation time. If not set it stays at limits of m...
Definition: papreca_config.h:187
const bool & diffVecsAreRandom() const
Definition: papreca_config.cpp:298
void setRandomDiffVecsStyle(const std::string &diffvecs_style_in)
Definition: papreca_config.cpp:299
int getMaxBondTypesOfSpecies(const int &atom_type, const int &bond_type)
Definition: papreca_config.cpp:82
const double & getBinWidth() const
Definition: papreca_config.cpp:328
PredefinedReaction * getReactionFromBondType(const int &bond_type)
Definition: papreca_config.cpp:50
double height_deposcan
Scan for deposition events only +- above/below the current film height. Default at -1 which means sca...
Definition: papreca_config.h:198
ElementalDistribution & getElementalDistributionsFile()
Definition: papreca_config.cpp:474
const std::string & getDesorptionStyle() const
Definition: papreca_config.cpp:319
void initSigmasFromLammps(LAMMPS_NS::LAMMPS *lmp)
Definition: papreca_config.cpp:332
double surface_coverage
stores a surface coverage for easier printing (if necessary).
Definition: papreca_config.h:231
void initPredefinedDeposition(LAMMPS_NS::LAMMPS *lmp, const int &parent_type, const double &depo_offset, const double &insertion_vel, const std::string &adsorbate_name, const double &rate, const bool &variable_sticking, const double &sticking_coeff)
Definition: papreca_config.cpp:180
void setRandomDiffVecs(const bool &random_diffvecs_in)
Definition: papreca_config.cpp:297
bool random_depovecs
Controls deposition sites. If true, the deposition sites are not directly above the parent atom,...
Definition: papreca_config.h:195
void setHeightPercentage(const double &height_percentage_in)
Definition: papreca_config.cpp:325
void setKMCperMD(const unsigned long int &KMC_per_MD_in)
Definition: papreca_config.cpp:32
std::string diffvecs_style
Type 2D means that the random diffusion vector is always ABOVE the parent type. Type 3D means that th...
Definition: papreca_config.h:197
const std::string & getRandomDiffVecsStyle() const
Definition: papreca_config.cpp:300
double desorb_cut
Atoms above film_height + desorb_cut are deleted. The default value is -1 which means that desorption...
Definition: papreca_config.h:202
const double & getDesorptionHeight() const
Definition: papreca_config.cpp:315
const bool type2SigmaMapIsEmpty() const
Definition: papreca_config.cpp:418
void setDesorbDelMax(const int &desorb_delmax_in)
Definition: papreca_config.cpp:316
Log log_file
stores a PAPRECA::Log file The log file is always active (no need to be set to active from the input ...
Definition: papreca_config.h:228
const double & getHeightDepoScan() const
Definition: papreca_config.cpp:309
void setTrajDuration(const int &traj_duration_in)
Definition: papreca_config.cpp:426
const bool predefinedCatalogHasDiffusionHopEvents() const
Definition: papreca_config.cpp:284
std::string minimize1
stores a valid LAMMPS minimization command to be executed before the LAMMPS trajectory....
Definition: papreca_config.h:218
const std::string & getMinimize1() const
Definition: papreca_config.cpp:423
void setMDTimeStamp4ExecTimeFile(const int &KMC_loopid)
Definition: papreca_config.cpp:510
const std::string & getHalfNeibListName() const
Definition: papreca_config.cpp:438
void setBinWidth(const double &bin_width_in)
Definition: papreca_config.cpp:327
void setupExportFiles(const int &proc_id)
Definition: papreca_config.cpp:477
std::string height_method
Algorithm to calculate height. Currently, only the mass_bins method is supported.
Definition: papreca_config.h:207
const bool predefinedCatalogHasDepositionEvents() const
Definition: papreca_config.cpp:285
unsigned long int KMC_steps
perform that many PAPRECA steps.
Definition: papreca_config.h:185
int restart_dumpfreq
dump a restart every restart_dumpfreq PAPRECA steps. Initialized at int limits, so if it is not set y...
Definition: papreca_config.h:234
void dumpElementalDistributionFile(LAMMPS_NS::LAMMPS *lmp, const int &proc_id, const int &KMC_loopid, double **mass_profiles_total, double *atom_mass, const int &bins_num, const int &types_num)
Definition: papreca_config.cpp:523
int getMaxBondsFromSpecies(const int &atom_type)
Definition: papreca_config.cpp:72
void setCtimeConvert(const double &c_convert_in)
Definition: papreca_config.cpp:428
void setDepoHeights(const double &height_deposcan_in, const double &height_deporeject_in)
Definition: papreca_config.cpp:301
const bool predefinedCatalogHasMonoDesEvents() const
Definition: papreca_config.cpp:286
bool random_diffvecs
Controls diffusion sites. If true, the diffusion sites are not directly above the parent atom,...
Definition: papreca_config.h:196
const bool & depoVecsAreRandom() const
Definition: papreca_config.cpp:296
const std::string & getHeightMethod() const
Definition: papreca_config.cpp:324
PredefinedDeposition * getDepositionFromParentAtomType(const int &atom_type)
Definition: papreca_config.cpp:109
const unsigned long int & getKMCsteps() const
Definition: papreca_config.cpp:31
std::string neiblist_half
Name of LAMMPS half neighbors list.
Definition: papreca_config.h:224
void initPredefinedBondForm(const int &atom1_type, const int &atom2_type, const int &bond_type, const double &bond_dist, const int &delete_atoms, const int &lone_candidates, const bool &same_mol, const double &rate, const std::vector< int > &catalyzing_types)
Definition: papreca_config.cpp:148
const std::string & getFullNeibListName() const
Definition: papreca_config.cpp:439
std::string sigma_style
method for initialization of sigma values (can be manual/LAMMPS).
Definition: papreca_config.h:213
void closeExportFiles(const int &proc_id)
Definition: papreca_config.cpp:552
const std::string & getSigmaMixStyle() const
Definition: papreca_config.cpp:348
std::vector< int > frozen_atomtypes
stores frozen atom types (as defined in the PAPRECA input file).
Definition: papreca_config.h:191
void setHeightMethod(const std::string &height_method_in)
Definition: papreca_config.cpp:323
void setKMCsteps(const unsigned long int &KMC_steps_in)
Definition: papreca_config.cpp:30
double c_time_convert
This variable is initialized from lmp->update->unit_style to allow conversion of time units to second...
Definition: papreca_config.h:221
ExecTime & getExecTimeFile()
Definition: papreca_config.cpp:475
PredefinedMonoatomicDesorption * getMonoatomicDesorptionFromAtomType(const int &atom_type)
Definition: papreca_config.cpp:120
const int & getRestartDumpFreq() const
Definition: papreca_config.cpp:567
ExecTime execTime_file
stores a PAPRECA::ExecTime file.
Definition: papreca_config.h:233
std::string minimize2
stores a valid LAMMPS minimization command to be executed after the LAMMPS trajectory....
Definition: papreca_config.h:219
~PaprecaConfig()
Definition: papreca_config.cpp:27
std::string desorb_style
User defined desorption algorithm. Currently, can be gather_local or gather_all (defined in the PAPRE...
Definition: papreca_config.h:204
void setSpeciesMaxBondTypes(const int &species, const int &bond_type, const int &bonds_max)
Definition: papreca_config.cpp:208
std::string neiblist_full
Name of LAMMPS full neighbors list.
Definition: papreca_config.h:225
const std::vector< int > & getFluidAtomTypes() const
Definition: papreca_config.cpp:44
void calcHybridAndKMCTimes4ExecTimeFile(const int &nprocs, const int &KMC_loopid)
Definition: papreca_config.cpp:499
INTPAIR2DOUBLE_MAP type2sigma
maps types of atom types to their corresponding sigma.
Definition: papreca_config.h:212
const double getUniformRanNum() const
Definition: papreca_config.cpp:39
const bool predefinedCatalogHasBondBreakEvents() const
Definition: papreca_config.cpp:282
const bool predefinedCatalogIsEmpty() const
Definition: papreca_config.cpp:287
const bool predefinedCatalogHasBondFormEvents() const
Definition: papreca_config.cpp:283
void setHybridStartTimeStamp4ExecTimeFile(const int &KMC_loopid)
Definition: papreca_config.cpp:492
void dumpLAMMPSRestart(LAMMPS_NS::LAMMPS *lmp, const int KMC_loopid)
Definition: papreca_config.cpp:568
const std::vector< int > & getFrozenAtomTypes() const
Definition: papreca_config.cpp:46
void appendExportFiles(LAMMPS_NS::LAMMPS *lmp, const int &proc_id, const double &time, const char *event_type, const double &film_height, const int &KMC_loopid)
Definition: papreca_config.cpp:537
double height_percentage
Only used for height calculation method: mass_bins. Defines the mass percentage cutoff....
Definition: papreca_config.h:208
void setSpeciesPair2Sigma(const int &species1, const int &species2, const double &sigma)
Definition: papreca_config.cpp:334
std::string sigma_mix
Definition: papreca_config.h:214
const bool ranNumGeneratorIsInitialized() const
Definition: papreca_config.cpp:40
HeightVtime & getHeightVtimeFile()
Definition: papreca_config.cpp:444
PredefinedBondForm * getBondFormFromAtomTypesPair(const INT_PAIR &types_pair)
Definition: papreca_config.cpp:61
HeightVtime heightVtime_file
stores a PAPRECA::HeightVtime file.
Definition: papreca_config.h:229
Log & getLogFile()
Definition: papreca_config.cpp:443
LAMMPS_NS::RanMars * rnum_gen
Points to RanMars object as implemented in LAMMPS (see random_mars.h). The LAMMPS RanMars object is i...
Definition: papreca_config.h:182
void initPredefinedMonoatomicDesorption(const int &parent_type, const double &rate)
Definition: papreca_config.cpp:199
void setSigmaMix(const std::string &mixstyle_in)
Definition: papreca_config.cpp:347
int desorb_delmax
Maximum number of atoms that can be deleted at once. Initialized at max limits of int so if the user ...
Definition: papreca_config.h:203
PredefinedDiffusionHop * getDiffusionHopFromAtomType(const int &atom_type)
Definition: papreca_config.cpp:98
const unsigned long int & getKMCperMD() const
Definition: papreca_config.cpp:33
void mixSigmas(LAMMPS_NS::LAMMPS *lmp)
Definition: papreca_config.cpp:350
void setMinimize2(const std::string &minimize2_in)
Definition: papreca_config.cpp:424
void setTimeEnd(const double &time_end_in)
Definition: papreca_config.cpp:34
void setRestartDumpFreq(const int &restart_dumpfreq_in)
Definition: papreca_config.cpp:566
void initRanNumGenerator(LAMMPS_NS::LAMMPS *lmp, const int &seed)
Definition: papreca_config.cpp:38
int traj_duration
This control the duration of the LAMMPS minimization. The specific LAMMPS fixes have to be defined in...
Definition: papreca_config.h:220
SurfaceCoverage & getSurfaceCoverageFile()
Definition: papreca_config.cpp:445
const double & getHeightDepoReject() const
Definition: papreca_config.cpp:310
void setRandomDepoVecs(const bool &random_depovecs_in)
Definition: papreca_config.cpp:295
double height_deporeject
Reject deposition event above height_current + height_deporeject. Default at -1 which means do not re...
Definition: papreca_config.h:199
ElementalDistribution elementalDistribution_files
stores the PAPRECA::ElementalDistribution files generated in the simulation.
Definition: papreca_config.h:232
void setSpeciesMaxBonds(const int &species, const int &bonds_max)
Definition: papreca_config.cpp:207
const std::string & getSigmaStyle() const
Definition: papreca_config.cpp:346
const double getSigmaFromAtomTypes(const int &atom1_type, const int &atom2_type)
Definition: papreca_config.cpp:399
const std::string & getMinimize2() const
Definition: papreca_config.cpp:425
double bin_width
Bin width for height calculation or for ElementaDistribution files. Initialized at 1....
Definition: papreca_config.h:209
void setMinimize1(const std::string &minimize1_in)
Definition: papreca_config.cpp:422
void setDesorptionHeight(const double &desorb_cut_in)
Definition: papreca_config.cpp:314
const double & getCtimeConvert()
Definition: papreca_config.cpp:429
const int & getDesorbDelMax() const
Definition: papreca_config.cpp:317
void setNeibLists(const std::string &neiblist_half_in, const std::string &neiblist_full_in)
Definition: papreca_config.cpp:433
void setFrozenAtomTypes(const std::vector< int > &frozen_atomtypes_in)
Definition: papreca_config.cpp:45
void calcSurfaceCoverage()
Definition: papreca_config.cpp:447
PredefinedEventsCatalog predefined_catalog
stores a PAPRECA::PredefinedEventsCatalog.
Definition: papreca_config.h:194
child class of PAPRECA::PredefinedReaction associated with bond formation events. This is a Predefine...
Definition: event_list.h:84
class associated with deposition events. This is a Predefined template for PAPRECA::Deposition events...
Definition: event_list.h:142
class associated with diffusion events. This is a Predefined template for PAPRECA::DiffusionHop event...
Definition: event_list.h:109
General class that stores ALL the predefined events in the system. You can consider this as the Prede...
Definition: event_list.h:222
associated with monoatomic desorption events. This is a Predefined template for PAPRECA::MonoatomicDe...
Definition: event_list.h:194
class associated with reaction events. This is a Predefined template for PAPRECA::BondBreak and PAPRE...
Definition: event_list.h:55
Child class of File, manages surface_coverage.log files.
Definition: export_files.h:110
Declarations of PredefinedEvent classes.
Declarations of export File classes.
Declarations for LAMMPS wrapper functions.
Definition: bond.cpp:26
std::pair< int, int > INT_PAIR
Definition: utilities.h:175
std::unordered_map< INT_PAIR, double, PairHash > INTPAIR2DOUBLE_MAP
Definition: utilities.h:178
Utility functions (e.g., for arrays, strings etc.) and typedefs used in papreca.cpp main and in the o...