home | help
sc::FinDispMolecularHessian(3)	      MPQC	  sc::FinDispMolecularHessian(3)

NAME
     sc::FinDispMolecularHessian - Computes the molecular hessian by finite dis-
     placements of gradients.

SYNOPSIS
     #include <fdhess.h>

     Inherits sc::MolecularHessian.

   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 compute_hessian_from_gradients ()
	 These members are used to compute a cartesian hessian from gradients at
	 finite displacements.
     int ndisplace () const
     int ndisplacements_done () const
     RefSCMatrix displacements (int irrep) const
     void displace (int disp)
     void original_geometry ()
     void set_gradient (int disp, const RefSCVector &grad)
     void checkpoint_displacements (StateOut &)
     void restore_displacements (StateIn &)
     RefSymmSCMatrix cartesian_hessian ()
	 This returns the cartesian hessian.
     void set_checkpoint (int c)
	 Set checkpoint option.
     int checkpoint () const
	 Return the current value of the checkpoint option.
     void set_energy (const Ref< MolecularEnergy > &energy)
	 Some  MolecularHessian  specializations  require a molecular energy ob-
	 ject.
     MolecularEnergy * energy () const
	 This returns a MolecularEnergy object, if used by this specialization.
     Ref< SCMatrixKit > matrixkit () const
     RefSCDimension d3natom () const

     Public Member Functions inherited from sc::MolecularHessian
     MolecularHessian (const Ref< KeyVal > &)
	 The MolecularHessian KeyVal constructor is used to generate  a  Molecu-
	 larHessian 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  ob-
	 ject.
     virtual MolecularEnergy * energy () const
	 This returns a MolecularEnergy object, if used by this specialization.

     Public Member Functions inherited from sc::SavableState
     SavableState & operator= (const SavableState &)
     void save_state (StateOut &)
	 Save the state of the object as specified by the StateOut object.
     void save_object_state (StateOut &)
	 This  can be used for saving state when the exact type of the object is
	 known for both the save and the restore.
     virtual void save_vbase_state (StateOut &)
	 Save the virtual bases for the object.
     virtual 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.

     Public Member Functions inherited from sc::DescribedClass
     DescribedClass (const DescribedClass &)
     DescribedClass & operator= (const DescribedClass &)
     ClassDesc * class_desc () const  throw ()
	 This  returns	the unique pointer to the ClassDesc corresponding to the
	 given type_info object.
     const char * class_name () const
	 Return the name of the object's exact type.
     int class_version () const
	 Return the version of the class.
     virtual void print (std::ostream &=ExEnv::out0()) const
	 Print the object.

     Public Member Functions inherited from sc::RefCount
     int lock_ptr () const
	 Lock this object.
     int unlock_ptr () const
	 Unlock this object.
     void use_locks (bool inVal)
	 start and stop using locks on this object
     refcount_t nreference () const
	 Return the reference count.
     refcount_t reference ()
	 Increment the reference count and return the new count.
     refcount_t dereference ()
	 Decrement the reference count and return the new count.
     int managed () const
     void unmanage ()
	 Turn off the reference counting mechanism for this object.
     int managed () const
	 Return 1 if the object is managed. Otherwise return 0.

     Public Member Functions inherited from sc::Identity
     Identifier identifier ()
	 Return the Identifier for this argument.

   Protected Member Functions
     void get_disp (int disp, int &irrep, int &index, double &coef)
     void do_hess_for_irrep (int irrep, const RefSymmSCMatrix  &dhessian,  const
	 RefSymmSCMatrix &xhessian)
     void init ()
     void restart ()

     Protected Member Functions inherited from sc::SavableState
     SavableState (const SavableState &)
     SavableState (StateIn &)
	 Each  derived	class  StateIn CTOR handles the restore corresponding to
	 calling save_object_state, save_vbase_state, and save_data_state listed
	 above.

     Protected Member Functions inherited from sc::RefCount
     RefCount (const RefCount &)
     RefCount & operator= (const RefCount &)

   Protected Attributes
     Ref< MolecularEnergy > mole_
     Ref< PointGroup > displacement_point_group_
     Ref< PointGroup > original_point_group_
     RefSCVector original_geometry_
     double disp_
     double accuracy_
     int ndisp_
     int nirrep_
     int restart_
     char * restart_file_
     int checkpoint_
     char * checkpoint_file_
     int only_totally_symmetric_
     int eliminate_cubic_terms_
     int do_null_displacement_
     int debug_
     RefSCMatrix symbasis_
     RefSCVector * gradients_

     Protected Attributes inherited from sc::MolecularHessian
     Ref< Molecule > mol_
     RefSCDimension d3natom_
     Ref< SCMatrixKit > matrixkit_

   Additional Inherited Members
     Static Public Member Functions inherited from sc::MolecularHessian
     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< Mole-
	 cule > &m, const RefSymmSCMatrix &hess)
	 Write the hessian in a simple text format.
     static  void read_cartesian_hessian (const char *filename, const Ref< Mole-
	 cule > &m, const RefSymmSCMatrix &hess)
	 Read the hessian from a simple text format.

     Static Public Member Functions inherited from sc::SavableState
     static void save_state (SavableState *s, StateOut &)
     static SavableState * restore_state (StateIn &si)
	 Restores objects saved with save_state.
     static SavableState * key_restore_state (StateIn &si, const char *keyword)
	 Like restore_state, but  keyword  is  used  to  override  values  while
	 restoring.
     static  SavableState  * dir_restore_state (StateIn &si, const char *object-
	 name, const char *keyword=0)

