ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/branches/new_design/OOPSE-2.0/src/integrators/NPTxyz.cpp
(Generate patch)

Comparing branches/new_design/OOPSE-2.0/src/integrators/NPTxyz.cpp (file contents):
Revision 1822 by tim, Thu Dec 2 02:08:29 2004 UTC vs.
Revision 1852 by tim, Sun Dec 5 17:09:27 2004 UTC

# Line 1 | Line 1
1   #include "brains/SimInfo.hpp"
2   #include "brains/Thermo.hpp"
3 + #include "integrators/IntegratorCreator.hpp"
4   #include "integrators/NPTxyz.hpp"
5   #include "primitives/Molecule.hpp"
6   #include "utils/OOPSEConstant.hpp"
# Line 16 | Line 17 | namespace oopse {
17   //    Hoover, W. G., 1986, Phys. Rev. A, 34, 2499.
18  
19   namespace oopse {
19 /*
20 NPTxyz::NPTxyz (SimInfo* info): NPT(info) {
21  GenericData* data;
22  DoubleVectorGenericData * etaValue;
23  int i,j;
20  
21 <  for(i = 0; i < 3; i++){
26 <    for (j = 0; j < 3; j++){
27 <
28 <      eta(i, j) = 0.0;
29 <      oldEta(i, j) = 0.0;
30 <    }
31 <  }
32 <
33 <
34 <  if( theInfo->useInitXSstate ){
35 <
36 <    // retrieve eta array from simInfo if it exists
37 <    data = info->getPropertyByName(ETAVALUE_ID);
38 <    if(data){
39 <      etaValue = dynamic_cast<DoubleVectorGenericData*>(data);
40 <      
41 <      if(etaValue){
42 <        
43 <        for(i = 0; i < 3; i++){
44 <          for (j = 0; j < 3; j++){
45 <            eta(i, j) = (*etaValue)[3*i+j];
46 <            oldEta(i, j) = eta(i, j);
47 <          }
48 <        }
49 <      }
50 <    }
51 <  }
52 < }
53 <
54 <
55 <
56 < void NPTxyz::evolveEtaA() {
57 <
58 <  int i, j;
59 <
60 <    for(i = 0; i < 3; i ++){
61 <        for(j = 0; j < 3; j++){
62 <            if( i == j) {
63 <                eta(i, j) += dt2 *  instaVol *(press(i, j) - targetPressure/OOPSEConstant::pressureConvert) / (NkBT*tb2);
64 <            } else {
65 <                eta(i, j) = 0.0;
66 <            }
67 <        }
68 <    }
69 <
70 <    for(i = 0; i < 3; i++) {
71 <        for (j = 0; j < 3; j++) {
72 <            oldEta(i, j) = eta(i, j);
73 <        }
74 <    }
21 > static IntegratorBuilder<NPTxyz>* NPTxyzCreator = new IntegratorBuilder<NPTxyz>("NPTxyz");
22      
76 }
77
78 void NPTxyz::evolveEtaB() {
79
80  int i,j;
81
82  for(i = 0; i < 3; i++)
83    for (j = 0; j < 3; j++)
84      prevEta(i, j) = eta(i, j);
85
86  for(i = 0; i < 3; i ++){
87    for(j = 0; j < 3; j++){
88      if( i == j) {
89        eta(i, j) = oldEta(i, j) + dt2 *  instaVol *
90          (press(i, j) - targetPressure/OOPSEConstant::pressureConvert) / (NkBT*tb2);
91      } else {
92        eta(i, j) = 0.0;
93      }
94    }
95  }
96 }
97
98 void NPTxyz::calcVelScale(void) {
99  int i,j;
100
101  for (i = 0; i < 3; i++ ) {
102    for (j = 0; j < 3; j++ ) {
103      vScale(i, j) = eta(i, j);
104
105      if (i == j) {
106        vScale(i, j) += chi;
107      }
108    }
109  }
110 }
111
112
113 void NPTxyz::getVelScaleA(Vector3d& sc, const Vector3d& vel) {
114    sc = vScale * vel;
115 }
116
117 void NPTxyz::getVelScaleB(Vector3d& sc, int index ) {
118  sc = vScale * oldVel[index];
119 }
120
121 void NPTxyz::getPosScale(const Vector3d& pos, const Vector3d& COM,
122                           int index, Vector3d& sc) {
123                          
124    Vector3d rj = (oldPos[index] + pos[j])/2.0 -COM;
125    sc = eta * rj;
126 }
127
128 bool NPTxyz::etaConverged() {
129  int i;
130  double diffEta, sumEta;
131
132  sumEta = 0;
133  for(i = 0; i < 3; i++)
134    sumEta += pow(prevEta(i, i) - eta(i, i), 2);
135
136  diffEta = sqrt( sumEta / 3.0 );
137
138  return ( diffEta <= etaTolerance );
139 }
140
141 */
142    
23   double NPTxyz::calcConservedQuantity(){
24  
25    double conservedQuantity;
# Line 231 | Line 111 | void NPTxyz::scaleSimBox(){
111    }
112   }
113  
114 + void NPTxyz::loadEta() {
115 +    eta= currentSnapshot_->getEta();
116   }
117 +
118 + }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines