sc::MolecularCoor Class Referenceabstract

    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]

## Public Member Functions

| MolecularCoor (Ref< Molecule > &)
| MolecularCoor (StateIn &)
| MolecularCoor (const Ref< KeyVal > &)
| The KeyVal constructor. More...
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. More...
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. More...
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''. More...
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
Public Member Functions inherited from sc::SavableState
SavableState & | operator= (const SavableState &)
void | save_state (StateOut &)
| Save the state of the object as specified by the StateOut object. More...
void | save_object_state (StateOut &)
| This can be used for saving state when the exact type of the object is known for both the save and the restore. More...
virtual void | save_vbase_state (StateOut &)
| Save the virtual bases for the object. More...
Public Member Functions inherited from sc::DescribedClass
| DescribedClass (const DescribedClass &)
DescribedClass & | operator= (const DescribedClass &)
ClassDesc * | class_desc () const throw ()
| This returns the unique pointer to the ClassDesc corresponding to the given type_info object. More...
const char * | class_name () const
| Return the name of the object's exact type.
int | class_version () const
| Return the version of the class.
Public Member Functions inherited from sc::RefCount
int | lock_ptr () const
| Lock this object.
int | unlock_ptr () const
| Unlock this object.
void | use_locks (bool inVal)
| start and stop using locks on this object
refcount_t | nreference () const
| Return the reference count.
refcount_t | reference ()
| Increment the reference count and return the new count.
refcount_t | dereference ()
| Decrement the reference count and return the new count.
int | managed () const
void | unmanage ()
| Turn off the reference counting mechanism for this object. More...
int | managed () const
| Return 1 if the object is managed. Otherwise return 0.
Public Member Functions inherited from sc::Identity
Identifier | identifier ()
| Return the Identifier for this argument. More...

## Protected Attributes

Ref< Molecule > | molecule_
RefSCDimension | dnatom3_
Ref< SCMatrixKit > | matrixkit_
int | debug_

## Additional Inherited Members

Static Public Member Functions inherited from sc::SavableState
static void | save_state (SavableState *s, StateOut &)
static SavableState * | restore_state (StateIn &si)
| Restores objects saved with save_state. More...
static SavableState * | key_restore_state (StateIn &si, const char *keyword)
| Like restore_state, but keyword is used to override values while restoring. More...
static SavableState * | dir_restore_state (StateIn &si, const char *objectname, const char *keyword=0)
Protected Member Functions inherited from sc::SavableState
| SavableState (const SavableState &)
| SavableState (StateIn &)
| Each derived class StateIn CTOR handles the restore corresponding to calling save_object_state, save_vbase_state, and save_data_state listed above. More...

## 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 RefSCDimension sc::MolecularCoor::dim | ( |  | ) |

pure virtual

Returns a smart reference to an SCDimension equal to the number of coordinates (be they Cartesian, internal, or whatever) that are being optimized.

Implemented in sc::CartMolecularCoor, and sc::IntMolecularCoor.

RefSCDimension sc::MolecularCoor::dim_natom3 | ( |  | ) |

inline

Returns a smart reference to an SCDimension equal to the number of atoms in the molecule times 3.

virtual void sc::MolecularCoor::guess_hessian | ( | RefSymmSCMatrix & | hessian | ) |

pure virtual

Calculate an approximate hessian and place the result in ``hessian''.

Implemented in sc::CartMolecularCoor, sc::RedundMolecularCoor, and 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::CartMolecularCoor, sc::RedundMolecularCoor, and 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::CartMolecularCoor, sc::RedundMolecularCoor, sc::SymmMolecularCoor, and 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_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::CartMolecularCoor, and 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::CartMolecularCoor, and 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::CartMolecularCoor, and 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::CartMolecularCoor, and sc::IntMolecularCoor.

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::CartMolecularCoor, and sc::IntMolecularCoor.

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

- coor.h