Detailed Description
     Computes the molecular hessian by finite displacements of gradients.

     This will use the minimum number of displacements, each in the highest pos-
     sible point group.

Constructor & Destructor Documentation
   sc::FinDispMolecularHessian::FinDispMolecularHessian (const Ref< KeyVal > &)
     The FinDispMolecularHessian KeyVal constructor is used to generate a  FinD-
     ispMolecularHessian object from the input. It reads the keywords below.

     KeywordTypeDefaultDescription

     energyMolecularEnergynoneThis gives an object which will be used to compute
     the gradients needed to form the hessian. If this is not specified, the ob-
     ject  using  FinDispMolecularHessian will, in some cases, fill it in appro-
     priately. However, even in these cases, it may be desirable to specify this
     keyword. For example, this could be used in an optimization to compute fre-
     quencies using a lower level of theory.

     debugbooleanfalseIf true, print out debugging information.

     point_groupPointGroupnoneThe point group to use  for  generating  the  dis-
     placements.

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

     restart_filestring basename.ckpt.hessThe name of the file where  checkpoint
     information is written to or read from.

     checkpointbooleantrueIf true, checkpoint intermediate data.

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

     eliminate_cubic_termsbooleantrueIf  true,	then  cubic terms will be elimi-
     nated. This requires that two displacements are done for each totally  sym-
     metric  coordinate,  rather than one. Setting this to false will reduce the
     accuracy, but the results will still probably  be	accurate  enough  for  a
     geometry optimization.

     do_null_displacementbooleantrueRun the calculation at the given geometry as
     well.

     displacementdouble1.0e-2The size of the displacement in Bohr.

     gradient_accuracydouble<td>displacement  /  1000The  accuracy  to which the
     gradients will be computed.

Member Function Documentation
   RefSymmSCMatrix sc::FinDispMolecularHessian::cartesian_hessian () [virtual]
     This returns the cartesian hessian. If it has not	yet  been  computed,  it
     will be computed by finite displacements.

     Implements sc::MolecularHessian.

   MolecularEnergy * sc::FinDispMolecularHessian::energy () const [virtual]
     This returns a MolecularEnergy object, if used by this specialization. Oth-
     erwise null is returned.

     Reimplemented from sc::MolecularHessian.

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

   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.

Author
     Generated automatically by Doxygen for MPQC from the source code.

Version 2.3.1			 Thu Sep 3 2026   sc::FinDispMolecularHessian(3)

home | help