# sc::MolecularHessian Class Reference

MolecularHessian is an abstract class that computes a molecule's second derivatives of the energy with respect to changes in the nuclear coordinates. More...

`#include <hess.h>`

Inheritance diagram for sc::MolecularHessian:

List of all members.

## Public Member Functions

| MolecularHessian (const Ref< KeyVal > &)
| The MolecularHessian KeyVal constructor is used to generate a MolecularHessian derivative object from the input.
| MolecularHessian (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.
RefSCDimension | d3natom ()
Ref< SCMatrixKit > | matrixkit () const
virtual RefSymmSCMatrix | cartesian_hessian ()=0
| Return the cartesian hessian.
virtual void | set_energy (const Ref< MolecularEnergy > &energy)
| Some MolecularHessian specializations require a molecular energy object.
virtual MolecularEnergy * | energy () const
| This returns a MolecularEnergy object, if used by this specialization.

## Static Public Member Functions

static RefSCMatrix | cartesian_to_symmetry (const Ref< Molecule > &m, Ref< PointGroup > pg=0, Ref< SCMatrixKit > kit=0)
| Find transformation matrix from cartesian to symmetry coordinates.
static void | write_cartesian_hessian (const char *filename, const Ref< Molecule > &m, const RefSymmSCMatrix &hess)
| Write the hessian in a simple text format.
static void | read_cartesian_hessian (const char *filename, const Ref< Molecule > &m, const RefSymmSCMatrix &hess)
| Read the hessian from a simple text format.

## Protected Attributes

Ref< Molecule > | mol_
RefSCDimension | d3natom_
Ref< SCMatrixKit > | matrixkit_

## Detailed Description

MolecularHessian is an abstract class that computes a molecule's second derivatives of the energy with respect to changes in the nuclear coordinates.

## Constructor & Destructor Documentation

sc::MolecularHessian::MolecularHessian | ( | const Ref< KeyVal > & |  | ) |

The MolecularHessian KeyVal constructor is used to generate a MolecularHessian derivative object from the input.

It reads the keywords below.

Keyword | Type | Default | Description
`molecule` | Molecule | none | The Molecule object.

## Member Function Documentation

void sc::MolecularHessian::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::SavableState.

Reimplemented in sc::FinDispMolecularHessian, sc::ReadMolecularHessian, sc::GuessMolecularHessian, and sc::DiagMolecularHessian.

virtual void sc::MolecularHessian::set_energy | ( | const Ref< MolecularEnergy > & | energy | ) | `[virtual]`

Some MolecularHessian specializations require a molecular energy object.

The default implementations of this ignores the argument.

Reimplemented in sc::FinDispMolecularHessian.

virtual MolecularEnergy* sc::MolecularHessian::energy | ( |  | ) | const`[virtual]`

This returns a MolecularEnergy object, if used by this specialization.

Otherwise null is returned.

Reimplemented in sc::FinDispMolecularHessian.

static RefSCMatrix sc::MolecularHessian::cartesian_to_symmetry | ( | const Ref< Molecule > & | m,
|  | Ref< PointGroup > | pg = `0`,
|  | Ref< SCMatrixKit > | kit = `0` |
| ) |  |  | `[static]`

Find transformation matrix from cartesian to symmetry coordinates.

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

- hess.h