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();
77 int addStretchBend(
int particle1,
int particle2,
int particle3,
double lengthAB,
double lengthCB,
double angle,
92 void getStretchBendParameters(
int index,
int& particle1,
int& particle2,
int& particle3,
93 double& lengthAB,
double& lengthCB,
double& angle,
double& k )
const;
107 void setStretchBendParameters(
int index,
int particle1,
int particle2,
int particle3,
108 double lengthAB,
double lengthCB,
double angle,
double k );
118 void updateParametersInContext(
Context& context);
123 class StretchBendInfo;
124 std::vector<StretchBendInfo> stretchBends;
131 class AmoebaStretchBendForce::StretchBendInfo {
133 int particle1, particle2, particle3;
134 double lengthAB, lengthCB, angle, k;
136 particle1 = particle2 = particle3 = -1;
137 lengthAB = lengthCB = angle = k = 0.0;
139 StretchBendInfo(
int particle1,
int particle2,
int particle3,
140 double lengthAB,
double lengthCB,
double angle,
double k ) :
141 particle1(particle1), particle2(particle2), particle3(particle3),
142 lengthAB(lengthAB), lengthCB(lengthCB), angle(angle), k(k) {
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
A ForceImpl provides the internal implementation of a Force.
Definition: ForceImpl.h:57
int getNumStretchBends() const
Get the number of stretch-bend terms in the potential function.
Definition: AmoebaStretchBendForce.h:61