1 |
gezelter |
2 |
#ifndef _LATTICE_H_ |
2 |
|
|
#define _LATTICE_H_ |
3 |
|
|
#include "BaseLattice.hpp" |
4 |
|
|
#include <string> |
5 |
|
|
#include <vector> |
6 |
|
|
using namespace std; |
7 |
|
|
|
8 |
|
|
const string FCCLatticeType = "FCC"; |
9 |
|
|
const string BCCLatticeType = "BCC"; |
10 |
|
|
const string HCPCLatticeType = "HCP"; |
11 |
|
|
const string OrthorhombicLatticeType = "ORTHORHOMBIC"; |
12 |
|
|
|
13 |
|
|
|
14 |
|
|
class CubicLattice : public BaseLattice{ |
15 |
|
|
protected: |
16 |
|
|
CubicLattice(); |
17 |
|
|
public: |
18 |
|
|
//get lattice constant of unit cell |
19 |
|
|
virtual vector<double> getLatticeConstant(); |
20 |
|
|
|
21 |
|
|
//set lattice constant of unit cell |
22 |
|
|
virtual void setLatticeConstant(const vector<double>& lc); |
23 |
|
|
protected: |
24 |
|
|
double latticeParam; |
25 |
|
|
}; |
26 |
|
|
|
27 |
|
|
|
28 |
|
|
class FCCLattice : public CubicLattice{ |
29 |
|
|
public: |
30 |
|
|
FCCLattice(); |
31 |
|
|
virtual const string getLatticeType() {return FCCLatticeType;} |
32 |
|
|
virtual void update(); |
33 |
|
|
|
34 |
|
|
}; |
35 |
|
|
|
36 |
|
|
/* |
37 |
|
|
class BCCLattice : public CubicLattice{ |
38 |
|
|
public: |
39 |
|
|
BCCLattice(); |
40 |
|
|
virtual const string getLatticeType() {return BCCLatticeType;} |
41 |
|
|
}; |
42 |
|
|
|
43 |
|
|
|
44 |
|
|
class HCPLattice : public BaseLattice{ |
45 |
|
|
public: |
46 |
|
|
HCPLattice(); |
47 |
|
|
virtual const string getLatticeType() {return HCPCLatticeType;} |
48 |
|
|
}; |
49 |
|
|
|
50 |
|
|
class OrthorhombicLattice : public BaseLattice{ |
51 |
|
|
public: |
52 |
|
|
OrthorhombicLattice(); |
53 |
|
|
virtual const string getLatticeType() {return OrthorhombicLatticeType;} |
54 |
|
|
}; |
55 |
|
|
*/ |
56 |
|
|
|
57 |
|
|
|
58 |
|
|
#endif |