.TH "sc::FinDispMolecularHessian" 3 "Sun Oct 4 2020" "Version 2.3.1" "MPQC" \" -*- nroff -*- .ad l .nh .SH NAME sc::FinDispMolecularHessian \- Computes the molecular hessian by finite displacements of gradients\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBsc::MolecularHessian\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBFinDispMolecularHessian\fP (const \fBRef\fP< \fBMolecularEnergy\fP > &)" .br .ti -1c .RI "\fBFinDispMolecularHessian\fP (const \fBRef\fP< \fBKeyVal\fP > &)" .br .RI "The \fBFinDispMolecularHessian\fP \fBKeyVal\fP constructor is used to generate a \fBFinDispMolecularHessian\fP object from the input\&. " .ti -1c .RI "\fBFinDispMolecularHessian\fP (\fBStateIn\fP &)" .br .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 "\fBRefSymmSCMatrix\fP \fBcompute_hessian_from_gradients\fP ()" .br .RI "These members are used to compute a cartesian hessian from gradients at finite displacements\&. " .ti -1c .RI "int \fBndisplace\fP () const" .br .ti -1c .RI "int \fBndisplacements_done\fP () const" .br .ti -1c .RI "\fBRefSCMatrix\fP \fBdisplacements\fP (int irrep) const" .br .ti -1c .RI "void \fBdisplace\fP (int disp)" .br .ti -1c .RI "void \fBoriginal_geometry\fP ()" .br .ti -1c .RI "void \fBset_gradient\fP (int disp, const \fBRefSCVector\fP &grad)" .br .ti -1c .RI "void \fBcheckpoint_displacements\fP (\fBStateOut\fP &)" .br .ti -1c .RI "void \fBrestore_displacements\fP (\fBStateIn\fP &)" .br .ti -1c .RI "\fBRefSymmSCMatrix\fP \fBcartesian_hessian\fP ()" .br .RI "This returns the cartesian hessian\&. " .ti -1c .RI "void \fBset_checkpoint\fP (int c)" .br .RI "Set checkpoint option\&. " .ti -1c .RI "int \fBcheckpoint\fP () const" .br .RI "Return the current value of the checkpoint option\&. " .ti -1c .RI "void \fBset_energy\fP (const \fBRef\fP< \fBMolecularEnergy\fP > &\fBenergy\fP)" .br .RI "Some \fBMolecularHessian\fP specializations require a molecular energy object\&. " .ti -1c .RI "\fBMolecularEnergy\fP * \fBenergy\fP () const" .br .RI "This returns a \fBMolecularEnergy\fP object, if used by this specialization\&. " .ti -1c .RI "\fBRef\fP< \fBSCMatrixKit\fP > \fBmatrixkit\fP () const" .br .ti -1c .RI "\fBRefSCDimension\fP \fBd3natom\fP () const" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "void \fBget_disp\fP (int disp, int &irrep, int &index, double &coef)" .br .ti -1c .RI "void \fBdo_hess_for_irrep\fP (int irrep, const \fBRefSymmSCMatrix\fP &dhessian, const \fBRefSymmSCMatrix\fP &xhessian)" .br .ti -1c .RI "void \fBinit\fP ()" .br .ti -1c .RI "void \fBrestart\fP ()" .br .in -1c .SS "Protected Attributes" .in +1c .ti -1c .RI "\fBRef\fP< \fBMolecularEnergy\fP > \fBmole_\fP" .br .ti -1c .RI "\fBRef\fP< \fBPointGroup\fP > \fBdisplacement_point_group_\fP" .br .ti -1c .RI "\fBRef\fP< \fBPointGroup\fP > \fBoriginal_point_group_\fP" .br .ti -1c .RI "\fBRefSCVector\fP \fBoriginal_geometry_\fP" .br .ti -1c .RI "double \fBdisp_\fP" .br .ti -1c .RI "double \fBaccuracy_\fP" .br .ti -1c .RI "int \fBndisp_\fP" .br .ti -1c .RI "int \fBnirrep_\fP" .br .ti -1c .RI "int \fBrestart_\fP" .br .ti -1c .RI "char * \fBrestart_file_\fP" .br .ti -1c .RI "int \fBcheckpoint_\fP" .br .ti -1c .RI "char * \fBcheckpoint_file_\fP" .br .ti -1c .RI "int \fBonly_totally_symmetric_\fP" .br .ti -1c .RI "int \fBeliminate_cubic_terms_\fP" .br .ti -1c .RI "int \fBdo_null_displacement_\fP" .br .ti -1c .RI "int \fBdebug_\fP" .br .ti -1c .RI "\fBRefSCMatrix\fP \fBsymbasis_\fP" .br .ti -1c .RI "\fBRefSCVector\fP * \fBgradients_\fP" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP Computes the molecular hessian by finite displacements of gradients\&. This will use the minimum number of displacements, each in the highest possible point group\&. .SH "Constructor & Destructor Documentation" .PP .SS "sc::FinDispMolecularHessian::FinDispMolecularHessian (const \fBRef\fP< \fBKeyVal\fP > &)" .PP The \fBFinDispMolecularHessian\fP \fBKeyVal\fP constructor is used to generate a \fBFinDispMolecularHessian\fP object from the input\&. It reads the keywords below\&. .PP KeywordTypeDefaultDescription .PP \fCenergy\fP\fBMolecularEnergy\fPnoneThis gives an object which will be used to compute the gradients needed to form the hessian\&. If this is not specified, the object using \fBFinDispMolecularHessian\fP will, in some cases, fill it in appropriately\&. However, even in these cases, it may be desirable to specify this keyword\&. For example, this could be used in an optimization to compute frequencies using a lower level of theory\&. .PP \fCdebug\fPbooleanfalseIf true, print out debugging information\&. .PP \fCpoint_group\fP\fBPointGroup\fPnoneThe point group to use for generating the displacements\&. .PP \fCrestart\fPbooleantrueIf true, and a checkpoint file exists, restart from that file\&. .PP \fCrestart_file\fPstring \fIbasename\fP\fC\&.ckpt\&.hess\fPThe name of the file where checkpoint information is written to or read from\&. .PP \fCcheckpoint\fPbooleantrueIf true, checkpoint intermediate data\&. .PP \fConly_totally_symmetric\fPbooleanfalse If true, only follow totally symmetric displacments\&. The hessian will not be complete, but it has enough information to use it in a geometry optimization\&. .PP \fCeliminate_cubic_terms\fPbooleantrueIf true, then cubic terms will be eliminated\&. This requires that two displacements are done for each totally symmetric coordinate, rather than one\&. Setting this to false will reduce the accuracy, but the results will still probably be accurate enough for a geometry optimization\&. .PP \fCdo_null_displacement\fPbooleantrueRun the calculation at the given geometry as well\&. .PP \fCdisplacement\fPdouble1\&.0e-2The size of the displacement in Bohr\&. .PP \fCgradient_accuracy\fPdouble\fCdisplacement\fP / 1000The accuracy to which the gradients will be computed\&. .PP .SH "Member Function Documentation" .PP .SS "\fBRefSymmSCMatrix\fP sc::FinDispMolecularHessian::cartesian_hessian ()\fC [virtual]\fP" .PP This returns the cartesian hessian\&. If it has not yet been computed, it will be computed by finite displacements\&. .PP Implements \fBsc::MolecularHessian\fP\&. .SS "\fBMolecularEnergy\fP* sc::FinDispMolecularHessian::energy () const\fC [virtual]\fP" .PP This returns a \fBMolecularEnergy\fP object, if used by this specialization\&. Otherwise null is returned\&. .br .PP Reimplemented from \fBsc::MolecularHessian\fP\&. .SS "void sc::FinDispMolecularHessian::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\&. .SS "void sc::FinDispMolecularHessian::set_energy (const \fBRef\fP< \fBMolecularEnergy\fP > & energy)\fC [virtual]\fP" .PP Some \fBMolecularHessian\fP specializations require a molecular energy object\&. The default implementations of this ignores the argument\&. .PP Reimplemented from \fBsc::MolecularHessian\fP\&. .SH "Author" .PP Generated automatically by Doxygen for MPQC from the source code\&.