Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
tsoc
openmm
Commits
e772c611
"platforms/vscode:/vscode.git/clone" did not exist on "6d82a920f9a2eba0149bdc96620707f9e87124fd"
Commit
e772c611
authored
Jan 26, 2011
by
Mark Friedrichs
Browse files
Signs on torque for ZBisect inverted
parent
1c094341
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
10 deletions
+15
-10
plugins/amoeba/platforms/reference/src/SimTKReference/AmoebaReferenceMultipoleForce.cpp
...ence/src/SimTKReference/AmoebaReferenceMultipoleForce.cpp
+15
-10
No files found.
plugins/amoeba/platforms/reference/src/SimTKReference/AmoebaReferenceMultipoleForce.cpp
View file @
e772c611
...
...
@@ -1701,10 +1701,13 @@ void AmoebaReferenceMultipoleForce::mapTorqueToForce( const MultipoleParticleDat
t2
[
0
]
=
vector
[
W
][
0
]
-
vector
[
S
][
0
]
*
angles
[
WS
][
0
];
t2
[
1
]
=
vector
[
W
][
1
]
-
vector
[
S
][
1
]
*
angles
[
WS
][
0
];
t2
[
2
]
=
vector
[
W
][
2
]
-
vector
[
S
][
2
]
*
angles
[
WS
][
0
];
RealOpenMM
notUsed
=
AmoebaReferenceForce
::
normalizeVector3
(
t1
);
notUsed
=
AmoebaReferenceForce
::
normalizeVector3
(
t2
);
RealOpenMM
ut1cos
=
AmoebaReferenceForce
::
getDotProduct3
(
vector
[
U
],
t1
);
RealOpenMM
ut1sin
=
sqrtf
(
1.0
f
-
ut1cos
*
ut1cos
);
RealOpenMM
ut2cos
=
AmoebaReferenceForce
::
getDotProduct3
(
vector
[
U
],
t2
);
RealOpenMM
ut2sin
=
sqrtf
(
1.0
f
-
ut2cos
*
ut2cos
);
...
...
@@ -1718,14 +1721,15 @@ void AmoebaReferenceMultipoleForce::mapTorqueToForce( const MultipoleParticleDat
for
(
int
ii
=
0
;
ii
<
3
;
ii
++
){
double
forceU
=
vector
[
UR
][
ii
]
*
factor1
+
factor2
*
vector
[
US
][
ii
];
forces
[
particleU
.
particleIndex
][
ii
]
+
=
forceU
;
forces
[
particleU
.
particleIndex
][
ii
]
-
=
forceU
;
double
forceV
=
(
angles
[
VS
][
1
]
*
vector
[
S
][
ii
]
-
angles
[
VS
][
0
]
*
t1
[
ii
])
*
factor3
;
forces
[
particleV
.
particleIndex
][
ii
]
+
=
forceV
;
forces
[
particleV
.
particleIndex
][
ii
]
-
=
forceV
;
double
forceW
=
(
angles
[
WS
][
1
]
*
vector
[
S
][
ii
]
-
angles
[
WS
][
0
]
*
t2
[
ii
])
*
factor4
;
forces
[
particleW
->
particleIndex
][
ii
]
+=
forceW
;
forces
[
particleI
.
particleIndex
][
ii
]
-=
(
forceU
+
forceV
+
forceW
);
forces
[
particleW
->
particleIndex
][
ii
]
-=
forceW
;
forces
[
particleI
.
particleIndex
][
ii
]
+=
(
forceU
+
forceV
+
forceW
);
}
}
else
if
(
axisType
==
AmoebaMultipoleForce
::
ThreeFold
){
...
...
@@ -1753,11 +1757,11 @@ void AmoebaReferenceMultipoleForce::mapTorqueToForce( const MultipoleParticleDat
dv
/=
3.0
f
;
dw
/=
3.0
f
;
forces
[
particleU
.
particleIndex
][
ii
]
+
=
du
;
forces
[
particleV
.
particleIndex
][
ii
]
+
=
dv
;
forces
[
particleU
.
particleIndex
][
ii
]
-
=
du
;
forces
[
particleV
.
particleIndex
][
ii
]
-
=
dv
;
if
(
particleW
)
forces
[
particleW
->
particleIndex
][
ii
]
+
=
dw
;
forces
[
particleI
.
particleIndex
][
ii
]
-
=
(
du
+
dv
+
dw
);
forces
[
particleW
->
particleIndex
][
ii
]
-
=
dw
;
forces
[
particleI
.
particleIndex
][
ii
]
+
=
(
du
+
dv
+
dw
);
}
}
else
if
(
axisType
==
AmoebaMultipoleForce
::
ZOnly
){
...
...
@@ -1766,9 +1770,10 @@ void AmoebaReferenceMultipoleForce::mapTorqueToForce( const MultipoleParticleDat
for
(
int
ii
=
0
;
ii
<
3
;
ii
++
){
RealOpenMM
du
=
vector
[
UV
][
ii
]
*
dphi
[
V
]
/
(
norms
[
U
]
*
angles
[
UV
][
1
]);
forces
[
particleU
.
particleIndex
][
ii
]
+
=
du
;
forces
[
particleI
.
particleIndex
][
ii
]
-
=
du
;
forces
[
particleU
.
particleIndex
][
ii
]
-
=
du
;
forces
[
particleI
.
particleIndex
][
ii
]
+
=
du
;
}
}
else
{
/*
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment