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);
144 class TorsionTorsionInfo;
145 class TorsionTorsionGridInfo;
146 std::vector<TorsionTorsionInfo> torsionTorsions;
147 std::vector<TorsionTorsionGridInfo> torsionTorsionGrids;
154 class AmoebaTorsionTorsionForce::TorsionTorsionInfo {
158 int particle1, particle2, particle3, particle4, particle5;
159 int chiralCheckAtomIndex;
161 TorsionTorsionInfo() {
162 particle1 = particle2 = particle3 = particle4 = particle5 = chiralCheckAtomIndex = -1;
165 TorsionTorsionInfo(
int particle1,
int particle2,
int particle3,
int particle4,
int particle5,
int chiralCheckAtomIndex,
int gridIndex) :
166 particle1(particle1), particle2(particle2), particle3(particle3),
167 particle4(particle4), particle5(particle5), gridIndex(gridIndex), chiralCheckAtomIndex(chiralCheckAtomIndex) {
176 class AmoebaTorsionTorsionForce::TorsionTorsionGridInfo {
180 TorsionTorsionGridInfo() {
181 _size[0] = _size[1] = 0;
182 _startValues[0] = _startValues[1] = 0.0;
183 _spacing[0] = _spacing[1] = 1.0;
191 int getDimensionSize(
int index)
const {
194 double getStartValue(
int index)
const {
195 return _startValues[index];
197 double getSpacing(
int index)
const {
198 return _spacing[index];
205 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
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 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