Main Page | Class Hierarchy | Compound List | File List | Compound Members | Related Pages

sc::MolecularEnergy Class Reference

The MolecularEnergy abstract class inherits from the Function class. More...

#include <energy.h>

Inheritance diagram for sc::MolecularEnergy:

sc::Function sc::SavableState sc::Compute sc::DescribedClass sc::RefCount sc::Identity sc::Wavefunction sc::MBPT2 sc::OneBodyWavefunction sc::PsiWavefunction sc::SCF sc::PsiCCSD sc::PsiCCSD_T sc::PsiSCF sc::CLSCF sc::HSOSSCF sc::UnrestrictedSCF sc::PsiCLHF sc::PsiHSOSHF sc::PsiUHF List of all members.

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.

MolecularEnergyoperator= (const MolecularEnergy &)
virtual double energy ()
 A wrapper around value();.

virtual Ref< Moleculemolecule () 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< MolecularCoormolecularcoor ()
virtual void symmetry_changed ()
 Call this if you have changed the molecular symmetry of the molecule contained by this MolecularEnergy.

Ref< NonlinearTransformchange_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< PointGroupinitial_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, sc::PsiWavefunction, sc::PsiSCF, sc::PsiCCSD, sc::PsiCCSD_T, sc::CLHF, sc::CLSCF, sc::HSOSHF, sc::HSOSSCF, sc::SCF, sc::UnrestrictedSCF, sc::OneBodyWavefunction, 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.


The documentation for this class was generated from the following file:
Generated at Sat Nov 1 15:17:05 2003 for MPQC 2.1.5 using the documentation package Doxygen 1.3.2.