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
61b3cd18
"platforms/cpu/src/CpuNonbondedForceAvx2.cpp" did not exist on "79f064af10e04dd8f06a081a5d2306c56c2d5cbb"
Commit
61b3cd18
authored
Aug 20, 2018
by
peastman
Browse files
Dispersion correction is based on default values of offset parameters
parent
aed9eed8
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
4 deletions
+22
-4
openmmapi/src/NonbondedForceImpl.cpp
openmmapi/src/NonbondedForceImpl.cpp
+22
-4
No files found.
openmmapi/src/NonbondedForceImpl.cpp
View file @
61b3cd18
...
...
@@ -236,14 +236,32 @@ double NonbondedForceImpl::calcDispersionCorrection(const System& system, const
if
(
force
.
getNonbondedMethod
()
==
NonbondedForce
::
NoCutoff
||
force
.
getNonbondedMethod
()
==
NonbondedForce
::
CutoffNonPeriodic
)
return
0.0
;
// Record sigma and epsilon for every particle, including the default value
// for every offset parameter.
vector
<
double
>
sigma
(
force
.
getNumParticles
()),
epsilon
(
force
.
getNumParticles
());
for
(
int
i
=
0
;
i
<
force
.
getNumParticles
();
i
++
)
{
double
charge
;
force
.
getParticleParameters
(
i
,
charge
,
sigma
[
i
],
epsilon
[
i
]);
}
map
<
string
,
double
>
param
;
for
(
int
i
=
0
;
i
<
force
.
getNumGlobalParameters
();
i
++
)
param
[
force
.
getGlobalParameterName
(
i
)]
=
force
.
getGlobalParameterDefaultValue
(
i
);
for
(
int
i
=
0
;
i
<
force
.
getNumParticleParameterOffsets
();
i
++
)
{
string
parameter
;
int
index
;
double
chargeScale
,
sigmaScale
,
epsilonScale
;
force
.
getParticleParameterOffset
(
i
,
parameter
,
index
,
chargeScale
,
sigmaScale
,
epsilonScale
);
sigma
[
index
]
+=
param
[
parameter
]
*
sigmaScale
;
epsilon
[
index
]
+=
param
[
parameter
]
*
epsilonScale
;
}
// Identify all particle classes (defined by sigma and epsilon), and count the number of
// particles in each class.
map
<
pair
<
double
,
double
>
,
int
>
classCounts
;
for
(
int
i
=
0
;
i
<
force
.
getNumParticles
();
i
++
)
{
double
charge
,
sigma
,
epsilon
;
force
.
getParticleParameters
(
i
,
charge
,
sigma
,
epsilon
);
pair
<
double
,
double
>
key
=
make_pair
(
sigma
,
epsilon
);
pair
<
double
,
double
>
key
=
make_pair
(
sigma
[
i
],
epsilon
[
i
]);
map
<
pair
<
double
,
double
>
,
int
>::
iterator
entry
=
classCounts
.
find
(
key
);
if
(
entry
==
classCounts
.
end
())
classCounts
[
key
]
=
1
;
...
...
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