sc::MolecularCoor(3) | MPQC | sc::MolecularCoor(3) |
NAME¶
sc::MolecularCoor - The MolecularCoor abstract class describes the coordinate system used to describe a molecule.
SYNOPSIS¶
#include <coor.h>
Inherits sc::SavableState.
Inherited by sc::CartMolecularCoor, and sc::IntMolecularCoor.
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. int to_cartesian (const RefSCVector &internal)
Given a set of displaced internal coordinates, update the cartesian
coordinates of the Molecule contained herein. 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. 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''.
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 tocartesian''. virtual int to_internal
(RefSymmSCMatrix &internal, RefSymmSCMatrix
&cartesian)=0
Convert the Cartesian coordinate Hessian cartesian'' to internal coordinates
and copy the result tointernal''. 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. 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. Ref< SCMatrixKit >
matrixkit () const
Protected Attributes¶
Ref< Molecule > molecule_
RefSCDimension dnatom3_
Ref< SCMatrixKit > matrixkit_
int debug_
Additional Inherited Members¶
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::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 tocartesian''. 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 tointernal''. Only the variable internal coordinate force constants are calculated.
Implemented in sc::CartMolecularCoor, and sc::IntMolecularCoor.
Author¶
Generated automatically by Doxygen for MPQC from the source code.
Sun Oct 4 2020 | Version 2.3.1 |