1 #ifndef OPENMM_AMOEBA_TORSION_TORSION_FORCE_H_
2 #define OPENMM_AMOEBA_TORSION_TORSION_FORCE_H_
35 #include "openmm/Force.h"
36 #include "internal/windowsExportAmoeba.h"
65 return torsionTorsions.size();
72 return torsionTorsionGrids.size();
87 int addTorsionTorsion(
int particle1,
int particle2,
int particle3,
int particle4,
int particle5,
int chiralCheckAtomIndex,
int gridIndex);
101 void getTorsionTorsionParameters(
int index,
int& particle1,
int& particle2,
int& particle3,
int& particle4,
int& particle5,
int& chiralCheckAtomIndex,
int& gridIndex)
const;
115 void setTorsionTorsionParameters(
int index,
int particle1,
int particle2,
int particle3,
int particle4,
int particle5,
int chiralCheckAtomIndex,
int gridIndex);
123 const std::vector<std::vector<std::vector<double> > >& getTorsionTorsionGrid(
int index)
const;
139 void setTorsionTorsionGrid(
int index,
const std::vector<std::vector<std::vector<double> > >& grid);
150 ForceImpl* createImpl()
const;
152 class TorsionTorsionInfo;
153 class TorsionTorsionGridInfo;
154 std::vector<TorsionTorsionInfo> torsionTorsions;
155 std::vector<TorsionTorsionGridInfo> torsionTorsionGrids;
162 class AmoebaTorsionTorsionForce::TorsionTorsionInfo {
166 int particle1, particle2, particle3, particle4, particle5;
167 int chiralCheckAtomIndex;
169 TorsionTorsionInfo() {
170 particle1 = particle2 = particle3 = particle4 = particle5 = chiralCheckAtomIndex = -1;
173 TorsionTorsionInfo(
int particle1,
int particle2,
int particle3,
int particle4,
int particle5,
int chiralCheckAtomIndex,
int gridIndex) :
174 particle1(particle1), particle2(particle2), particle3(particle3),
175 particle4(particle4), particle5(particle5), gridIndex(gridIndex), chiralCheckAtomIndex(chiralCheckAtomIndex) {
184 class AmoebaTorsionTorsionForce::TorsionTorsionGridInfo {
188 TorsionTorsionGridInfo() {
189 _size[0] = _size[1] = 0;
190 _startValues[0] = _startValues[1] = 0.0;
191 _spacing[0] = _spacing[1] = 1.0;
194 TorsionTorsionGridInfo(
const TorsionTorsionGrid& grid);
199 int getDimensionSize(
int index)
const {
202 double getStartValue(
int index)
const {
203 return _startValues[index];
205 double getSpacing(
int index)
const {
206 return _spacing[index];
211 TorsionTorsionGrid _grid;
213 double _startValues[2];
std::vector< std::vector< std::vector< double > > > TorsionTorsionGrid
Definition: AmoebaTorsionTorsionForce.h:43
std::vector< std::vector< std::vector< float > > > TorsionTorsionGridFloat
Definition: AmoebaTorsionTorsionForce.h:44
const std::vector< std::vector< std::vector< double > > > & getTorsionTorsionGrid(int index) const
Get the torsion-torsion grid at the specified index.
This class implements the Amoeba torsion-torsion interaction.
Definition: AmoebaTorsionTorsionForce.h:53
bool usesPeriodicBoundaryConditions() const
Returns whether or not this force makes use of periodic boundary conditions.
Definition: AmoebaTorsionTorsionForce.h:146
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
int getNumTorsionTorsions(void) const
Get the number of torsion-torsion terms in the potential function.
Definition: AmoebaTorsionTorsionForce.h:64
int getNumTorsionTorsionGrids(void) const
Get the number of torsion-torsion grids.
Definition: AmoebaTorsionTorsionForce.h:71