ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/branches/new_design/OOPSE-2.0/src/applications/simpleBuilder/Lattice.cpp
Revision: 1903
Committed: Thu Jan 6 00:16:07 2005 UTC (19 years, 6 months ago) by tim
File size: 2330 byte(s)
Log Message:
simpleBuilder in progress

File Contents

# Content
1 #include "applications/simpleBuilder/Lattice.hpp"
2 #include "applications/simpleBuilder/LatticeFactory.hpp"
3 #include "applications/simpleBuilder/LatticeCreator.hpp"
4
5 namespace oopse {
6
7 static LatticeCreator<FCCLattice> *FCCLatticeCreator = new LatticeCreator<FCCLattice>(FCCLatticeType);
8
9 CubicLattice::CubicLattice(){
10 latticeParam = 1.0;
11
12 cellLen[0] = latticeParam;
13 cellLen[1] = latticeParam;
14 cellLen[2] = latticeParam;
15
16 }
17
18 std::vector<double> CubicLattice::getLatticeConstant(){
19 std::vector<double> lc;
20
21 lc.push_back(cellLen.x());
22 return lc;
23 }
24
25 void CubicLattice::setLatticeConstant(const std::vector<double>& lc){
26
27 if(lc.size() < 1){
28 std::cerr << "CubicLattice::setLatticeConstant Error: the size of lattice constant vector is 0" << std::endl;
29 exit(1);
30 }
31 else if (lc.size() > 1){
32 std::cerr << "CubicLattice::setLatticeConstant Warning: the size of lattice constant vector is " << lc.size() << std::endl;
33 }
34
35 latticeParam = lc[0];
36
37 cellLen[0] = latticeParam;
38 cellLen[1] = latticeParam;
39 cellLen[2] = latticeParam;
40
41 update();
42 }
43
44 FCCLattice::FCCLattice() : CubicLattice(){
45 nCellSites = 4;
46 cellSitesPos.resize(nCellSites);
47 cellSitesOrt.resize(nCellSites);
48 update();
49
50 }
51
52 void FCCLattice::update(){
53
54 double cellLenOver2;
55 double oneOverRoot3;
56
57 cellLenOver2 = 0.5 * latticeParam;
58 oneOverRoot3 = 1.0 / sqrt(3.0);
59
60 // Molecule 1
61 cellSitesPos[0][0] = 0.0;
62 cellSitesPos[0][1] = 0.0;
63 cellSitesPos[0][2] = 0.0;
64
65 cellSitesOrt[0][0] = oneOverRoot3;
66 cellSitesOrt[0][1] = oneOverRoot3;
67 cellSitesOrt[0][2] = oneOverRoot3;
68
69 // Molecule 2
70 cellSitesPos[1][0] = 0.0;
71 cellSitesPos[1][1] = cellLenOver2;
72 cellSitesPos[1][2] = cellLenOver2;
73
74 cellSitesOrt[1][0] = -oneOverRoot3;
75 cellSitesOrt[1][1] = oneOverRoot3;
76 cellSitesOrt[1][2] = -oneOverRoot3;
77
78 // Molecule 3
79 cellSitesPos[2][0] = cellLenOver2;
80 cellSitesPos[2][1] = cellLenOver2;
81 cellSitesPos[2][2] = 0.0;
82
83 cellSitesOrt[2][0] = oneOverRoot3;
84 cellSitesOrt[2][1] = -oneOverRoot3;
85 cellSitesOrt[2][2] = -oneOverRoot3;
86
87 // Molecule 4
88
89 cellSitesPos[3][0] = cellLenOver2;
90 cellSitesPos[3][1] = 0.0;
91 cellSitesPos[3][2] = cellLenOver2;
92
93 cellSitesOrt[3][0] = -oneOverRoot3;
94 cellSitesOrt[3][1] = oneOverRoot3;
95 cellSitesOrt[3][2] = oneOverRoot3;
96 }
97
98 }