MPQC 3.0.0-alpha
Loading...
Searching...
No Matches
sc::CartMolecularCoor Class Reference

The CartMolecularCoor class implements Cartesian coordinates in a way suitable for use in geometry optimizations. More...

#include <chemistry/molecule/coor.h>

Inheritance diagram for sc::CartMolecularCoor:
sc::MolecularCoor sc::SavableState sc::DescribedClass sc::RefCount

Public Member Functions

 CartMolecularCoor (Ref< Molecule > &mol)
 
 CartMolecularCoor (StateIn &)
 
 CartMolecularCoor (const Ref< KeyVal > &)
 The KeyVal constructor.
 
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.
 
virtual RefSCDimension dim ()
 These implement the virtual functions inherited from MolecularCoor.
 
virtual int to_cartesian (const Ref< Molecule > &, const RefSCVector &internal)
 
virtual int to_internal (RefSCVector &internal)
 Fill in the vector `‘internal’' with the current internal coordinates.
 
virtual int to_cartesian (RefSCVector &cartesian, RefSCVector &internal)
 Convert the internal coordinate gradients in internal'' to Cartesian coordinates and copy these Cartesian coordinate gradients tocartesian''.
 
virtual int to_internal (RefSCVector &internal, RefSCVector &cartesian)
 Convert the Cartesian coordinate gradients in cartesian'' to internal coordinates and copy these internal coordinate gradients tointernal''.
 
virtual int to_cartesian (RefSymmSCMatrix &cart, RefSymmSCMatrix &internal)
 Convert the internal coordinate Hessian internal'' to Cartesian coordinates and copy the result tocartesian''.
 
virtual int to_internal (RefSymmSCMatrix &internal, RefSymmSCMatrix &cart)
 Convert the Cartesian coordinate Hessian cartesian'' to internal coordinates and copy the result tointernal''.
 
virtual void print (std::ostream &=ExEnv::out0()) const
 Print the coordinate.
 
virtual void print_simples (std::ostream &=ExEnv::out0()) const
 
void guess_hessian (RefSymmSCMatrix &hessian)
 
RefSymmSCMatrix inverse_hessian (RefSymmSCMatrix &)
 Calculate an approximate hessian and place the result in `‘hessian’'.
 
- Public Member Functions inherited from sc::MolecularCoor
 MolecularCoor (Ref< Molecule > &)
 
 MolecularCoor (StateIn &)
 
 MolecularCoor (const Ref< KeyVal > &)
 The KeyVal constructor.
 
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 dim_natom3 ()
 Returns a smart reference to an SCDimension equal to the number of atoms in the molecule times 3.
 
Ref< Moleculemolecule () const
 Returns the molecule.
 
int to_cartesian (const RefSCVector &internal)
 Given a set of displaced internal coordinates, update the cartesian coordinates of the Molecule contained herein.
 
virtual int nconstrained ()
 Returns the number of constrained coordinates.
 
virtual Ref< NonlinearTransformchange_coordinates ()
 When this is called, MoleculeCoor may select a new internal coordinate system and return a transform to it.
 
Ref< SCMatrixKitmatrixkit () const
 
- Public Member Functions inherited from sc::SavableState
SavableStateoperator= (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.
 
- Public Member Functions inherited from sc::DescribedClass
 DescribedClass (const DescribedClass &)
 
DescribedClassoperator= (const DescribedClass &)
 
ClassDescclass_desc () const MPQC__NOEXCEPT
 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.
 
Ref< DescribedClassref ()
 Return this object wrapped up in a Ref smart pointer.
 
- Public Member Functions inherited from sc::RefCount
size_t identifier () const
 Return the unique identifier for this object that can be compared for different objects of different types.
 
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
 Return 1 if the object is managed. Otherwise return 0.
 

Protected Member Functions

virtual void init ()
 Initializes the dimensions.
 
- 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 &)
 
RefCountoperator= (const RefCount &)
 

Protected Attributes

RefSCDimension dim_
 
- Protected Attributes inherited from sc::MolecularCoor
Ref< Moleculemolecule_
 
RefSCDimension dnatom3_
 
Ref< SCMatrixKitmatrixkit_
 
int debug_
 

Additional Inherited Members

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

Detailed Description

The CartMolecularCoor class implements Cartesian coordinates in a way suitable for use in geometry optimizations.

CartMolecularCoor is a SavableState has StateIn and KeyVal constructors. CartMolecularCoor is derived from MolecularCoor.

Member Function Documentation

◆ dim()

virtual RefSCDimension sc::CartMolecularCoor::dim ( )
virtual

These implement the virtual functions inherited from MolecularCoor.

Implements sc::MolecularCoor.

◆ inverse_hessian()

RefSymmSCMatrix sc::CartMolecularCoor::inverse_hessian ( RefSymmSCMatrix & )
virtual

Calculate an approximate hessian and place the result in `‘hessian’'.

*‍/ virtual void guess_hessian(RefSymmSCMatrix&hessian) = 0;

/** Given an Hessian, return the inverse of that hessian. For singular matrices this should return the generalized inverse.

Implements sc::MolecularCoor.

◆ print()

virtual void sc::CartMolecularCoor::print ( std::ostream & = ExEnv::out0()) const
virtual

Print the coordinate.

Implements sc::MolecularCoor.

◆ print_simples()

virtual void sc::CartMolecularCoor::print_simples ( std::ostream & = ExEnv::out0()) const
virtual

Implements sc::MolecularCoor.

◆ save_data_state()

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

◆ to_cartesian() [1/3]

virtual int sc::CartMolecularCoor::to_cartesian ( const Ref< Molecule > & ,
const RefSCVector & internal )
virtual

Implements sc::MolecularCoor.

◆ to_cartesian() [2/3]

virtual int sc::CartMolecularCoor::to_cartesian ( RefSCVector & cartesian,
RefSCVector & internal )
virtual

Convert the internal coordinate gradients in internal'' to Cartesian coordinates and copy these Cartesian coordinate gradients tocartesian''.

Only the variable internal coordinate gradients are transformed.

Implements sc::MolecularCoor.

◆ to_cartesian() [3/3]

virtual int sc::CartMolecularCoor::to_cartesian ( RefSymmSCMatrix & cartesian,
RefSymmSCMatrix & internal )
virtual

Convert the internal coordinate Hessian internal'' to Cartesian coordinates and copy the result tocartesian''.

Only the variable internal coordinate force constants are transformed.

Implements sc::MolecularCoor.

◆ to_internal() [1/3]

virtual int sc::CartMolecularCoor::to_internal ( RefSCVector & internal)
virtual

Fill in the vector `‘internal’' with the current internal coordinates.

Note that this member will update the values of the variable internal coordinates.

Implements sc::MolecularCoor.

◆ to_internal() [2/3]

virtual int sc::CartMolecularCoor::to_internal ( RefSCVector & internal,
RefSCVector & cartesian )
virtual

Convert the Cartesian coordinate gradients in cartesian'' to internal coordinates and copy these internal coordinate gradients tointernal''.

Only the variable internal coordinate gradients are calculated.

Implements sc::MolecularCoor.

◆ to_internal() [3/3]

virtual int sc::CartMolecularCoor::to_internal ( RefSymmSCMatrix & internal,
RefSymmSCMatrix & cartesian )
virtual

Convert the Cartesian coordinate Hessian cartesian'' to internal coordinates and copy the result tointernal''.

Only the variable internal coordinate force constants are calculated.

Implements sc::MolecularCoor.


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

Generated at Wed Sep 25 2024 02:45:32 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.12.0.