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 2179 by gezelter, Tue Apr 12 21:27:33 2005 UTC vs.
Revision 2759 by tim, Wed May 17 21:51:42 2006 UTC

# Line 1 | Line 1
1 < /*
1 > /*
2   * Copyright (c) 2005 The University of Notre Dame. All Rights Reserved.
3   *
4   * The University of Notre Dame grants you ("Licensee") a
# 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 < static LatticeCreator<FCCLattice> *FCCLatticeCreator = new LatticeCreator<FCCLattice>(FCCLatticeType);
47 >    latticePos.resize(nCellSites);
48 >                                                          
49 >    for( int i=0;i < nCellSites;i++){
50  
51 < CubicLattice::CubicLattice(){
52 <  latticeParam = 1.0;
53 <  
54 <  cellLen[0] = latticeParam;
54 <  cellLen[1] = latticeParam;
55 <  cellLen[2] = latticeParam;
56 <  
57 < }
51 >      latticePos[i][0] = origin[0] + cellSitesPos[i][0] + cellLen[0] * (RealType(nx) - 0.5);
52 >      latticePos[i][1] = origin[1] + cellSitesPos[i][1] + cellLen[1] * (RealType(ny) - 0.5);
53 >      latticePos[i][2] = origin[2] + cellSitesPos[i][2] + cellLen[2] * (RealType(nz) - 0.5);    
54 >    }
55  
59 std::vector<double> CubicLattice::getLatticeConstant(){
60   std::vector<double> lc;
61  
62  lc.push_back(cellLen.x());
63  return lc;
64 }
65
66 void CubicLattice::setLatticeConstant(const  std::vector<double>& lc){
67  
68  if(lc.size() < 1){
69    std::cerr << "CubicLattice::setLatticeConstant Error: the size of lattice constant vector  is 0" << std::endl;
70    exit(1);
56    }
72  else if (lc.size() > 1){
73    std::cerr << "CubicLattice::setLatticeConstant Warning: the size of lattice constant vector  is " << lc.size() << std::endl;
74  }
75  
76  latticeParam = lc[0];
77  
78  cellLen[0] = latticeParam;
79  cellLen[1] = latticeParam;
80  cellLen[2] = latticeParam;
81  
82  update();
83 }
57  
85 FCCLattice::FCCLattice() : CubicLattice(){
86  nCellSites = 4;
87  cellSitesPos.resize(nCellSites);
88  cellSitesOrt.resize(nCellSites);
89  update();
90
58   }
92
93 void FCCLattice::update(){
94
95  double cellLenOver2;
96  double oneOverRoot3;
97
98  cellLenOver2  = 0.5 * latticeParam;
99  oneOverRoot3 = 1.0 / sqrt(3.0);
100
101  // Molecule 1
102  cellSitesPos[0][0] = 0.0;
103  cellSitesPos[0][1] = 0.0;
104  cellSitesPos[0][2] = 0.0;
105  
106   cellSitesOrt[0][0] = oneOverRoot3;
107   cellSitesOrt[0][1] = oneOverRoot3;
108   cellSitesOrt[0][2] = oneOverRoot3;
109
110  // Molecule 2  
111  cellSitesPos[1][0]   = 0.0;
112  cellSitesPos[1][1]   = cellLenOver2;
113  cellSitesPos[1][2]   = cellLenOver2;
114
115  cellSitesOrt[1][0] = -oneOverRoot3;
116  cellSitesOrt[1][1] = oneOverRoot3;
117  cellSitesOrt[1][2] = -oneOverRoot3;
118  
119  // Molecule 3
120  cellSitesPos[2][0]   = cellLenOver2;
121  cellSitesPos[2][1]   = cellLenOver2;
122  cellSitesPos[2][2]   = 0.0;
123
124  cellSitesOrt[2][0] = oneOverRoot3;
125  cellSitesOrt[2][1] = -oneOverRoot3;
126  cellSitesOrt[2][2] = -oneOverRoot3;
127
128  // Molecule 4
129
130  cellSitesPos[3][0]   = cellLenOver2;
131  cellSitesPos[3][1]   = 0.0;
132  cellSitesPos[3][2]   = cellLenOver2;
133
134  cellSitesOrt[3][0] = -oneOverRoot3;
135  cellSitesOrt[3][1] = oneOverRoot3;
136  cellSitesOrt[3][2] = oneOverRoot3;
137 }
138
139 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines