#include <energy.h>

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_ |
It computes the energy of the molecule as a function of the geometry. The coordinate system used can be either internal or cartesian.
The KeyVal constructor.
molecule
coor
value_accuracy
gradient_accuracy
hessian_accuracy
hessian
guess_hessiancoor, then the guess hessian is obtained from the MolecularCoor object. If neither this nor coor are given, then Function::guess_hessian is used, which returns a unit matrix.
print_molecule_when_changed
checkpointMolecularEnergy support checkpointing. The default is false.
checkpoint_file
checkpoint_freq
| 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.
| 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::CLKS, sc::HSOSKS, sc::UKS, sc::MBPT2, sc::MBPT2_R12, sc::PsiWavefunction, sc::PsiSCF, sc::PsiCCSD, sc::PsiCCSD_T, sc::CLHF, sc::CLSCF, sc::HSOSHF, sc::HSOSSCF, sc::SCF, sc::UHF, sc::UnrestrictedSCF, sc::OneBodyWavefunction, and sc::Wavefunction.
| RefSymmSCMatrix sc::MolecularEnergy::hessian | ( | ) | [virtual] |
If a molecule hessian object is given, it will be used to provide a hessian.
Reimplemented from sc::Function.
| 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::SCF, sc::UnrestrictedSCF, sc::OneBodyWavefunction, and sc::Wavefunction.
| 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.