"olla/vscode:/vscode.git/clone" did not exist on "b67e50d5ea179d71f6dd6b222ddb6d5f5f72e19e"
Unverified Commit 0bc5c22e authored by Andy Simmonett's avatar Andy Simmonett
Browse files

Fix common NHC thermostat. Drude still broken

parent fd7c5465
...@@ -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)
chainMasses.resize(chainLength); chainForces.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);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment