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
0bc5c22e
"olla/vscode:/vscode.git/clone" did not exist on "b67e50d5ea179d71f6dd6b222ddb6d5f5f72e19e"
Unverified
Commit
0bc5c22e
authored
Feb 27, 2020
by
Andy Simmonett
Browse files
Fix common NHC thermostat. Drude still broken
parent
fd7c5465
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
35 additions
and
9 deletions
+35
-9
platforms/common/src/CommonKernels.cpp
platforms/common/src/CommonKernels.cpp
+35
-9
No files found.
platforms/common/src/CommonKernels.cpp
View file @
0bc5c22e
...
@@ -5886,7 +5886,7 @@ std::pair<double, double> CommonNoseHooverChainKernel::propagateChain(ContextImp
...
@@ -5886,7 +5886,7 @@ std::pair<double, double> CommonNoseHooverChainKernel::propagateChain(ContextImp
}
}
}
}
if (chainForces.getSize() < chainLength)
if (chainForces.getSize() < chainLength)
chain
Mass
es
.
resize
(
chainLength
);
chain
Forc
es.resize(chainLength);
if (chainMasses.getSize() < chainLength)
if (chainMasses.getSize() < chainLength)
chainMasses.resize(chainLength);
chainMasses.resize(chainLength);
...
@@ -5964,7 +5964,11 @@ std::pair<double, double> CommonNoseHooverChainKernel::propagateChain(ContextImp
...
@@ -5964,7 +5964,11 @@ std::pair<double, double> CommonNoseHooverChainKernel::propagateChain(ContextImp
int numDOFs = nhc.getNumDegreesOfFreedom();
int numDOFs = nhc.getNumDegreesOfFreedom();
propagateKernels[numYS]->setArg(5, chainType);
propagateKernels[numYS]->setArg(5, chainType);
propagateKernels[numYS]->setArg(8, numDOFs);
propagateKernels[numYS]->setArg(8, numDOFs);
propagateKernels
[
numYS
]
->
setArg
(
10
,
useDouble
?
kT
:
(
float
)
kT
);
if (useDouble) {
propagateKernels[numYS]->setArg(10, kT);
} else {
propagateKernels[numYS]->setArg(10, (float)kT);
}
propagateKernels[numYS]->setArg(11, frequency);
propagateKernels[numYS]->setArg(11, frequency);
propagateKernels[numYS]->execute(1, 1);
propagateKernels[numYS]->execute(1, 1);
}
}
...
@@ -5976,7 +5980,11 @@ std::pair<double, double> CommonNoseHooverChainKernel::propagateChain(ContextImp
...
@@ -5976,7 +5980,11 @@ std::pair<double, double> CommonNoseHooverChainKernel::propagateChain(ContextImp
int ndf = 3*nPairs;
int ndf = 3*nPairs;
propagateKernels[numYS]->setArg(5, chainType);
propagateKernels[numYS]->setArg(5, chainType);
propagateKernels[numYS]->setArg(8, ndf);
propagateKernels[numYS]->setArg(8, ndf);
propagateKernels
[
numYS
]
->
setArg
(
10
,
useDouble
?
kT
:
(
float
)
kT
);
if (useDouble) {
propagateKernels[numYS]->setArg(10, kT);
} else {
propagateKernels[numYS]->setArg(10, (float)kT);
}
propagateKernels[numYS]->setArg(11, relativeFrequency);
propagateKernels[numYS]->setArg(11, relativeFrequency);
propagateKernels[numYS]->execute(1, 1);
propagateKernels[numYS]->execute(1, 1);
}
}
...
@@ -6033,7 +6041,11 @@ double CommonNoseHooverChainKernel::computeHeatBathEnergy(ContextImpl& context,
...
@@ -6033,7 +6041,11 @@ double CommonNoseHooverChainKernel::computeHeatBathEnergy(ContextImpl& context,
double kT = BOLTZ * temperature;
double kT = BOLTZ * temperature;
computeHeatBathEnergyKernel->setArg(2, numDOFs);
computeHeatBathEnergyKernel->setArg(2, numDOFs);
computeHeatBathEnergyKernel
->
setArg
(
3
,
useDouble
?
kT
:
(
float
)
kT
);
if (useDouble) {
computeHeatBathEnergyKernel->setArg(3, kT);
} else {
computeHeatBathEnergyKernel->setArg(3, (float)kT);
}
computeHeatBathEnergyKernel->setArg(4, frequency);
computeHeatBathEnergyKernel->setArg(4, frequency);
computeHeatBathEnergyKernel->setArg(5, chainState[2*chainID]);
computeHeatBathEnergyKernel->setArg(5, chainState[2*chainID]);
computeHeatBathEnergyKernel->execute(1, 1);
computeHeatBathEnergyKernel->execute(1, 1);
...
@@ -6045,7 +6057,11 @@ double CommonNoseHooverChainKernel::computeHeatBathEnergy(ContextImpl& context,
...
@@ -6045,7 +6057,11 @@ double CommonNoseHooverChainKernel::computeHeatBathEnergy(ContextImpl& context,
double kT = BOLTZ * temperature;
double kT = BOLTZ * temperature;
computeHeatBathEnergyKernel->setArg(2, numDOFs);
computeHeatBathEnergyKernel->setArg(2, numDOFs);
computeHeatBathEnergyKernel
->
setArg
(
3
,
useDouble
?
kT
:
(
float
)
kT
);
if (useDouble) {
computeHeatBathEnergyKernel->setArg(3, kT);
} else {
computeHeatBathEnergyKernel->setArg(3, (float)kT);
}
computeHeatBathEnergyKernel->setArg(4, frequency);
computeHeatBathEnergyKernel->setArg(4, frequency);
computeHeatBathEnergyKernel->setArg(5, chainState[2*chainID+1]);
computeHeatBathEnergyKernel->setArg(5, chainState[2*chainID+1]);
computeHeatBathEnergyKernel->execute(1, 1);
computeHeatBathEnergyKernel->execute(1, 1);
...
@@ -6110,9 +6126,14 @@ std::pair<double, double> CommonNoseHooverChainKernel::computeMaskedKineticEnerg
...
@@ -6110,9 +6126,14 @@ std::pair<double, double> CommonNoseHooverChainKernel::computeMaskedKineticEnerg
if (!hasInitializedKineticEnergyKernel) {
if (!hasInitializedKineticEnergyKernel) {
hasInitializedKineticEnergyKernel = true;
hasInitializedKineticEnergyKernel = true;
computeAtomsKineticEnergyKernel->addArg(energyBuffer);
computeAtomsKineticEnergyKernel->addArg(energyBuffer);
computeAtomsKineticEnergyKernel
->
addArg
();
// nAtoms
/nPairs
computeAtomsKineticEnergyKernel->addArg(); // nAtoms
computeAtomsKineticEnergyKernel->addArg(cc.getVelm());
computeAtomsKineticEnergyKernel->addArg(cc.getVelm());
computeAtomsKineticEnergyKernel
->
addArg
();
// pair/atom list
computeAtomsKineticEnergyKernel->addArg(); // atom list
computePairsKineticEnergyKernel->addArg(energyBuffer);
computePairsKineticEnergyKernel->addArg(); // nPairs
computePairsKineticEnergyKernel->addArg(cc.getVelm());
computePairsKineticEnergyKernel->addArg(); // pair list
reduceEnergyKernel->addArg(energyBuffer);
reduceEnergyKernel->addArg(energyBuffer);
reduceEnergyKernel->addArg(kineticEnergyBuffer);
reduceEnergyKernel->addArg(kineticEnergyBuffer);
...
@@ -6160,9 +6181,14 @@ void CommonNoseHooverChainKernel::scaleVelocities(ContextImpl& context, const No
...
@@ -6160,9 +6181,14 @@ void CommonNoseHooverChainKernel::scaleVelocities(ContextImpl& context, const No
if (!hasInitializedScaleVelocitiesKernel) {
if (!hasInitializedScaleVelocitiesKernel) {
hasInitializedScaleVelocitiesKernel = true;
hasInitializedScaleVelocitiesKernel = true;
scaleAtomsVelocitiesKernel->addArg(scaleFactorBuffer);
scaleAtomsVelocitiesKernel->addArg(scaleFactorBuffer);
scaleAtomsVelocitiesKernel
->
addArg
();
// nAtoms
/nPairs
scaleAtomsVelocitiesKernel->addArg(); // nAtoms
scaleAtomsVelocitiesKernel->addArg(cc.getVelm());
scaleAtomsVelocitiesKernel->addArg(cc.getVelm());
scaleAtomsVelocitiesKernel
->
addArg
();
// atom/pair list
scaleAtomsVelocitiesKernel->addArg(); // atom list
scalePairsVelocitiesKernel->addArg(scaleFactorBuffer);
scalePairsVelocitiesKernel->addArg(); // nPairs
scalePairsVelocitiesKernel->addArg(cc.getVelm());
scalePairsVelocitiesKernel->addArg(); // pair list
}
}
if (nAtoms) {
if (nAtoms) {
scaleAtomsVelocitiesKernel->setArg(1, nAtoms);
scaleAtomsVelocitiesKernel->setArg(1, nAtoms);
...
...
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