ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/lattice/Lattice.cpp
(Generate patch)

Comparing trunk/OOPSE-4/src/lattice/Lattice.cpp (file contents):
Revision 2181 by tim, Tue Apr 12 21:58:09 2005 UTC vs.
Revision 2182 by tim, Tue Apr 12 22:07:45 2005 UTC

# Line 40 | Line 40
40   */
41  
42   #include "lattice/Lattice.hpp"
43 #include "lattice/LatticeFactory.hpp"
44 #include "lattice/LatticeCreator.hpp"
43  
44 < namespace oopse {
44 > namespace oopse{
45 > void Lattice::getLatticePointsPos(std::vector<Vector3d>& latticePos, int nx, int ny, int nz){
46  
47 < CubicLattice::CubicLattice(){
48 <  latticeParam = 1.0;
49 <  
51 <  cellLen[0] = latticeParam;
52 <  cellLen[1] = latticeParam;
53 <  cellLen[2] = latticeParam;
54 <  
55 < }
47 >  latticePos.resize(nCellSites);
48 >                                                          
49 >  for( int i=0;i < nCellSites;i++){
50  
51 < std::vector<double> CubicLattice::getLatticeConstant(){
52 <   std::vector<double> lc;
53 <  
60 <  lc.push_back(cellLen.x());
61 <  return lc;
62 < }
63 <
64 < void CubicLattice::setLatticeConstant(const  std::vector<double>& lc){
65 <  
66 <  if(lc.size() < 1){
67 <    std::cerr << "CubicLattice::setLatticeConstant Error: the size of lattice constant vector  is 0" << std::endl;
68 <    exit(1);
51 >    latticePos[i][0] = origin[0] + cellSitesPos[i][0] + cellLen[0] * (double(nx) - 0.5);
52 >    latticePos[i][1] = origin[1] + cellSitesPos[i][1] + cellLen[1] * (double(ny) - 0.5);
53 >    latticePos[i][2] = origin[2] + cellSitesPos[i][2] + cellLen[2] * (double(nz) - 0.5);    
54    }
70  else if (lc.size() > 1){
71    std::cerr << "CubicLattice::setLatticeConstant Warning: the size of lattice constant vector  is " << lc.size() << std::endl;
72  }
73  
74  latticeParam = lc[0];
75  
76  cellLen[0] = latticeParam;
77  cellLen[1] = latticeParam;
78  cellLen[2] = latticeParam;
79  
80  update();
81 }
55  
83 FCCLattice::FCCLattice() : CubicLattice(){
84  nCellSites = 4;
85  cellSitesPos.resize(nCellSites);
86  cellSitesOrt.resize(nCellSites);
87  update();
88
56   }
57  
91 void FCCLattice::update(){
92
93  double cellLenOver2;
94  double oneOverRoot3;
95
96  cellLenOver2  = 0.5 * latticeParam;
97  oneOverRoot3 = 1.0 / sqrt(3.0);
98
99  // Molecule 1
100  cellSitesPos[0][0] = 0.0;
101  cellSitesPos[0][1] = 0.0;
102  cellSitesPos[0][2] = 0.0;
103  
104   cellSitesOrt[0][0] = oneOverRoot3;
105   cellSitesOrt[0][1] = oneOverRoot3;
106   cellSitesOrt[0][2] = oneOverRoot3;
107
108  // Molecule 2  
109  cellSitesPos[1][0]   = 0.0;
110  cellSitesPos[1][1]   = cellLenOver2;
111  cellSitesPos[1][2]   = cellLenOver2;
112
113  cellSitesOrt[1][0] = -oneOverRoot3;
114  cellSitesOrt[1][1] = oneOverRoot3;
115  cellSitesOrt[1][2] = -oneOverRoot3;
116  
117  // Molecule 3
118  cellSitesPos[2][0]   = cellLenOver2;
119  cellSitesPos[2][1]   = cellLenOver2;
120  cellSitesPos[2][2]   = 0.0;
121
122  cellSitesOrt[2][0] = oneOverRoot3;
123  cellSitesOrt[2][1] = -oneOverRoot3;
124  cellSitesOrt[2][2] = -oneOverRoot3;
125
126  // Molecule 4
127
128  cellSitesPos[3][0]   = cellLenOver2;
129  cellSitesPos[3][1]   = 0.0;
130  cellSitesPos[3][2]   = cellLenOver2;
131
132  cellSitesOrt[3][0] = -oneOverRoot3;
133  cellSitesOrt[3][1] = oneOverRoot3;
134  cellSitesOrt[3][2] = oneOverRoot3;
58   }
136
137 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines