1 #ifndef OPENMM_AMOEBA_STRETCH_BEND_FORCE_H_
2 #define OPENMM_AMOEBA_STRETCH_BEND_FORCE_H_
35 #include "openmm/Force.h"
36 #include "internal/windowsExportAmoeba.h"
62 return stretchBends.size();
78 int addStretchBend(
int particle1,
int particle2,
int particle3,
double lengthAB,
double lengthCB,
double angle,
79 double k1,
double k2);
94 void getStretchBendParameters(
int index,
int& particle1,
int& particle2,
int& particle3,
double& lengthAB,
95 double& lengthCB,
double& angle,
double& k1,
double& k2)
const;
110 void setStretchBendParameters(
int index,
int particle1,
int particle2,
int particle3,
111 double lengthAB,
double lengthCB,
double angle,
double k1,
double k2);
121 void updateParametersInContext(
Context& context);
132 ForceImpl* createImpl()
const;
134 class StretchBendInfo;
135 std::vector<StretchBendInfo> stretchBends;
142 class AmoebaStretchBendForce::StretchBendInfo {
144 int particle1, particle2, particle3;
145 double lengthAB, lengthCB, angle, k1, k2;
147 particle1 = particle2 = particle3 = -1;
148 lengthAB = lengthCB = angle = k1 = k2 = 0.0;
150 StretchBendInfo(
int particle1,
int particle2,
int particle3,
151 double lengthAB,
double lengthCB,
double angle,
double k1,
double k2) :
152 particle1(particle1), particle2(particle2), particle3(particle3),
153 lengthAB(lengthAB), lengthCB(lengthCB), angle(angle), k1(k1), k2(k2) {
A Context stores the complete state of a simulation.
Definition: Context.h:67
This class implements the Amoeba stretch-bend interaction.
Definition: AmoebaStretchBendForce.h:49
Force objects apply forces to the particles in a System, or alter their behavior in other ways...
Definition: Force.h:65
Definition: AndersenThermostat.h:40
bool usesPeriodicBoundaryConditions() const
Returns whether or not this force makes use of periodic boundary conditions.
Definition: AmoebaStretchBendForce.h:128
int getNumStretchBends() const
Get the number of stretch-bend terms in the potential function.
Definition: AmoebaStretchBendForce.h:61