void StepKernel::Integrate( OpenMM::ContextImpl &context, const Integrator &integrator ) { ProjectionVectors( integrator ); #ifdef FAST_NOISE // Add noise for step kFastNoise( &fastmodule, data.contexts[0], integrator.getNumProjectionVectors(), ( float )( BOLTZ * integrator.getTemperature() ), iterations, *modes, *modeWeights, integrator.getMaxEigenvalue(), *NoiseValues, *pPosqP, integrator.getStepSize() ); #endif // Calculate Constants const double friction = integrator.getFriction(); context.updateContextState(); // Do Step kNMLUpdate( &updatemodule, data.contexts[0], integrator.getStepSize(), friction == 0.0f ? 0.0f : 1.0f / friction, ( float )( BOLTZ * integrator.getTemperature() ), integrator.getNumProjectionVectors(), kIterations, *modes, *modeWeights, *NoiseValues ); // TMC setting parameters for this }
void StepKernel::UpdateTime( const Integrator &integrator ) { data.contexts[0]->setTime( data.contexts[0]->getTime() + integrator.getStepSize() ); data.contexts[0]->setStepCount( data.contexts[0]->getStepCount() + 1 ); data.contexts[0]->reorderAtoms(); }