1 #ifndef OPENMM_NONBONDEDFORCEIMPL_H_
2 #define OPENMM_NONBONDEDFORCEIMPL_H_
35 #include "ForceImpl.h"
36 #include "openmm/NonbondedForce.h"
37 #include "openmm/Kernel.h"
61 double calcForcesAndEnergy(
ContextImpl& context,
bool includeForces,
bool includeEnergy,
int groups);
63 return std::map<std::string, double>();
65 std::vector<std::string> getKernelNames();
66 void updateParametersInContext(
ContextImpl& context);
71 static void calcEwaldParameters(
const System& system,
const NonbondedForce& force,
double& alpha,
int& kmaxx,
int& kmaxy,
int& kmaxz);
76 static void calcPMEParameters(
const System& system,
const NonbondedForce& force,
double& alpha,
int& xsize,
int& ysize,
int& zsize);
84 class EwaldErrorFunction;
85 static int findZero(
const ErrorFunction& f,
int initialGuess);
86 static double evalIntegral(
double r,
double rs,
double rc,
double sigma);
This is the internal implementation of a Context.
Definition: ContextImpl.h:53
std::map< std::string, double > getDefaultParameters()
Get a map containing the default values for all adjustable parameters defined by this ForceImpl...
Definition: NonbondedForceImpl.h:62
This class represents a molecular system.
Definition: System.h:66
A Kernel encapsulates a particular implementation of a calculation that can be performed on the data ...
Definition: Kernel.h:58
const NonbondedForce & getOwner() const
Get the Force object from which this ForceImpl was created.
Definition: NonbondedForceImpl.h:55
A ForceImpl provides the internal implementation of a Force.
Definition: ForceImpl.h:57
This class implements nonbonded interactions between particles, including a Coulomb force to represen...
Definition: NonbondedForce.h:81
This is the internal implementation of NonbondedForce.
Definition: NonbondedForceImpl.h:50
void updateContextState(ContextImpl &context)
This method is called at the beginning of each time step.
Definition: NonbondedForceImpl.h:58