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

Comparing branches/new_design/OOPSE-3.0/src/primitives/Torsion.cpp (file contents):
Revision 1746 by tim, Wed Nov 17 06:37:56 2004 UTC vs.
Revision 1850 by tim, Sat Dec 4 19:29:54 2004 UTC

# Line 4 | Line 4 | Torsion::Torsion(Atom *atom1, Atom *atom2, Atom *atom3
4  
5   Torsion::Torsion(Atom *atom1, Atom *atom2, Atom *atom3, Atom *atom4,
6                   TorsionType *tt) :
7 <    atom1_(atom1),
8 <    atom2_(atom2),
9 <    atom3_(atom3),
10 <    atom4_(atom4) { }
7 >    atom1_(atom1), atom2_(atom2), atom3_(atom3), atom4_(atom4), torsionType_(tt) { }
8  
9   void Torsion::calcForce() {
10      Vector3d pos1 = atom1_->getPos();
# Line 35 | Line 32 | void Torsion::calcForce() {
32      double cos_phi = dot(A, B) ;
33      double sin_phi = dot(C, B);
34  
38    double phi = -atan2(sin_phi, cos_phi);
39
35      double dVdPhi;
36 <    torsionType_->calcForce(phi, potential_, dVdPhi);
36 >    torsionType_->calcForce(cos_phi, sin_phi, potential_, dVdPhi);
37  
38      Vector3d f1;
39      Vector3d f2;
# Line 68 | Line 63 | void Torsion::calcForce() {
63          Vector3d dsindB = (sin_phi * B - C) /rB;
64          Vector3d dsindC = (sin_phi * C - B) /rC;
65  
66 <        f1.x = dVdsinPhi*((r23.y*r23.y + r23.z*r23.z)*dsindC.x - r23.x*r23.y*dsindC.y - r23.x*r23.z*dsindC.z);
66 >        f1.x() = dVdsinPhi*((r23.y()*r23.y() + r23.z()*r23.z())*dsindC.x() - r23.x()*r23.y()*dsindC.y() - r23.x()*r23.z()*dsindC.z());
67  
68 <        f1.y = dVdsinPhi*((r23.z*r23.z + r23.x*r23.x)*dsindC.y - r23.y*r23.z*dsindC.z - r23.y*r23.x*dsindC.x);
68 >        f1.y() = dVdsinPhi*((r23.z()*r23.z() + r23.x()*r23.x())*dsindC.y() - r23.y()*r23.z()*dsindC.z() - r23.y()*r23.x()*dsindC.x());
69  
70 <        f1.z = dVdsinPhi*((r23.x*r23.x + r23.y*r23.y)*dsindC.z - r23.z*r23.x*dsindC.x - r23.z*r23.y*dsindC.y);
70 >        f1.z() = dVdsinPhi*((r23.x()*r23.x() + r23.y()*r23.y())*dsindC.z() - r23.z()*r23.x()*dsindC.x() - r23.z()*r23.y()*dsindC.y());
71  
72 <        f2.x = dVdsinPhi*(-(r23.y*r12.y + r23.z*r12.z)*dsindC.x + (2.0*r23.x*r12.y - r12.x*r23.y)*dsindC.y
73 <        + (2.0*r23.x*r12.z - r12.x*r23.z)*dsindC.z + dsindB.z*r34.y - dsindB.y*r34.z);
72 >        f2.x() = dVdsinPhi*(-(r23.y()*r12.y() + r23.z()*r12.z())*dsindC.x() + (2.0*r23.x()*r12.y() - r12.x()*r23.y())*dsindC.y()
73 >        + (2.0*r23.x()*r12.z() - r12.x()*r23.z())*dsindC.z() + dsindB.z()*r34.y() - dsindB.y()*r34.z());
74  
75 <        f2.y = dVdsinPhi*(-(r23.z*r12.z + r23.x*r12.x)*dsindC.y + (2.0*r23.y*r12.z - r12.y*r23.z)*dsindC.z
76 <        + (2.0*r23.y*r12.x - r12.y*r23.x)*dsindC.x + dsindB.x*r34.z - dsindB.z*r34.x);
75 >        f2.y() = dVdsinPhi*(-(r23.z()*r12.z() + r23.x()*r12.x())*dsindC.y() + (2.0*r23.y()*r12.z() - r12.y()*r23.z())*dsindC.z()
76 >        + (2.0*r23.y()*r12.x() - r12.y()*r23.x())*dsindC.x() + dsindB.x()*r34.z() - dsindB.z()*r34.x());
77  
78 <        f2.z = dVdsinPhi*(-(r23.x*r12.x + r23.y*r12.y)*dsindC.z + (2.0*r23.z*r12.x - r12.z*r23.x)*dsindC.x
79 <        +(2.0*r23.z*r12.y - r12.z*r23.y)*dsindC.y + dsindB.y*r34.x - dsindB.x*r34.y);
78 >        f2.z() = dVdsinPhi*(-(r23.x()*r12.x() + r23.y()*r12.y())*dsindC.z() + (2.0*r23.z()*r12.x() - r12.z()*r23.x())*dsindC.x()
79 >        +(2.0*r23.z()*r12.y() - r12.z()*r23.y())*dsindC.y() + dsindB.y()*r34.x() - dsindB.x()*r34.y());
80  
81          f3 = dVdsinPhi * cross(dsindB, r23);
82  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines