NAME
sc::MolecularEnergy - The MolecularEnergy abstract class inherits from the Function class.
SYNOPSIS
#include <energy.h>
Inherits sc::Function.
Inherited by sc::SumMolecularEnergy, sc::TaylorMolecularEnergy, and sc::Wavefunction.
Public Member Functions
MolecularEnergy (const MolecularEnergy &)
MolecularEnergy (const Ref< KeyVal > &)
The KeyVal constructor. MolecularEnergy (StateIn &)
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. void set_checkpoint ()
Set up checkpointing. void set_checkpoint_file (const char *)
void set_checkpoint_freq (int freq)
bool if_to_checkpoint () const
Check if need to checkpoint. const char * checkpoint_file () const
int checkpoint_freq () const
MolecularEnergy & operator= (const MolecularEnergy &)
virtual double energy ()
A wrapper around value();. virtual Ref< Molecule > molecule () const
virtual RefSCDimension moldim () const
void guess_hessian (RefSymmSCMatrix &)
Compute a quick, approximate hessian. RefSymmSCMatrix inverse_hessian (RefSymmSCMatrix &)
RefSymmSCMatrix hessian ()
If a molecule hessian object is given, it will be used to provide a hessian. int hessian_implemented () const
void set_x (const RefSCVector &)
Set and retrieve the coordinate values. RefSCVector get_cartesian_x ()
Return the cartesian coordinates. RefSCVector get_cartesian_gradient ()
Return the cartesian gradient. RefSymmSCMatrix get_cartesian_hessian ()
Return the cartesian hessian. Ref< MolecularCoor > molecularcoor ()
virtual void symmetry_changed ()
Call this if you have changed the molecular symmetry of the molecule contained by this MolecularEnergy. Ref< NonlinearTransform > change_coordinates ()
An optimizer can call change coordinates periodically to give the function an opportunity to change its coordinate system. void print_natom_3 (const RefSCVector &, const char *t=0, std::ostream &o=ExEnv::out0()) const
Nicely print n x 3 data that are stored in a vector. void print_natom_3 (double **, const char *t=0, std::ostream &o=ExEnv::out0()) const
void print_natom_3 (double *, const char *t=0, std::ostream &o=ExEnv::out0()) const
virtual void print (std::ostream &=ExEnv::out0()) const
Print information about the object.
Protected Member Functions
void failure (const char *)
virtual void set_energy (double)
This is just a wrapper around set_value(). virtual void set_gradient (RefSCVector &)
These are passed gradients and hessian in cartesian coordinates. virtual void set_hessian (RefSymmSCMatrix &)
void x_to_molecule ()
void molecule_to_x ()
Protected Attributes
Ref< PointGroup > initial_pg_
int print_molecule_when_changed_
Additional Inherited Members
Detailed Description
The MolecularEnergy abstract class inherits from the Function class.
It computes the energy of the molecule as a function of the geometry. The coordinate system used can be either internal or cartesian.
Constructor & Destructor Documentation
sc::MolecularEnergy::MolecularEnergy (const Ref< KeyVal > &)
The KeyVal constructor.
molecule-
A Molecule object. There is no default.
coor-
A MolecularCoor object that describes the coordinates. If this is not given cartesian coordinates will be used. For convenience, two keywords needed by the MolecularCoor object are automatically provided: natom3 and matrixkit.
value_accuracy-
Sets the accuracy to which values are computed. The default is 1.0e-6 atomic units.
gradient_accuracy-
Sets the accuracy to which gradients are computed. The default is 1.0e-6 atomic units.
hessian_accuracy-
Sets the accuracy to which hessians are computed. The default is 1.0e-4 atomic units.
hessian-
Specifies a MolecularHessian object that is used to compute the hessian. If this MolecularEnergy specialization does not provide a hessian of its own, and a hessian is needed, then this keyword must be specified.
guess_hessian-
Specifies a MolecularHessian object that is used to compute a guess hessian. Guess hessians are used to improve the rate of convergence of optimizations. If this keyword is not specified, and a MolecularCoor object is given by
coor, then the guess hessian is obtained from the MolecularCoor object. If neither this norcoorare given, then Function::guess_hessian is used, which returns a unit matrix.
print_molecule_when_changed-
If true, then whenever the molecule's coordinates are updated they will be printed. The default is true.
checkpoint-
If true, then this object will be checkpointed during its evaluation. Not all implementations of MolecularEnergy support checkpointing. The default is false.
checkpoint_file-
Specifies the name of the file into which this object will be checkpointed. Default is '<inpubasename>.ckpt', where '<inputbasename>' is the name of the input file without '.in'.
checkpoint_freq-
Specifies how often this object to be checkpointed. Only matters for objects which are computed iteratively. Default is 1.
Member Function Documentation
Ref< NonlinearTransform > sc::MolecularEnergy::change_coordinates () [virtual]
An optimizer can call change coordinates periodically to give the function an opportunity to change its coordinate system. A return value of 0 means the coordinates were not changed. Otherwise, a transform object to the new coordinate system is return. The function object applies the transform to any objects it contains. This will obsolete the function data.
Reimplemented from sc::Function.
void sc::MolecularEnergy::guess_hessian (RefSymmSCMatrix &) [virtual]
Compute a quick, approximate hessian.
Reimplemented from sc::Function.
RefSymmSCMatrix sc::MolecularEnergy::hessian () [virtual]
If a molecule hessian object is given, it will be used to provide a hessian.
Reimplemented from sc::Function.
int sc::MolecularEnergy::hessian_implemented () const [virtual]
Reimplemented from sc::Function.
RefSymmSCMatrix sc::MolecularEnergy::inverse_hessian (RefSymmSCMatrix &) [virtual]
Reimplemented from sc::Function.
virtual Ref< Molecule > sc::MolecularEnergy::molecule () const [virtual]
Reimplemented in sc::Wavefunction.
virtual void sc::MolecularEnergy::print (std::ostream & = ExEnv::out0()) const [virtual]
Print information about the object.
Reimplemented from sc::Function.
Reimplemented in sc::TaylorMolecularEnergy, sc::Wavefunction, sc::CLKS, sc::HSOSKS, sc::UKS, sc::MBPT2, sc::MBPT2_R12, sc::PsiWavefunction, sc::CLHF, sc::CLSCF, sc::HSOSHF, sc::HSOSSCF, sc::OSSHF, sc::OSSSCF, sc::SCF, sc::TCHF, sc::TCSCF, sc::UHF, sc::UnrestrictedSCF, and sc::OneBodyWavefunction.
void sc::MolecularEnergy::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::Function.
Reimplemented in sc::SumMolecularEnergy, sc::TaylorMolecularEnergy, sc::CLKS, sc::HSOSKS, sc::UKS, sc::MBPT2, sc::MP2BasisExtrap, sc::MBPT2_R12, sc::PsiWavefunction, sc::PsiSCF, sc::PsiCCSD, sc::PsiCCSD_T, sc::CLHF, sc::CLSCF, sc::HSOSHF, sc::HSOSSCF, sc::OSSHF, sc::OSSSCF, sc::SCF, sc::TCHF, sc::TCSCF, sc::UHF, sc::UnrestrictedSCF, sc::ExtendedHuckelWfn, sc::OneBodyWavefunction, sc::HCoreWfn, and sc::Wavefunction.
virtual void sc::MolecularEnergy::set_gradient (RefSCVector &) [protected], [virtual]
These are passed gradients and hessian in cartesian coordinates. The gradient and hessian in internal coordinates are computed.
Reimplemented from sc::Function.
virtual void sc::MolecularEnergy::set_hessian (RefSymmSCMatrix &) [protected], [virtual]
Reimplemented from sc::Function.
void sc::MolecularEnergy::set_x (const RefSCVector &) [virtual]
Set and retrieve the coordinate values.
Reimplemented from sc::Function.
Reimplemented in sc::SumMolecularEnergy.
virtual void sc::MolecularEnergy::symmetry_changed () [virtual]
Call this if you have changed the molecular symmetry of the molecule contained by this MolecularEnergy.
Reimplemented in sc::MBPT2, sc::CLSCF, sc::HSOSSCF, sc::OSSSCF, sc::SCF, sc::TCSCF, sc::UnrestrictedSCF, sc::OneBodyWavefunction, and sc::Wavefunction.
Author
Generated automatically by Doxygen for MPQC from the source code.