ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/OOPSEMinimizer.cpp
(Generate patch)

Comparing trunk/OOPSE/libmdtools/OOPSEMinimizer.cpp (file contents):
Revision 1074 by tim, Mon Mar 1 20:01:50 2004 UTC vs.
Revision 1097 by gezelter, Mon Apr 12 20:32:20 2004 UTC

# Line 5 | Line 5 | OOPSEMinimizer::OOPSEMinimizer( SimInfo *theInfo, Forc
5                                                MinimizerParameterSet * param)
6                       :RealIntegrator(theInfo, the_ff), bVerbose(false), bShake(true){
7  
8  atoms = info->atoms;
9
8    tStats = new Thermo(info);
9    dumpOut = new DumpWriter(info);
10    statOut = new StatWriter(info);
# Line 54 | Line 52 | void OOPSEMinimizer::calcEnergyGradient(vector<double>
52  
53    index = 0;
54  
55 <  for(int i = 0; i < nAtoms; i++){
55 >  for(int i = 0; i < integrableObjects.size(); i++){
56  
57 <    if(atoms[i]->isDirectional()){
60 <      dAtom = (DirectionalAtom*) atoms[i];
61 <      dAtom->getGrad(dAtomGrad);
57 >    if (integrableObjects[i]->isDirectional()) {
58  
59 +      integrableObjects[i]->getGrad(dAtomGrad);
60 +
61        //gradient is equal to -f
62        grad[index++] = -dAtomGrad[0];
63        grad[index++] = -dAtomGrad[1];
# Line 70 | Line 68 | void OOPSEMinimizer::calcEnergyGradient(vector<double>
68  
69      }
70      else{
71 <      atoms[i]->getFrc(force);
71 >      integrableObjects[i]->getFrc(force);
72  
73        grad[index++] = -force[0];
74        grad[index++] = -force[1];
# Line 99 | Line 97 | void OOPSEMinimizer::setCoor(vector<double>& x){
97  
98    index = 0;
99    
100 <  for(int i = 0; i < nAtoms; i++){
100 >  for(int i = 0; i < integrableObjects.size(); i++){
101      
102      position[0] = x[index++];
103      position[1] = x[index++];
104      position[2] = x[index++];
105  
106 <    atoms[i]->setPos(position);
106 >    integrableObjects[i]->setPos(position);
107  
108 <    if (atoms[i]->isDirectional()){
111 <      dAtom = (DirectionalAtom*) atoms[i];
108 >    if (integrableObjects[i]->isDirectional()){
109  
110        eulerAngle[0] = x[index++];
111        eulerAngle[1] = x[index++];
112        eulerAngle[2] = x[index++];
113  
114 <       dAtom->setEuler(eulerAngle[0], eulerAngle[1], eulerAngle[2]);
114 >      integrableObjects[i]->setEuler(eulerAngle[0],
115 >                                     eulerAngle[1],
116 >                                     eulerAngle[2]);
117  
118      }
119      
# Line 137 | Line 136 | vector<double> OOPSEMinimizer::getCoor(){
136  
137    index = 0;
138    
139 <  for(int i = 0; i < nAtoms; i++){
140 <    atoms[i]->getPos(position);
139 >  for(int i = 0; i < integrableObjects.size(); i++){
140 >    integrableObjects[i]->getPos(position);
141  
142      x[index++] = position[0];
143      x[index++] = position[1];
144      x[index++] = position[2];
145  
146 <    if (atoms[i]->isDirectional()){
148 <      dAtom = (DirectionalAtom*) atoms[i];
149 <      dAtom->getEulerAngles(eulerAngle);
146 >    if (integrableObjects[i]->isDirectional()){
147  
148 +      integrableObjects[i]->getEulerAngles(eulerAngle);
149 +      
150        x[index++] = eulerAngle[0];
151        x[index++] = eulerAngle[1];
152        x[index++] = eulerAngle[2];
# Line 425 | Line 424 | void OOPSEMinimizer::calcDim(){
424  
425    ndim = 0;
426  
427 <  for(int i = 0; i < nAtoms; i++){
427 >  for(int i = 0; i < integrableObjects.size(); i++){
428      ndim += 3;
429 <    if (atoms[i]->isDirectional())
429 >    if (integrableObjects[i]->isDirectional())
430        ndim += 3;      
431    }
432   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines