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:

[legend]
Collaboration diagram for sc::MolecularEnergy:

[legend]
List of all members.

## 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...
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. 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_

## 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.

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

The documentation for this class was generated from the following file:

- energy.h