PAPRECA hybrid off-lattice kMC/MD simulator  2.0.0 (17 September 2024)
geometry_calc.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 GEOMETRY_CALC_H
24 #define GEOMETRY_H
25 
26 //System Headers
27 #include <mpi.h>
28 #include <vector>
29 
30 //LAMMPS headers
31 #include "lammps.h"
33 #include "domain.h"
35 
36 //kMC Headers
37 #include "papreca_error.h"
38 #include "papreca_config.h"
39 
40 namespace PAPRECA{
41 
42  //Film Height calculation
43  void calcLocalMassAndFillMassProfile( LAMMPS_NS::LAMMPS *lmp , double **mass_profiles , double &local_mass , const int &atom_type , double *atom_xyz , const double &atom_mass , const double &bin_width , const int &bins_num );
44  double **initMassProfilesArr( const int &types_num , const int &bins_num );
45  void deleteMassProfilesArr( double **mass_profiles , const int &bins_num );
46  void fillMassProfilesTotalArrFromMassProfilesLocal( const int &bins_num , const int &types_num , double **mass_profiles_total , double **mass_profiles_local );
47  void getFilmHeightFromMassBinsMethod( PaprecaConfig &papreca_config , LAMMPS_NS::LAMMPS *lmp , const int &proc_id , double &film_height , double **mass_profiles_total , const double &local_mass , double *atom_mass , const int &bins_num , const int &types_num , const double &bin_width );
48  void calcFilmHeight( LAMMPS_NS::LAMMPS *lmp , const int &proc_id , const int &KMC_loopid , PaprecaConfig &papreca_config , double &film_height );
49 
50  //Interference between atoms
51  const bool atomsCollide( LAMMPS_NS::LAMMPS *lmp , PaprecaConfig &papreca_config , double *atom1_xyz , const int &atom1_type , double *atom2_xyz , const int &atom2_type );
52 
53 }//end of namespace PAPRECA
54 
55 #endif
Definition: bond.cpp:26
void getFilmHeightFromMassBinsMethod(PaprecaConfig &papreca_config, LAMMPS_NS::LAMMPS *lmp, const int &proc_id, double &film_height, double **mass_profiles_total, const double &local_mass, double *atom_mass, const int &bins_num, const int &types_num, const double &bin_width)
Definition: geometry_calc.cpp:109
double ** initMassProfilesArr(const int &types_num, const int &bins_num)
Definition: geometry_calc.cpp:46
void fillMassProfilesTotalArrFromMassProfilesLocal(const int &bins_num, const int &types_num, double **mass_profiles_total, double **mass_profiles_local)
Definition: geometry_calc.cpp:84
void calcLocalMassAndFillMassProfile(LAMMPS_NS::LAMMPS *lmp, double **mass_profiles, double &local_mass, const int &atom_type, double *atom_xyz, const double &atom_mass, const double &bin_width, const int &bins_num)
Definition: geometry_calc.cpp:28
void calcFilmHeight(LAMMPS_NS::LAMMPS *lmp, const int &proc_id, const int &KMC_loopid, PaprecaConfig &papreca_config, double &film_height)
Definition: geometry_calc.cpp:152
void deleteMassProfilesArr(double **mass_profiles, const int &bins_num)
Definition: geometry_calc.cpp:67
const bool atomsCollide(LAMMPS_NS::LAMMPS *lmp, PaprecaConfig &papreca_config, double *atom1_xyz, const int &atom1_type, double *atom2_xyz, const int &atom2_type)
Definition: geometry_calc.cpp:195
Declarations for PAPRECA::PaprecaConfig class storing settings and global variables.
Functions that enable the communication of error/warning messages to the terminal and coordinate the ...