| OpenMM
   
    | 
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:
 Inheritance diagram for LocalCoordinatesSite:| Public Member Functions | |
| def | getOriginWeights | 
| getOriginWeights(self) -> Vec3 const & | |
| def | getXWeights | 
| getXWeights(self) -> Vec3 const & | |
| def | getYWeights | 
| getYWeights(self) -> Vec3 const & | |
| def | getLocalPosition | 
| getLocalPosition(self) -> Vec3 const & | |
| def | __init__ | 
| __init__(self, particle1, particle2, particle3, originWeights, xWeights, yWeights, localPosition) -> LocalCoordinatesSite __init__(self, other) -> LocalCoordinatesSite | |
| Public Attributes | |
| this | |
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
| def __init__ | ( | self, | |
| args | |||
| ) | 
__init__(self, particle1, particle2, particle3, originWeights, xWeights, yWeights, localPosition) -> LocalCoordinatesSite __init__(self, other) -> LocalCoordinatesSite
Create a new LocalCoordinatesSite virtual site.
| particle1 | (int) the index of the first particle | 
| particle2 | (int) the index of the second particle | 
| particle3 | (int) the index of the third particle | 
| originWeights | (Vec3) the weight factors for the three particles when computing the origin location | 
| xWeights | (Vec3) the weight factors for the three particles when computing xdir | 
| yWeights | (Vec3) the weight factors for the three particles when computing ydir | 
| localPosition | (Vec3) the position of the virtual site in the local coordinate system | 
| def getLocalPosition | ( | self | ) | 
getLocalPosition(self) -> Vec3 const &
Get the position of the virtual site in the local coordinate system.
| def getOriginWeights | ( | self | ) | 
getOriginWeights(self) -> Vec3 const &
Get the weight factors for the three particles when computing the origin location.
| def getXWeights | ( | self | ) | 
getXWeights(self) -> Vec3 const &
Get the weight factors for the three particles when computing xdir.
| def getYWeights | ( | self | ) | 
getYWeights(self) -> Vec3 const &
Get the weight factors for the three particles when computing ydir.