|
MPQC 2.3.1
|
The MolecularCoor abstract class describes the coordinate system used to describe a molecule. More...
#include <coor.h>


Public Member Functions | |
| MolecularCoor (Ref< Molecule > &) | |
| MolecularCoor (StateIn &) | |
| MolecularCoor (const Ref< KeyVal > &) | |
| The KeyVal constructor. | |
| 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. | |
| 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. | |
| virtual int | to_cartesian (RefSCVector &cartesian, RefSCVector &internal)=0 |
| Given a set of displaced internal coordinates, update the cartesian coordinates of the Molecule contained herein. | |
| 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''. | |
| virtual int | to_cartesian (RefSymmSCMatrix &cartesian, RefSymmSCMatrix &internal)=0 |
| Convert the internal coordinate Hessian internal'' to Cartesian
coordinates and copy the result to cartesian''. | |
| virtual int | to_internal (RefSymmSCMatrix &internal, RefSymmSCMatrix &cartesian)=0 |
| Convert the Cartesian coordinate Hessian cartesian'' to internal
coordinates and copy the result to internal''. | |
| virtual RefSymmSCMatrix | inverse_hessian (RefSymmSCMatrix &)=0 |
| Calculate an approximate hessian and place the result in ``hessian''. | |
| *Returns the number of constrained virtual coordinates int | nconstrained () |
| virtual Ref< NonlinearTransform > | change_coordinates () |
| When this is called, MoleculeCoor may select a new internal coordinate system and return a transform to it. | |
| 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. | |
| 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. | |
| virtual void | save_vbase_state (StateOut &) |
| Save the virtual bases for the object. | |
| 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. | |
| 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. | |
| 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. | |
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. | |
| static SavableState * | key_restore_state (StateIn &si, const char *keyword) |
| Like restore_state, but keyword is used to override values while restoring. | |
| 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. | |
| Protected Member Functions inherited from sc::RefCount | |
| RefCount (const RefCount &) | |
| RefCount & | operator= (const RefCount &) |
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.
The KeyVal constructor.
A Molecule object. There is no default.
An integer which, if nonzero, will cause extra output.
A SCMatrixKit object. It is usually unnecessary to give this keyword.
An SCDimension object for the dimension of the vector of cartesian coordinates. It is usually unnecessary to give this keyword.
|
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.
|
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.
|
pure virtual |
Calculate an approximate hessian and place the result in ``hessian''.
*/ virtual void guess_hessian(RefSymmSCMatrix&hessian) = 0;
/** 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.
|
pure virtual |
Print the coordinate.
Reimplemented from sc::DescribedClass.
Implemented in sc::CartMolecularCoor, sc::IntMolecularCoor, and sc::SymmMolecularCoor.
References sc::ExEnv::out0().
|
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::RedundMolecularCoor, and sc::SymmMolecularCoor.
|
pure virtual |
Given a set of displaced internal coordinates, update the cartesian coordinates of the Molecule contained herein.
This function does not change the vector ``internal''. */ int to_cartesian(const RefSCVector&internal); virtual int to_cartesian(const Ref<Molecule>&mol, const RefSCVector&internal) = 0;
/** Fill in the vector ``internal'' with the current internal coordinates. Note that this member will update the values of the variable internal coordinates. */ virtual int to_internal(RefSCVector&internal) = 0;
/** 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.
|
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.
|
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.
|
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.