sc::MolecularEnergy(3)

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 Methods
MolecularEnergy (const MolecularEnergy &)
MolecularEnergy (const Ref< KeyVal > &)
The KeyVal constructor.
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.
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 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.
virtual void set_hessian (RefSymmSCMatrix &)
void x_to_molecule ()
void molecule_to_x ()

  Protected Attributes
Ref< PointGroup > initial_pg_
int print_molecule_when_changed_

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.

print_molecule_when_changed
     If true, then whenever the molecule's coordinates are updated they will be printed. The default is true.

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::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::MBPT2.

  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.

AUTHOR

Generated automatically by Doxygen for MPQC from the source code.