Commit a2438509 authored by Kyle Beauchamp's avatar Kyle Beauchamp
Browse files

Add check for null context inside integrator.step()

parent d557fa41
...@@ -94,6 +94,8 @@ double CustomIntegrator::computeKineticEnergy() { ...@@ -94,6 +94,8 @@ double CustomIntegrator::computeKineticEnergy() {
} }
void CustomIntegrator::step(int steps) { void CustomIntegrator::step(int steps) {
if (context == NULL)
throw OpenMMException("This Integrator is not bound to a context!");
globalsAreCurrent = false; globalsAreCurrent = false;
for (int i = 0; i < steps; ++i) { for (int i = 0; i < steps; ++i) {
kernel.getAs<IntegrateCustomStepKernel>().execute(*context, *this, forcesAreValid); kernel.getAs<IntegrateCustomStepKernel>().execute(*context, *this, forcesAreValid);
......
...@@ -72,6 +72,8 @@ double LangevinIntegrator::computeKineticEnergy() { ...@@ -72,6 +72,8 @@ double LangevinIntegrator::computeKineticEnergy() {
} }
void LangevinIntegrator::step(int steps) { void LangevinIntegrator::step(int steps) {
if (context == NULL)
throw OpenMMException("This Integrator is not bound to a context!");
for (int i = 0; i < steps; ++i) { for (int i = 0; i < steps; ++i) {
context->updateContextState(); context->updateContextState();
context->calcForcesAndEnergy(true, false); context->calcForcesAndEnergy(true, false);
......
...@@ -75,6 +75,8 @@ double VariableLangevinIntegrator::computeKineticEnergy() { ...@@ -75,6 +75,8 @@ double VariableLangevinIntegrator::computeKineticEnergy() {
} }
void VariableLangevinIntegrator::step(int steps) { void VariableLangevinIntegrator::step(int steps) {
if (context == NULL)
throw OpenMMException("This Integrator is not bound to a context!");
for (int i = 0; i < steps; ++i) { for (int i = 0; i < steps; ++i) {
context->updateContextState(); context->updateContextState();
context->calcForcesAndEnergy(true, false); context->calcForcesAndEnergy(true, false);
...@@ -83,6 +85,8 @@ void VariableLangevinIntegrator::step(int steps) { ...@@ -83,6 +85,8 @@ void VariableLangevinIntegrator::step(int steps) {
} }
void VariableLangevinIntegrator::stepTo(double time) { void VariableLangevinIntegrator::stepTo(double time) {
if (context == NULL)
throw OpenMMException("This Integrator is not bound to a context!");
while (time > context->getTime()) { while (time > context->getTime()) {
context->updateContextState(); context->updateContextState();
context->calcForcesAndEnergy(true, false); context->calcForcesAndEnergy(true, false);
......
...@@ -70,6 +70,8 @@ double VariableVerletIntegrator::computeKineticEnergy() { ...@@ -70,6 +70,8 @@ double VariableVerletIntegrator::computeKineticEnergy() {
} }
void VariableVerletIntegrator::step(int steps) { void VariableVerletIntegrator::step(int steps) {
if (context == NULL)
throw OpenMMException("This Integrator is not bound to a context!");
for (int i = 0; i < steps; ++i) { for (int i = 0; i < steps; ++i) {
context->updateContextState(); context->updateContextState();
context->calcForcesAndEnergy(true, false); context->calcForcesAndEnergy(true, false);
...@@ -78,6 +80,8 @@ void VariableVerletIntegrator::step(int steps) { ...@@ -78,6 +80,8 @@ void VariableVerletIntegrator::step(int steps) {
} }
void VariableVerletIntegrator::stepTo(double time) { void VariableVerletIntegrator::stepTo(double time) {
if (context == NULL)
throw OpenMMException("This Integrator is not bound to a context!");
while (time > context->getTime()) { while (time > context->getTime()) {
context->updateContextState(); context->updateContextState();
context->calcForcesAndEnergy(true, false); context->calcForcesAndEnergy(true, false);
......
...@@ -69,6 +69,8 @@ double VerletIntegrator::computeKineticEnergy() { ...@@ -69,6 +69,8 @@ double VerletIntegrator::computeKineticEnergy() {
} }
void VerletIntegrator::step(int steps) { void VerletIntegrator::step(int steps) {
if (context == NULL)
throw OpenMMException("This Integrator is not bound to a context!");
for (int i = 0; i < steps; ++i) { for (int i = 0; i < steps; ++i) {
context->updateContextState(); context->updateContextState();
context->calcForcesAndEnergy(true, false); context->calcForcesAndEnergy(true, false);
......
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