sc_MolecularCoor3
The molecularcoor abstract class describes the coordinate system used to describe a molecule.
Usage
Inherits sc::SavableState.
Inherited by
sc::CartMolecularCoor,
and
sc::IntMolecularCoor.
Public Member Functions
MolecularCoor (Ref<
Molecule
>
&)
MolecularCoor (StateIn
&)
MolecularCoor (const
Ref<
KeyVal
>
&)
Returns a
smart
reference
to
an
SCDimension
equal
to
the
number
of
atoms
in
the
molecule
times
3.
Ref<
Molecule
>
molecule
()
const
virtual RefSCDimension
dim
()=0
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''.
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
Protected Attributes
RefSCDimension dnatom3_
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
Moleculeobject. There is no default.
debug-
An integer which, if nonzero, will cause extra output.
matrixkit-
A
SCMatrixKitobject. It is usually unnecessary to give this keyword.
natom3-
An
SCDimensionobject 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::IntMolecularCoor, and sc::CartMolecularCoor.
virtual void sc::MolecularCoor::guess_hessian (RefSymmSCMatrix & hessian) [pure virtual]
Calculate an approximate hessian and place the result in ``hessian''.
Implemented in sc::SymmMolecularCoor, sc::RedundMolecularCoor, and sc::CartMolecularCoor.
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, sc::RedundMolecularCoor, and sc::CartMolecularCoor.
virtual int sc::MolecularCoor::nconstrained () [virtual]
Returns the number of constrained coordinates.
Reimplemented in sc::IntMolecularCoor.
virtual void sc::MolecularCoor::print (std::ostream & = ExEnv::out0()) const [pure virtual]
Print the coordinate.
Reimplemented from sc::DescribedClass.
Implemented in sc::IntMolecularCoor, sc::SymmMolecularCoor, and sc::CartMolecularCoor.
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, sc::SymmMolecularCoor, sc::RedundMolecularCoor, and sc::CartMolecularCoor.
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::IntMolecularCoor, and sc::CartMolecularCoor.
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::IntMolecularCoor, and sc::CartMolecularCoor.
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, and sc::CartMolecularCoor.
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, and sc::CartMolecularCoor.
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::IntMolecularCoor, and sc::CartMolecularCoor.
History
- Debian 12 (Bookworm): the text shown here
- Debian 11 (Bullseye)
- Debian 6.0 (Squeeze)
- Debian 5.0 (Lenny)
- Debian 4.0 (Etch)
- Debian 3.1 (Sarge)