.TH "sc::MolecularCoor" 3 "Sun Oct 4 2020" "Version 2.3.1" "MPQC" \" -*- nroff -*- .ad l .nh .SH NAME sc::MolecularCoor \- The \fBMolecularCoor\fP abstract class describes the coordinate system used to describe a molecule\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBsc::SavableState\fP\&. .PP Inherited by \fBsc::CartMolecularCoor\fP, and \fBsc::IntMolecularCoor\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBMolecularCoor\fP (\fBRef\fP< \fBMolecule\fP > &)" .br .ti -1c .RI "\fBMolecularCoor\fP (\fBStateIn\fP &)" .br .ti -1c .RI "\fBMolecularCoor\fP (const \fBRef\fP< \fBKeyVal\fP > &)" .br .RI "The \fBKeyVal\fP constructor\&. " .ti -1c .RI "void \fBsave_data_state\fP (\fBStateOut\fP &)" .br .RI "Save the base classes (with save_data_state) and the members in the same order that the \fBStateIn\fP CTOR initializes them\&. " .ti -1c .RI "\fBRefSCDimension\fP \fBdim_natom3\fP ()" .br .RI "Returns a smart reference to an \fBSCDimension\fP equal to the number of atoms in the molecule times 3\&. " .ti -1c .RI "\fBRef\fP< \fBMolecule\fP > \fBmolecule\fP () const" .br .RI "Returns the molecule\&. " .ti -1c .RI "virtual void \fBprint\fP (std::ostream &=\fBExEnv::out0\fP()) const =0" .br .RI "Print the coordinate\&. " .ti -1c .RI "virtual void \fBprint_simples\fP (std::ostream &=\fBExEnv::out0\fP()) const =0" .br .ti -1c .RI "virtual \fBRefSCDimension\fP \fBdim\fP ()=0" .br .RI "Returns a smart reference to an \fBSCDimension\fP equal to the number of coordinates (be they Cartesian, internal, or whatever) that are being optimized\&. " .ti -1c .RI "int \fBto_cartesian\fP (const \fBRefSCVector\fP &internal)" .br .RI "Given a set of displaced internal coordinates, update the cartesian coordinates of the \fBMolecule\fP contained herein\&. " .ti -1c .RI "virtual int \fBto_cartesian\fP (const \fBRef\fP< \fBMolecule\fP > &mol, const \fBRefSCVector\fP &internal)=0" .br .ti -1c .RI "virtual int \fBto_internal\fP (\fBRefSCVector\fP &internal)=0" .br .RI "Fill in the vector ``internal'' with the current internal coordinates\&. " .ti -1c .RI "virtual int \fBto_cartesian\fP (\fBRefSCVector\fP &cartesian, \fBRefSCVector\fP &internal)=0" .br .RI "Convert the internal coordinate gradients in ``internal'' to Cartesian coordinates and copy these Cartesian coordinate gradients to ``cartesian''\&. " .ti -1c .RI "virtual int \fBto_internal\fP (\fBRefSCVector\fP &internal, \fBRefSCVector\fP &cartesian)=0" .br .RI "Convert the Cartesian coordinate gradients in ``cartesian'' to internal coordinates and copy these internal coordinate gradients to ``internal''\&. " .ti -1c .RI "virtual int \fBto_cartesian\fP (\fBRefSymmSCMatrix\fP &cartesian, \fBRefSymmSCMatrix\fP &internal)=0" .br .RI "Convert the internal coordinate Hessian \fCinternal'' to Cartesian coordinates and copy the result to\fPcartesian''\&. " .ti -1c .RI "virtual int \fBto_internal\fP (\fBRefSymmSCMatrix\fP &internal, \fBRefSymmSCMatrix\fP &cartesian)=0" .br .RI "Convert the Cartesian coordinate Hessian \fCcartesian'' to internal coordinates and copy the result to\fPinternal''\&. " .ti -1c .RI "virtual void \fBguess_hessian\fP (\fBRefSymmSCMatrix\fP &hessian)=0" .br .RI "Calculate an approximate hessian and place the result in ``hessian''\&. " .ti -1c .RI "virtual \fBRefSymmSCMatrix\fP \fBinverse_hessian\fP (\fBRefSymmSCMatrix\fP &)=0" .br .RI "Given an Hessian, return the inverse of that hessian\&. " .ti -1c .RI "virtual int \fBnconstrained\fP ()" .br .RI "Returns the number of constrained coordinates\&. " .ti -1c .RI "virtual \fBRef\fP< \fBNonlinearTransform\fP > \fBchange_coordinates\fP ()" .br .RI "When this is called, MoleculeCoor may select a new internal coordinate system and return a transform to it\&. " .ti -1c .RI "\fBRef\fP< \fBSCMatrixKit\fP > \fBmatrixkit\fP () const" .br .in -1c .SS "Protected Attributes" .in +1c .ti -1c .RI "\fBRef\fP< \fBMolecule\fP > \fBmolecule_\fP" .br .ti -1c .RI "\fBRefSCDimension\fP \fBdnatom3_\fP" .br .ti -1c .RI "\fBRef\fP< \fBSCMatrixKit\fP > \fBmatrixkit_\fP" .br .ti -1c .RI "int \fBdebug_\fP" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP The \fBMolecularCoor\fP 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\&. .SH "Constructor & Destructor Documentation" .PP .SS "sc::MolecularCoor::MolecularCoor (const \fBRef\fP< \fBKeyVal\fP > &)" .PP The \fBKeyVal\fP constructor\&. .IP "\fB\fCmolecule\fP\fP" 1c A \fBMolecule\fP object\&. There is no default\&. .PP .IP "\fB\fCdebug\fP\fP" 1c An integer which, if nonzero, will cause extra output\&. .PP .IP "\fB\fCmatrixkit\fP\fP" 1c A \fBSCMatrixKit\fP object\&. It is usually unnecessary to give this keyword\&. .PP .IP "\fB\fCnatom3\fP\fP" 1c An \fBSCDimension\fP object for the dimension of the vector of cartesian coordinates\&. It is usually unnecessary to give this keyword\&. .PP .PP .SH "Member Function Documentation" .PP .SS "virtual \fBRef\fP<\fBNonlinearTransform\fP> sc::MolecularCoor::change_coordinates ()\fC [virtual]\fP" .PP 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 \fBIdentityTransform\fP\&. .PP Reimplemented in \fBsc::SymmMolecularCoor\fP\&. .SS "virtual \fBRefSymmSCMatrix\fP sc::MolecularCoor::inverse_hessian (\fBRefSymmSCMatrix\fP &)\fC [pure virtual]\fP" .PP Given an Hessian, return the inverse of that hessian\&. For singular matrices this should return the generalized inverse\&. .PP Implemented in \fBsc::CartMolecularCoor\fP, \fBsc::RedundMolecularCoor\fP, and \fBsc::SymmMolecularCoor\fP\&. .SS "void sc::MolecularCoor::save_data_state (\fBStateOut\fP &)\fC [virtual]\fP" .PP Save the base classes (with save_data_state) and the members in the same order that the \fBStateIn\fP CTOR initializes them\&. This must be implemented by the derived class if the class has data\&. .PP Reimplemented from \fBsc::SavableState\fP\&. .PP Reimplemented in \fBsc::CartMolecularCoor\fP, \fBsc::RedundMolecularCoor\fP, \fBsc::SymmMolecularCoor\fP, and \fBsc::IntMolecularCoor\fP\&. .SS "int sc::MolecularCoor::to_cartesian (const \fBRefSCVector\fP & internal)" .PP Given a set of displaced internal coordinates, update the cartesian coordinates of the \fBMolecule\fP contained herein\&. This function does not change the vector ``internal''\&. .SS "virtual int sc::MolecularCoor::to_cartesian (\fBRefSCVector\fP & cartesian, \fBRefSCVector\fP & internal)\fC [pure virtual]\fP" .PP 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\&. .PP Implemented in \fBsc::CartMolecularCoor\fP, and \fBsc::IntMolecularCoor\fP\&. .SS "virtual int sc::MolecularCoor::to_cartesian (\fBRefSymmSCMatrix\fP & cartesian, \fBRefSymmSCMatrix\fP & internal)\fC [pure virtual]\fP" .PP Convert the internal coordinate Hessian \fCinternal'' to Cartesian coordinates and copy the result to\fPcartesian''\&. Only the variable internal coordinate force constants are transformed\&. .PP Implemented in \fBsc::CartMolecularCoor\fP, and \fBsc::IntMolecularCoor\fP\&. .SS "virtual int sc::MolecularCoor::to_internal (\fBRefSCVector\fP & internal)\fC [pure virtual]\fP" .PP Fill in the vector ``internal'' with the current internal coordinates\&. Note that this member will update the values of the variable internal coordinates\&. .PP Implemented in \fBsc::CartMolecularCoor\fP, and \fBsc::IntMolecularCoor\fP\&. .SS "virtual int sc::MolecularCoor::to_internal (\fBRefSCVector\fP & internal, \fBRefSCVector\fP & cartesian)\fC [pure virtual]\fP" .PP 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\&. .PP Implemented in \fBsc::CartMolecularCoor\fP, and \fBsc::IntMolecularCoor\fP\&. .SS "virtual int sc::MolecularCoor::to_internal (\fBRefSymmSCMatrix\fP & internal, \fBRefSymmSCMatrix\fP & cartesian)\fC [pure virtual]\fP" .PP Convert the Cartesian coordinate Hessian \fCcartesian'' to internal coordinates and copy the result to\fPinternal''\&. Only the variable internal coordinate force constants are calculated\&. .PP Implemented in \fBsc::CartMolecularCoor\fP, and \fBsc::IntMolecularCoor\fP\&. .SH "Author" .PP Generated automatically by Doxygen for MPQC from the source code\&.