sc::LinOPSimpleCo Class Reference

The LinOPSimpleCo class describes an out-of-plane component of a linear bend internal coordinate of a molecule. More...

#include <simple.h>

Inheritance diagram for sc::LinOPSimpleCo:

sc::SimpleCo sc::IntCoor sc::SavableState sc::DescribedClass sc::RefCount sc::Identity List of all members.

Public Member Functions

 LinOPSimpleCo (const LinOPSimpleCo &)
 LinOPSimpleCo (const char *refr, int, int, int, const SCVector3 &u)
 This constructor takes a string containing a label, and three integers a, b, and c which give the indices of the atoms involved in the linear angle abc.
 LinOPSimpleCo (const Ref< KeyVal > &)
 The KeyVal constructor.
const char * ctype () const
 Always returns the string "LINIP".
double radians () const
 Returns the value of the angle abc in radians.
double degrees () const
 Returns the value of the angle abc in degrees.
double preferred_value () const
 Returns the value of the angle abc in degrees.

Detailed Description

The LinOPSimpleCo class describes an out-of-plane component of a linear bend internal coordinate of a molecule.

The input is described in the documentation of its parent class SimpleCo. A vector, $\bar{u}$, given as the keyword u, that is not colinear with either $\bar{r}_a - \bar{r}_b$ or $\bar{r}_b - \bar{r}_c$ must be provided, where $\bar{r}_a$, $\bar{r}_b$, and $\bar{r}_c$ are the positions of the first, second, and third atoms, respectively.

Usually, LinOPSimpleCo is used with a corresponding LinIPSimpleCo, which is given exactly the same u.

Designating the three atoms as $a$, $b$, and $c$ and their cartesian positions as $\bar{r}_a$, $\bar{r}_b$, and $\bar{r}_c$, the value of the coordinate, $\theta_o$, is given by

\[ \bar{u}_{ab} = \frac{\bar{r}_a - \bar{r}_b}{\| \bar{r}_a - \bar{r}_b \|}\]

\[ \bar{u}_{cb} = \frac{\bar{r}_b - \bar{r}_c}{\| \bar{r}_c - \bar{r}_b \|}\]

\[ \bar{n} = \frac{\bar{u} \times \bar{u}_{ab}} {\| \bar{u} \times \bar{u}_{ab} \|}\]

\[ \theta_o = \pi - \arccos ( \bar{u}_{ab} \cdot \bar{n} ) - \arccos ( \bar{u}_{cb} \cdot \bar{n} )\]


Constructor & Destructor Documentation

sc::LinOPSimpleCo::LinOPSimpleCo ( const char *  refr,
int  ,
int  ,
int  ,
const SCVector3 &  u 
)

This constructor takes a string containing a label, and three integers a, b, and c which give the indices of the atoms involved in the linear angle abc.

The last argument, u, is a unit vector used to defined the direction perpendicular to the direction in which distortion is measured. Atom numbering begins at atom 1, not atom 0.

sc::LinOPSimpleCo::LinOPSimpleCo ( const Ref< KeyVal > &   ) 

The KeyVal constructor.

This calls the SimpleCo keyval constructor with an integer argument of 3.


The documentation for this class was generated from the following file:
Generated at Mon Dec 3 23:23:48 2007 for MPQC 2.3.1 using the documentation package Doxygen 1.5.2.