Main Page Class Hierarchy Compound List File List Compound Members Related Pages

# sc::MolecularCoor Class Reference

The MolecularCoor abstract class describes the coordinate system used to describe a molecule. More...

`#include <coor.h>`

Inheritance diagram for sc::MolecularCoor:

[legend]
Collaboration diagram for sc::MolecularCoor:

[legend]
List of all members.

## Public Methods
| MolecularCoor (Ref< Molecule > &)
| MolecularCoor (StateIn &)
| MolecularCoor (const Ref< KeyVal > &)
| The KeyVal constructor. More...
virtual | ~MolecularCoor ()
void | save_data_state (StateOut &)
| Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them. More...
RefSCDimension | dim_natom3 ()
| Returns a smart reference to an SCDimension equal to the number of atoms in the molecule times 3.
Ref< Molecule > | molecule () const
| Returns the molecule.
virtual void | print (std::ostream &=ExEnv::out0()) const=0
| Print the coordinate.
virtual void | print_simples (std::ostream &=ExEnv::out0()) const=0
virtual RefSCDimension | dim ()=0
| Returns a smart reference to an SCDimension equal to the number of coordinates (be they Cartesian, internal, or whatever) that are being optimized.
int | to_cartesian (const RefSCVector &internal)
| Given a set of displaced internal coordinates, update the cartesian coordinates of the Molecule contained herein. More...
virtual int | to_cartesian (const Ref< Molecule > &mol, const RefSCVector &internal)=0
virtual int | to_internal (RefSCVector &internal)=0
| Fill in the vector ``internal'' with the current internal coordinates. More...
virtual int | to_cartesian (RefSCVector &cartesian, RefSCVector &internal)=0
| Convert the internal coordinate gradients in ``internal'' to Cartesian coordinates and copy these Cartesian coordinate gradients to ``cartesian''. More...
virtual int | to_internal (RefSCVector &internal, RefSCVector &cartesian)=0
| Convert the Cartesian coordinate gradients in ``cartesian'' to internal coordinates and copy these internal coordinate gradients to ``internal''. More...
virtual int | to_cartesian (RefSymmSCMatrix &cartesian, RefSymmSCMatrix &internal)=0
| Convert the internal coordinate Hessian ``internal'' to Cartesian coordinates and copy the result to ``cartesian''. More...
virtual int | to_internal (RefSymmSCMatrix &internal, RefSymmSCMatrix &cartesian)=0
| Convert the Cartesian coordinate Hessian ``cartesian'' to internal coordinates and copy the result to ``internal''. More...
virtual void | guess_hessian (RefSymmSCMatrix &hessian)=0
| Calculate an approximate hessian and place the result in ``hessian''.
virtual RefSymmSCMatrix | inverse_hessian (RefSymmSCMatrix &)=0
| Given an Hessian, return the inverse of that hessian. More...
virtual int | nconstrained ()
| Returns the number of constrained coordinates.
virtual Ref< NonlinearTransform > | change_coordinates ()
| When this is called, MoleculeCoor may select a new internal coordinate system and return a transform to it. More...
Ref< SCMatrixKit > | matrixkit () const
## Protected Attributes
Ref< Molecule > | molecule_
RefSCDimension | dnatom3_
Ref< SCMatrixKit > | matrixkit_
int | debug_

## Detailed Description

The MolecularCoor abstract class describes the coordinate system used to describe a molecule.

It is used to convert a molecule's cartesian coordinates to and from this coordinate system.

## Constructor & Destructor Documentation

sc::MolecularCoor::MolecularCoor | ( | const Ref< KeyVal > & |  | ) |

| The KeyVal constructor. `molecule` A Molecule object. There is no default. `debug` An integer which, if nonzero, will cause extra output. `matrixkit` A SCMatrixKit object. It is usually unnecessary to give this keyword. `natom3` An SCDimension object for the dimension of the vector of cartesian coordinates. It is usually unnecessary to give this keyword.

## Member Function Documentation

virtual Ref<NonlinearTransform> sc::MolecularCoor::change_coordinates | ( |  | ) | `[virtual]`

| When this is called, MoleculeCoor may select a new internal coordinate system and return a transform to it. The default action is to not change anything and return an IdentityTransform. Reimplemented in sc::SymmMolecularCoor.

virtual RefSymmSCMatrix sc::MolecularCoor::inverse_hessian | ( | RefSymmSCMatrix & |  | ) | `[pure virtual]`

| Given an Hessian, return the inverse of that hessian. For singular matrices this should return the generalized inverse. Implemented in sc::SymmMolecularCoor.

void sc::MolecularCoor::save_data_state | ( | StateOut & |  | ) | `[virtual]`

| Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them. This must be implemented by the derived class if the class has data. Reimplemented from sc::SavableState. Reimplemented in sc::IntMolecularCoor.

virtual int sc::MolecularCoor::to_cartesian | ( | RefSymmSCMatrix & | cartesian,
|  | RefSymmSCMatrix & | internal
| ) | `[pure virtual]`

| Convert the internal coordinate Hessian ``internal'' to Cartesian coordinates and copy the result to ``cartesian''. Only the variable internal coordinate force constants are transformed. Implemented in sc::IntMolecularCoor.

virtual int sc::MolecularCoor::to_cartesian | ( | RefSCVector & | cartesian,
|  | RefSCVector & | internal
| ) | `[pure virtual]`

| Convert the internal coordinate gradients in ``internal'' to Cartesian coordinates and copy these Cartesian coordinate gradients to ``cartesian''. Only the variable internal coordinate gradients are transformed. Implemented in sc::IntMolecularCoor.

int sc::MolecularCoor::to_cartesian | ( | const RefSCVector & | internal | ) |

| Given a set of displaced internal coordinates, update the cartesian coordinates of the Molecule contained herein. This function does not change the vector ``internal''.

virtual int sc::MolecularCoor::to_internal | ( | RefSymmSCMatrix & | internal,
|  | RefSymmSCMatrix & | cartesian
| ) | `[pure virtual]`

| Convert the Cartesian coordinate Hessian ``cartesian'' to internal coordinates and copy the result to ``internal''. Only the variable internal coordinate force constants are calculated. Implemented in sc::IntMolecularCoor.

virtual int sc::MolecularCoor::to_internal | ( | RefSCVector & | internal,
|  | RefSCVector & | cartesian
| ) | `[pure virtual]`

| Convert the Cartesian coordinate gradients in ``cartesian'' to internal coordinates and copy these internal coordinate gradients to ``internal''. Only the variable internal coordinate gradients are calculated. Implemented in sc::IntMolecularCoor.

virtual int sc::MolecularCoor::to_internal | ( | RefSCVector & | internal | ) | `[pure virtual]`

| Fill in the vector ``internal'' with the current internal coordinates. Note that this member will update the values of the variable internal coordinates. Implemented in sc::IntMolecularCoor.

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

- coor.h