ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/primitives/Inversion.cpp
(Generate patch)

Comparing trunk/src/primitives/Inversion.cpp (file contents):
Revision 1290 by cli2, Wed Sep 10 19:51:45 2008 UTC vs.
Revision 1305 by skuang, Thu Oct 16 18:17:41 2008 UTC

# Line 40 | Line 40
40   */
41  
42   #include "primitives/Inversion.hpp"
43 #include "fstream"
43  
44   namespace oopse {
45  
# Line 57 | Line 56 | namespace oopse {
56      // is treated as atom *3* in a standard torsion form:
57  
58      Vector3d pos1 = atom2_->getPos();
59 <    Vector3d pos2 = atom1_->getPos();
60 <    Vector3d pos3 = atom4_->getPos();
61 <    Vector3d pos4 = atom3_->getPos();
59 >    Vector3d pos2 = atom3_->getPos();
60 >    Vector3d pos3 = atom1_->getPos();
61 >    Vector3d pos4 = atom4_->getPos();
62  
63     /*std::ofstream myfile;
64     myfile.open("Inversion", std::ios::app);      
# Line 69 | Line 68 | namespace oopse {
68                << atom4_->getType() << " - atom4; "
69                << std::endl;
70   */
71 <    Vector3d r21 = pos1 - pos2;
72 <    Vector3d r32 = pos2 - pos3;
73 <    Vector3d r42 = pos2 - pos4;
71 >    Vector3d r31 = pos1 - pos3;
72 >    Vector3d r23 = pos3 - pos2;
73 >    Vector3d r43 = pos3 - pos4;
74  
75      //  Calculate the cross products and distances
76 <    Vector3d A = cross(r21, r32);
76 >    Vector3d A = cross(r31, r43);
77      RealType rA = A.length();
78 <    Vector3d B = cross(r32, r42);
78 >    Vector3d B = cross(r43, r23);
79      RealType rB = B.length();
80      //Vector3d C = cross(r23, A);
81      //RealType rC = C.length();
# Line 103 | Line 102 | namespace oopse {
102      Vector3d dcosdA = (cos_phi * A - B) /rA;
103      Vector3d dcosdB = (cos_phi * B - A) /rB;
104  
105 <    f1 = dVdcosPhi * cross(r32, dcosdA);
106 <    f2 = dVdcosPhi * ( cross(r42, dcosdB) - cross(r21, dcosdA));
107 <    f3 = dVdcosPhi * cross(dcosdB, r32);
105 >    f1 = dVdcosPhi * cross(r43, dcosdA);
106 >    f2 = dVdcosPhi * ( cross(r23, dcosdB) - cross(r31, dcosdA));
107 >    f3 = dVdcosPhi * cross(dcosdB, r43);
108  
109      // In OOPSE's version of an improper torsion, the central atom
110      // comes first.  However, to get the planarity in a typical cosine

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines