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

NAME
     sc::MolecularCoor	- The MolecularCoor abstract class describes the coordi-
     nate system used to describe a molecule.

SYNOPSIS
     #include <coor.h>

     Inherits sc::SavableState.

     Inherited by sc::CartMolecularCoor, and sc::IntMolecularCoor.

   Public Member Functions
     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< Molecule > molecule () const
	 Returns the molecule.
     virtual void print (std::ostream &=ExEnv::out0()) const =0
	 Print the coordinate.
     virtual void print_simples (std::ostream &=ExEnv::out0()) const =0
     virtual RefSCDimension dim ()=0
	 Returns a smart reference to an SCDimension equal to the number of  co-
	 ordinates (be they Cartesian, internal, or whatever) that are being op-
	 timized.
     int to_cartesian (const RefSCVector &internal)
	 Given a set of displaced internal coordinates, update the cartesian co-
	 ordinates of the Molecule contained herein.
     virtual  int  to_cartesian  (const  Ref< Molecule > &mol, const RefSCVector
	 &internal)=0
     virtual int to_internal (RefSCVector &internal)=0
	 Fill in the vector ``internal'' with the current internal coordinates.
     virtual int to_cartesian (RefSCVector &cartesian, RefSCVector &internal)=0
	 Convert the internal coordinate gradients in ``internal'' to  Cartesian
	 coordinates  and  copy these Cartesian coordinate gradients to ``carte-
	 sian''.
     virtual int to_internal (RefSCVector &internal, RefSCVector &cartesian)=0
	 Convert the Cartesian coordinate gradients in ``cartesian'' to internal
	 coordinates and copy these internal coordinate  gradients  to	``inter-
	 nal''.
     virtual  int to_cartesian (RefSymmSCMatrix &cartesian, RefSymmSCMatrix &in-
	 ternal)=0
	 Convert the internal coordinate Hessian internal'' to Cartesian coordi-
	 nates and copy the result tocartesian''.
     virtual int to_internal (RefSymmSCMatrix &internal, RefSymmSCMatrix &carte-
	 sian)=0
	 Convert the Cartesian coordinate Hessian cartesian'' to internal  coor-
	 dinates and copy the result tointernal''.
     virtual void guess_hessian (RefSymmSCMatrix &hessian)=0
	 Calculate an approximate hessian and place the result in ``hessian''.
     virtual RefSymmSCMatrix inverse_hessian (RefSymmSCMatrix &)=0
	 Given an Hessian, return the inverse of that hessian.
     virtual int nconstrained ()
	 Returns the number of constrained coordinates.
     virtual Ref< NonlinearTransform > change_coordinates ()
	 When  this is called, MoleculeCoor may select a new internal coordinate
	 system and return a transform to it.
     Ref< SCMatrixKit > matrixkit () const

     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 Attributes
     Ref< Molecule > molecule_
     RefSCDimension dnatom3_
     Ref< SCMatrixKit > matrixkit_
     int debug_

   Additional Inherited Members
     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)

     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 &)

Detailed Description
     The MolecularCoor abstract class describes the coordinate	system	used  to
     describe a molecule.

     It  is  used to convert a molecule's cartesian coordinates to and from this
     coordinate system.

Constructor & Destructor Documentation
   sc::MolecularCoor::MolecularCoor (const Ref< KeyVal > &)
     The KeyVal constructor.

     molecule
	 A Molecule object. There is no default.

     debug
	 An integer which, if nonzero, will cause extra output.

     matrixkit
	 A SCMatrixKit object. It is usually unnecessary to give this keyword.

     natom3
	 An SCDimension object for the dimension of the vector of cartesian  co-
	 ordinates. It is usually unnecessary to give this keyword.

Member Function Documentation
   virtual  Ref<  NonlinearTransform  > sc::MolecularCoor::change_coordinates ()
     [virtual]
     When this is called, MoleculeCoor may select a new internal coordinate sys-
     tem and return a transform to it. The default action is to not change  any-
     thing and return an IdentityTransform.

     Reimplemented in sc::SymmMolecularCoor.

   virtual RefSCDimension sc::MolecularCoor::dim () [pure virtual]
     Returns  a smart reference to an SCDimension equal to the number of coordi-
     nates (be they Cartesian, internal, or whatever) that are being optimized.

     Implemented in sc::IntMolecularCoor, and sc::CartMolecularCoor.

   virtual void  sc::MolecularCoor::guess_hessian  (RefSymmSCMatrix  &	hessian)
     [pure virtual]
     Calculate an approximate hessian and place the result in ``hessian''.

     Implemented    in	 sc::SymmMolecularCoor,   sc::RedundMolecularCoor,   and
     sc::CartMolecularCoor.

   virtual RefSymmSCMatrix  sc::MolecularCoor::inverse_hessian	(RefSymmSCMatrix
     &) [pure virtual]
     Given an Hessian, return the inverse of that hessian. For singular matrices
     this should return the generalized inverse.

     Implemented    in	 sc::SymmMolecularCoor,   sc::RedundMolecularCoor,   and
     sc::CartMolecularCoor.

   virtual int sc::MolecularCoor::nconstrained () [virtual]
     Returns the number of constrained coordinates.

     Reimplemented in sc::IntMolecularCoor.

   virtual void sc::MolecularCoor::print (std::ostream & = ExEnv::out0())  const
     [pure virtual]
     Print the coordinate.

     Reimplemented from sc::DescribedClass.

     Implemented  in  sc::IntMolecularCoor, sc::SymmMolecularCoor, and sc::Cart-
     MolecularCoor.

   void sc::MolecularCoor::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::IntMolecularCoor,  sc::SymmMolecularCoor,  sc::Redund-
     MolecularCoor, and sc::CartMolecularCoor.

   int sc::MolecularCoor::to_cartesian (const RefSCVector & internal)
     Given a set of displaced internal coordinates, update the cartesian coordi-
     nates  of	the Molecule contained herein. This function does not change the
     vector ``internal''.

   virtual int sc::MolecularCoor::to_cartesian (RefSCVector  &	cartesian,  Ref-
     SCVector & internal) [pure virtual]
     Convert  the internal coordinate gradients in ``internal'' to Cartesian co-
     ordinates and copy these Cartesian coordinate gradients  to  ``cartesian''.
     Only the variable internal coordinate gradients are transformed.

     Implemented in sc::IntMolecularCoor, and sc::CartMolecularCoor.

   virtual  int  sc::MolecularCoor::to_cartesian  (RefSymmSCMatrix  & cartesian,
     RefSymmSCMatrix & internal) [pure virtual]
     Convert the internal coordinate Hessian internal'' to Cartesian coordinates
     and copy the result tocartesian''. Only the  variable  internal  coordinate
     force constants are transformed.

     Implemented in sc::IntMolecularCoor, and sc::CartMolecularCoor.

   virtual  int  sc::MolecularCoor::to_internal  (RefSCVector  & internal) [pure
     virtual]
     Fill in the vector ``internal'' with the current internal coordinates. Note
     that this member will update the values of the  variable  internal  coordi-
     nates.

     Implemented in sc::IntMolecularCoor, and sc::CartMolecularCoor.

   virtual int sc::MolecularCoor::to_internal (RefSCVector & internal, RefSCVec-
     tor & cartesian) [pure virtual]
     Convert the Cartesian coordinate gradients in ``cartesian'' to internal co-
     ordinates	and  copy  these  internal coordinate gradients to ``internal''.
     Only the variable internal coordinate gradients are calculated.

     Implemented in sc::IntMolecularCoor, and sc::CartMolecularCoor.

   virtual int sc::MolecularCoor::to_internal (RefSymmSCMatrix & internal,  Ref-
     SymmSCMatrix & cartesian) [pure virtual]
     Convert  the  Cartesian  coordinate Hessian cartesian'' to internal coordi-
     nates and copy the result tointernal''. Only the variable internal  coordi-
     nate force constants are calculated.

     Implemented in sc::IntMolecularCoor, and sc::CartMolecularCoor.

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

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

home | help