.TH "sc::IntMolecularCoor" 3 "Sun Oct 4 2020" "Version 2.3.1" "MPQC" \" -*- nroff -*- .ad l .nh .SH NAME sc::IntMolecularCoor \- The \fBIntMolecularCoor\fP abstract class describes a molecule's coordinates in terms of internal coordinates\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBsc::MolecularCoor\fP\&. .PP Inherited by \fBsc::RedundMolecularCoor\fP, and \fBsc::SymmMolecularCoor\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBIntMolecularCoor\fP (\fBStateIn\fP &)" .br .ti -1c .RI "\fBIntMolecularCoor\fP (\fBRef\fP< \fBMolecule\fP > &mol)" .br .ti -1c .RI "\fBIntMolecularCoor\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 "virtual void \fBform_coordinates\fP (int keep_variable=0)=0" .br .RI "Actually form the variable and constant internal coordinates from the simple internal coordinates\&. " .ti -1c .RI "virtual int \fBall_to_cartesian\fP (const \fBRef\fP< \fBMolecule\fP > &, \fBRefSCVector\fP &internal)" .br .RI "Like to_cartesians(), except all internal coordinates are considered, not just the variable ones\&. " .ti -1c .RI "virtual int \fBall_to_internal\fP (const \fBRef\fP< \fBMolecule\fP > &, \fBRefSCVector\fP &internal)" .br .RI "Like \fBto_internal()\fP, except all internal coordinates are considered, not just the variable ones\&. " .ti -1c .RI "virtual \fBRefSCDimension\fP \fBdim\fP ()" .br .RI "These implement the virtual functions inherited from \fBMolecularCoor\fP\&. " .ti -1c .RI "virtual int \fBto_cartesian\fP (const \fBRef\fP< \fBMolecule\fP > &, const \fBRefSCVector\fP &internal)" .br .ti -1c .RI "virtual int \fBto_internal\fP (\fBRefSCVector\fP &internal)" .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)" .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)" .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 &cart, \fBRefSymmSCMatrix\fP &internal)" .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 &cart)" .br .RI "Convert the Cartesian coordinate Hessian \fCcartesian'' to internal coordinates and copy the result to\fPinternal''\&. " .ti -1c .RI "virtual void \fBprint\fP (std::ostream &=\fBExEnv::out0\fP()) const" .br .RI "Print the coordinate\&. " .ti -1c .RI "virtual void \fBprint_simples\fP (std::ostream &=\fBExEnv::out0\fP()) const" .br .ti -1c .RI "virtual void \fBprint_variable\fP (std::ostream &=\fBExEnv::out0\fP()) const" .br .ti -1c .RI "virtual void \fBprint_constant\fP (std::ostream &=\fBExEnv::out0\fP()) const" .br .ti -1c .RI "int \fBnconstrained\fP ()" .br .RI "Returns the number of constrained coordinates\&. " .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "void \fBform_K_matrix\fP (\fBRefSCDimension\fP &dredundant, \fBRefSCDimension\fP &dfixed, \fBRefSCMatrix\fP &K, int *&is_totally_symmetric)" .br .ti -1c .RI "virtual void \fBinit\fP ()" .br .RI "This is called by the constructors of classes derived from \fBIntMolecularCoor\fP\&. " .ti -1c .RI "virtual void \fBnew_coords\fP ()" .br .RI "Allocates memory for the \fBSetIntCoor\fP's used to store the simple and internal coordinates\&. " .ti -1c .RI "virtual void \fBread_keyval\fP (const \fBRef\fP< \fBKeyVal\fP > &)" .br .RI "Reads the \fBKeyVal\fP input\&. " .in -1c .SS "Protected Attributes" .in +1c .ti -1c .RI "\fBRef\fP< \fBIntCoorGen\fP > \fBgenerator_\fP" .br .ti -1c .RI "\fBRefSCDimension\fP \fBdim_\fP" .br .ti -1c .RI "\fBRefSCDimension\fP \fBdvc_\fP" .br .ti -1c .RI "\fBRef\fP< \fBSetIntCoor\fP > \fBvariable_\fP" .br .ti -1c .RI "\fBRef\fP< \fBSetIntCoor\fP > \fBconstant_\fP" .br .ti -1c .RI "\fBRef\fP< \fBSetIntCoor\fP > \fBfixed_\fP" .br .ti -1c .RI "\fBRef\fP< \fBSetIntCoor\fP > \fBwatched_\fP" .br .ti -1c .RI "\fBRef\fP< \fBIntCoor\fP > \fBfollowed_\fP" .br .ti -1c .RI "\fBRef\fP< \fBSetIntCoor\fP > \fBbonds_\fP" .br .ti -1c .RI "\fBRef\fP< \fBSetIntCoor\fP > \fBbends_\fP" .br .ti -1c .RI "\fBRef\fP< \fBSetIntCoor\fP > \fBtors_\fP" .br .ti -1c .RI "\fBRef\fP< \fBSetIntCoor\fP > \fBouts_\fP" .br .ti -1c .RI "\fBRef\fP< \fBSetIntCoor\fP > \fBextras_\fP" .br .ti -1c .RI "\fBRef\fP< \fBSetIntCoor\fP > \fBall_\fP" .br .ti -1c .RI "int \fBupdate_bmat_\fP" .br .ti -1c .RI "int \fBonly_totally_symmetric_\fP" .br .ti -1c .RI "double \fBsymmetry_tolerance_\fP" .br .ti -1c .RI "double \fBsimple_tolerance_\fP" .br .ti -1c .RI "double \fBcoordinate_tolerance_\fP" .br .ti -1c .RI "double \fBcartesian_tolerance_\fP" .br .ti -1c .RI "double \fBscale_bonds_\fP" .br .ti -1c .RI "double \fBscale_bends_\fP" .br .ti -1c .RI "double \fBscale_tors_\fP" .br .ti -1c .RI "double \fBscale_outs_\fP" .br .ti -1c .RI "int \fBnextra_bonds_\fP" .br .ti -1c .RI "int * \fBextra_bonds_\fP" .br .ti -1c .RI "int \fBgiven_fixed_values_\fP" .br .ti -1c .RI "int \fBdecouple_bonds_\fP" .br .ti -1c .RI "int \fBdecouple_bends_\fP" .br .ti -1c .RI "int \fBmax_update_steps_\fP" .br .ti -1c .RI "double \fBmax_update_disp_\fP" .br .ti -1c .RI "int \fBform_print_simples_\fP" .br .ti -1c .RI "int \fBform_print_variable_\fP" .br .ti -1c .RI "int \fBform_print_constant_\fP" .br .ti -1c .RI "int \fBform_print_molecule_\fP" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP The \fBIntMolecularCoor\fP abstract class describes a molecule's coordinates in terms of internal coordinates\&. .SH "Constructor & Destructor Documentation" .PP .SS "sc::IntMolecularCoor::IntMolecularCoor (const \fBRef\fP< \fBKeyVal\fP > &)" .PP The \fBKeyVal\fP constructor\&. .IP "\fB\fCvariable\fP\fP" 1c Gives a \fBSetIntCoor\fP object that specifies the internal coordinates that can be varied\&. If this is not given, the variable coordinates will be generated\&. .PP .IP "\fB\fCfollowed\fP\fP" 1c Gives a \fBIntCoor\fP object that specifies a coordinate to used as the first coordinate in the variable coordinate list\&. The remaining coordinates will be automatically generated\&. The default is no followed coordinate\&. This option is usually used to set the initial search direction for a transition state optimization, where it is used in conjunction with the mode_following keyword read by the \fBEFCOpt\fP class\&. .PP .IP "\fB\fCfixed\fP\fP" 1c Gives a \fBSetIntCoor\fP object that specifies the internal coordinates that will be fixed\&. The default is no fixed coordinates\&. .PP .IP "\fB\fCwatched\fP\fP" 1c Gives a \fBSetIntCoor\fP object that specifies internal coordinates that will be printed out whenever the coordinates are changed\&. The default is none\&. .PP .IP "\fB\fChave_fixed_values\fP\fP" 1c If true, then values for the fixed coordinates must be given in fixed and an attempt will be made to displace the initial geometry to the given fixed values\&. The default is false\&. .PP .IP "\fB\fCextra_bonds\fP\fP" 1c This is only read if the generator keyword is not given\&. It is a vector of atom numbers, where elements $(i-1)\times 2 + 1$ and $i\times 2$ specify the atoms which are bound in extra bond $i$\&. The extra_bonds keyword should only be needed for weakly interacting fragments, otherwise all the needed bonds will be found\&. .PP .IP "\fB\fCgenerator\fP\fP" 1c Specifies an \fBIntCoorGen\fP object that creates simple, redundant internal coordinates\&. If this keyword is not given, then a vector giving extra bonds to be added is read from extra_bonds and this is used to create an \fBIntCoorGen\fP object\&. .PP .IP "\fB\fCdecouple_bonds\fP\fP" 1c Automatically generated internal coordinates are linear combinations of possibly any mix of simple internal coordinates\&. If decouple_bonds is true, an attempt will be made to form some of the internal coordinates from just stretch simple coordinates\&. The default is false\&. .PP .IP "\fB\fCdecouple_bends\fP\fP" 1c This is like decouple_bonds except it applies to the bend-like coordinates\&. The default is false\&. .PP .IP "\fB\fCmax_update_disp\fP\fP" 1c The maximum displacement to be used in the displacement to fixed internal coordinates values\&. Larger displacements will be broken into several smaller displacements and new coordinates will be formed for each of these displacments\&. This is only used when fixed and have_fixed_values are given\&. The default is 0\&.5\&. .PP .IP "\fB\fCmax_update_steps\fP\fP" 1c The maximum number of steps permitted to convert internal coordinate displacements to cartesian coordinate displacements\&. The default is 100\&. .PP .IP "\fB\fCupdate_bmat\fP\fP" 1c Displacements in internal coordinates are converted to a cartesian displacements iteratively\&. If there are large changes in the cartesian coordinates during conversion, then recompute the $B$ matrix, which is using to do the conversion\&. The default is false\&. .PP .IP "\fB\fConly_totally_symmetric\fP\fP" 1c If a simple test reveals that an internal coordinate is not totally symmetric, then it will not be added to the internal coordinate list\&. The default is true\&. .PP .IP "\fB\fCsimple_tolerance\fP\fP" 1c The internal coordinates are formed as linear combinations of simple, redundant internal coordinates\&. Coordinates with coefficients smaller then simple_tolerance will be omitted\&. The default is 1\&.0e-3\&. .PP .IP "\fB\fCcartesian_tolerance\fP\fP" 1c The tolerance for conversion of internal coordinate displacements to cartesian displacements\&. The default is 1\&.0e-12\&. .PP .IP "\fB\fCform:print_simple\fP\fP" 1c Print the simple internal coordinates\&. The default is false\&. .PP .IP "\fB\fCform:print_variable\fP\fP" 1c Print the variable internal coordinates\&. The default is false\&. .PP .IP "\fB\fCform:print_constant\fP\fP" 1c Print the constant internal coordinates\&. The default is false\&. .PP .IP "\fB\fCform:print_molecule\fP\fP" 1c Print the molecule when forming coordinates\&. The default is false\&. .PP .IP "\fB\fCscale_bonds\fP\fP" 1c Obsolete\&. The default value is 1\&.0\&. .PP .IP "\fB\fCscale_bends\fP\fP" 1c Obsolete\&. The default value is 1\&.0\&. .PP .IP "\fB\fCscale_tors\fP\fP" 1c Obsolete\&. The default value is 1\&.0\&. .PP .IP "\fB\fCscale_outs\fP\fP" 1c Obsolete\&. The default value is 1\&.0\&. .PP .IP "\fB\fCsymmetry_tolerance\fP\fP" 1c Obsolete\&. The default is 1\&.0e-5\&. .PP .IP "\fB\fCcoordinate_tolerance\fP\fP" 1c Obsolete\&. The default is 1\&.0e-7\&. .PP .PP .SH "Member Function Documentation" .PP .SS "virtual void sc::IntMolecularCoor::init ()\fC [protected]\fP, \fC [virtual]\fP" .PP This is called by the constructors of classes derived from \fBIntMolecularCoor\fP\&. It initialized the lists of simple internal coordinates, and then calls the \fBform_coordinates()\fP member\&. .PP Reimplemented in \fBsc::SymmMolecularCoor\fP\&. .SS "void sc::IntMolecularCoor::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::MolecularCoor\fP\&. .PP Reimplemented in \fBsc::RedundMolecularCoor\fP, and \fBsc::SymmMolecularCoor\fP\&. .SS "virtual int sc::IntMolecularCoor::to_cartesian (\fBRefSCVector\fP & cartesian, \fBRefSCVector\fP & internal)\fC [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 Implements \fBsc::MolecularCoor\fP\&. .SS "virtual int sc::IntMolecularCoor::to_cartesian (\fBRefSymmSCMatrix\fP & cartesian, \fBRefSymmSCMatrix\fP & internal)\fC [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 Implements \fBsc::MolecularCoor\fP\&. .SS "virtual int sc::IntMolecularCoor::to_internal (\fBRefSCVector\fP & internal)\fC [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 Implements \fBsc::MolecularCoor\fP\&. .SS "virtual int sc::IntMolecularCoor::to_internal (\fBRefSCVector\fP & internal, \fBRefSCVector\fP & cartesian)\fC [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 Implements \fBsc::MolecularCoor\fP\&. .SS "virtual int sc::IntMolecularCoor::to_internal (\fBRefSymmSCMatrix\fP & internal, \fBRefSymmSCMatrix\fP & cartesian)\fC [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 Implements \fBsc::MolecularCoor\fP\&. .SH "Author" .PP Generated automatically by Doxygen for MPQC from the source code\&.