MPQC  3.0.0-alpha
Classes | Public Member Functions | Protected Member Functions
sc::FinDispMolecularHessian Class Reference

Computes the molecular hessian by finite displacements of gradients (or, if not available, energies). More...

#include <chemistry/molecule/findisp.h>

Inheritance diagram for sc::FinDispMolecularHessian:
Inheritance graph
[legend]

List of all members.

Classes

class  EnergiesImpl
class  GradientsImpl
class  Impl
class  Params
 Params encpasulates parameters of the finite-difference molecular hessian evaluator.

Public Member Functions

 FinDispMolecularHessian (const Ref< MolecularEnergy > &)
 FinDispMolecularHessian (const Ref< KeyVal > &)
 The FinDispMolecularHessian KeyVal constructor is used to generate a FinDispMolecularHessian object from the input.
 FinDispMolecularHessian (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.
RefSymmSCMatrix cartesian_hessian ()
 This returns the cartesian hessian.
void set_energy (const Ref< MolecularEnergy > &energy)
 Some MolecularHessian specializations require a molecular energy object.
MolecularEnergyenergy () const
 This returns a MolecularEnergy object, if used by this specialization.
const Ref< Params > & params () const
void set_desired_accuracy (double acc)
 Sets the desired accuracy.

Protected Member Functions

void init_pimpl (const Ref< MolecularEnergy > &e)
 initializes pimpl_, it should not be called until e is fully initalized, hence use this lazily
void restart ()

Detailed Description

Computes the molecular hessian by finite displacements of gradients (or, if not available, energies).

This will use the minimum number of displacements, each in the highest possible point group.


Constructor & Destructor Documentation

sc::FinDispMolecularHessian::FinDispMolecularHessian ( const Ref< KeyVal > &  )

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

It reads the keywords below.

KeywordTypeDefault

Description

energyMolecularEnergynone

This gives an object which will be used to compute the gradients (or energies) needed to form the hessian. If this is not specified, the object using FinDispMolecularHessian will, in some cases, fill it in appropriately. However, even in these cases, it may be desirable to specify this keyword. For example, this could be used in an optimization to compute frequencies using a lower level of theory.

debugbooleanfalse

If true, print out debugging information.

point_groupPointGroupnone

The point group to use for generating the displacements.

restartbooleantrue

If true, and a checkpoint file exists, restart from that file.

restart_filestring basename.ckpt.hess

The name of the file where checkpoint information is written to or read from.

checkpointbooleanfalse

If true, checkpoint intermediate data.

only_totally_symmetricbooleanfalse

If true, only follow totally symmetric displacments. The hessian will not be complete, but it has enough information to use it in a geometry optimization.

eliminate_cubic_termsbooleansee notes

If true, then cubic terms will be eliminated. If implemented in terms of gradients, this requires that two displacements are done for each totally symmetric coordinate, rather than one. If implementd in terms of energies, this requires twice as many displacements for each force constant regardless of its symmetry. If using gradients, the default setting is true (in such case seeting this keyword to false will produces lower accuracy which will only be sufficient for geometry optimizations). If using energies, the default setting is false. Benchmark calculations should always set this to true.

do_null_displacementbooleantrue

Run the calculation at the given geometry as well.

displacementdouble1.0e-2

The size of the displacement in Bohr.

gradient_accuracydoubleaccuracy displacementThe accuracy to which the gradients will be computed.
   <tr><td><tt>energy_accuracy</tt><td>double<td><tt>accuracy</tt>
displacement^2
The accuracy to which the energies will be computed.
   <tr><td><tt>use_energies</tt><td>boolean<td>false<td>Setting to true will
   force computation from energies.

   </table>

Member Function Documentation

This returns the cartesian hessian.

If it has not yet been computed, it will be computed by finite displacements.

Implements sc::MolecularHessian.

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

Otherwise null is returned.

Reimplemented from sc::MolecularHessian.

References sc::Ref< T >::nonnull(), and sc::Ref< T >::pointer().

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

void sc::FinDispMolecularHessian::set_desired_accuracy ( double  acc) [virtual]

Sets the desired accuracy.

Parameters:
accthe desired accuracy

Reimplemented from sc::MolecularHessian.

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

Some MolecularHessian specializations require a molecular energy object.

The default implementations of this ignores the argument.

Reimplemented from sc::MolecularHessian.


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

Generated at Sat Jul 7 2012 11:52:50 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.0.