All Classes Namespaces Functions Variables Pages
LocalCoordinatesSite Class Reference

This is a VirtualSite that uses the locations of three other particles to compute a local coordinate system, then places the virtual site at a fixed location in that coordinate system. More...

Inheritance diagram for LocalCoordinatesSite:

## Public Member Functions

def | getOriginWeights
| getOriginWeights(LocalCoordinatesSite self) -> Vec3 const & More...
def | getXWeights
| getXWeights(LocalCoordinatesSite self) -> Vec3 const & More...
def | getYWeights
| getYWeights(LocalCoordinatesSite self) -> Vec3 const & More...
def | getLocalPosition
| getLocalPosition(LocalCoordinatesSite self) -> Vec3 const & More...
def | __init__
| init(OpenMM::LocalCoordinatesSite self, int particle1, int particle2, int particle3, Vec3 const & originWeights, Vec3 const & xWeights, Vec3 const & yWeights, Vec3 const & localPosition) -> LocalCoordinatesSite init(OpenMM::LocalCoordinatesSite self, LocalCoordinatesSite other) -> LocalCoordinatesSite More...
def | __del__
| del(OpenMM::LocalCoordinatesSite self) More...
Public Member Functions inherited from VirtualSite
def | __init__
def | __del__
| del(OpenMM::VirtualSite self) More...
def | getNumParticles
| getNumParticles(VirtualSite self) -> int More...
def | getParticle
| getParticle(VirtualSite self, int particle) -> int More...

## Public Attributes

| this

## Detailed Description

This is a VirtualSite that uses the locations of three other particles to compute a local coordinate system, then places the virtual site at a fixed location in that coordinate system.

The origin of the coordinate system and the directions of its x and y axes are each specified as a weighted sum of the locations of the three particles:

origin = w1r1 + w2r2 + w3r3

xdir = w1r1 + w2r2 + w3r3

ydir = w1r1 + w2r2 + w3r3

For the origin, the three weights must add to one. For example if (w1, w2, w3) = (1.0, 0.0, 0.0), the origin of the local coordinate system is at the location of particle 1. For xdir and ydir, the weights must add to zero. For excample, if (w1, w2, w3) = (-1.0, 0.5, 0.5), the x axis points from particle 1 toward the midpoint between particles 2 and 3.

The z direction is computed as zdir = xdir x ydir. To ensure the axes are all orthogonal, ydir is then recomputed as ydir = zdir x xdir. All three axis vectors are then normalized, and the virtual site location is set to

origin + x*xdir + y*ydir + z*zdir

## Constructor & Destructor Documentation

def __init__ | ( |  | self,
|  |  | args
| ) |  |

init(OpenMM::LocalCoordinatesSite self, int particle1, int particle2, int particle3, Vec3 const & originWeights, Vec3 const & xWeights, Vec3 const & yWeights, Vec3 const & localPosition) -> LocalCoordinatesSite init(OpenMM::LocalCoordinatesSite self, LocalCoordinatesSite other) -> LocalCoordinatesSite

Create a new LocalCoordinatesSite virtual site.

Parameters

  particle1 | the index of the first particle
  particle2 | the index of the second particle
  particle3 | the index of the third particle
  originWeights | the weight factors for the three particles when computing the origin location
  xWeights | the weight factors for the three particles when computing xdir
  yWeights | the weight factors for the three particles when computing ydir
  localPosition | the position of the virtual site in the local coordinate system

References simtk.openmm.openmm.stripUnits().

def __del__ | ( |  | self | ) |

del(OpenMM::LocalCoordinatesSite self)

References simtk.openmm.openmm.stripUnits().

## Member Function Documentation

def getLocalPosition | ( |  | self,
|  |  | args
| ) |  |

getLocalPosition(LocalCoordinatesSite self) -> Vec3 const &

Get the position of the virtual site in the local coordinate system.

References simtk.openmm.openmm.stripUnits().

def getOriginWeights | ( |  | self,
|  |  | args
| ) |  |

getOriginWeights(LocalCoordinatesSite self) -> Vec3 const &

Get the weight factors for the three particles when computing the origin location.

References simtk.openmm.openmm.stripUnits().

def getXWeights | ( |  | self,
|  |  | args
| ) |  |

getXWeights(LocalCoordinatesSite self) -> Vec3 const &

Get the weight factors for the three particles when computing xdir.

References simtk.openmm.openmm.stripUnits().

def getYWeights | ( |  | self,
|  |  | args
| ) |  |

getYWeights(LocalCoordinatesSite self) -> Vec3 const &

Get the weight factors for the three particles when computing ydir.

References simtk.openmm.openmm.stripUnits().

## Member Data Documentation

this

Referenced by System.__init__().

The documentation for this class was generated from the following file:

- openmm.py