1 |
chuckv |
678 |
#ifndef __LATTICEBUILDER_H__ |
2 |
|
|
#define __LATTICEBUILDER_H__ |
3 |
|
|
|
4 |
|
|
#define FCC_LATTICE_TYPE 1 |
5 |
|
|
#define BCC_LATTICE_TYPE 2 |
6 |
|
|
#define HCP_LATTICE_TYPE 3 |
7 |
|
|
#define HCPWATER_LATTICE_TYPE 4 |
8 |
|
|
#define DIAMOND_LATTICE_TYPE 5 |
9 |
gezelter |
817 |
#define ORTHORHOMBIC_LATTICE_TYPE 6 |
10 |
chuckv |
678 |
#define UNKNOWN_LATTICE_TYPE 0 |
11 |
|
|
|
12 |
|
|
class Lattice{ |
13 |
|
|
|
14 |
|
|
public: |
15 |
chuckv |
700 |
Lattice(int latticeType,double latticeParameter); |
16 |
gezelter |
817 |
Lattice(int latticeType,double latticeParameters[3]); |
17 |
chuckv |
678 |
~Lattice(void); |
18 |
|
|
|
19 |
|
|
int getLatticePoints(double** thePosX, double** thePosY, |
20 |
|
|
double** thePosZ, |
21 |
|
|
int ix, int iy, int iz); |
22 |
|
|
|
23 |
|
|
int getNpoints(void){return nCellSites;} |
24 |
|
|
|
25 |
gezelter |
817 |
void setStartX(double sx) {startX = sx;} |
26 |
|
|
void setStartY(double sy) {startY = sy;} |
27 |
|
|
void setStartZ(double sz) {startZ = sz;} |
28 |
chuckv |
678 |
|
29 |
|
|
|
30 |
|
|
private: |
31 |
|
|
|
32 |
|
|
|
33 |
|
|
int createFccLattice(double latticeSpacing); |
34 |
|
|
int createBccLattice(double latticeSpacing); |
35 |
|
|
int createHcpLattice(double latticeSpacing); |
36 |
|
|
int createHcpWaterLattice(double latticeSpacing); |
37 |
gezelter |
817 |
int createOrthorhombicLattice(double latticeSpacings[3]); |
38 |
chuckv |
678 |
|
39 |
|
|
int myLatticeType; |
40 |
|
|
double cellLength; |
41 |
gezelter |
817 |
double cellLengthX; |
42 |
|
|
double cellLengthY; |
43 |
|
|
double cellLengthZ; |
44 |
|
|
double startX; |
45 |
|
|
double startY; |
46 |
|
|
double startZ; |
47 |
chuckv |
678 |
int nCellSites; |
48 |
|
|
double* latticePosX; |
49 |
|
|
double* latticePosY; |
50 |
|
|
double* latticePosZ; |
51 |
|
|
|
52 |
|
|
struct unitCell{ |
53 |
|
|
double* sx; |
54 |
|
|
double* sy; |
55 |
|
|
double* sz; |
56 |
|
|
double* s_ex; |
57 |
|
|
double* s_ey; |
58 |
|
|
double* s_ez; |
59 |
|
|
}thisUnitCell; |
60 |
|
|
|
61 |
|
|
|
62 |
|
|
}; |
63 |
|
|
|
64 |
|
|
|
65 |
|
|
#endif |