#include <energy.h>
Inheritance diagram for sc::MolecularEnergy:
Public Methods | |
MolecularEnergy (const MolecularEnergy &) | |
MolecularEnergy (const Ref< KeyVal > &) | |
The KeyVal constructor. More... | |
MolecularEnergy (StateIn &) | |
~MolecularEnergy () | |
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. More... | |
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. More... | |
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 Methods | |
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. More... | |
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.
|
|
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. |
|
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::MBPT2. |
|
These are passed gradients and hessian in cartesian coordinates. The gradient and hessian in internal coordinates are computed. Reimplemented from sc::Function. |