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

NAME
     sc::IntMolecularCoor - The IntMolecularCoor abstract class describes a mol-
     ecule's coordinates in terms of internal coordinates.

SYNOPSIS
     #include <coor.h>

     Inherits sc::MolecularCoor.

     Inherited by sc::RedundMolecularCoor, and sc::SymmMolecularCoor.

   Public Member Functions
     IntMolecularCoor (StateIn &)
     IntMolecularCoor (Ref< Molecule > &mol)
     IntMolecularCoor (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 void form_coordinates (int keep_variable=0)=0
	 Actually form the variable and constant internal coordinates  from  the
	 simple internal coordinates.
     virtual  int all_to_cartesian (const Ref< Molecule > &, RefSCVector &inter-
	 nal)
	 Like to_cartesians(), except all internal coordinates	are  considered,
	 not just the variable ones.
     virtual  int  all_to_internal (const Ref< Molecule > &, RefSCVector &inter-
	 nal)
	 Like to_internal(), except all internal coordinates are considered, not
	 just the variable ones.
     virtual RefSCDimension dim ()
	 These implement the virtual functions inherited from MolecularCoor.
     virtual int to_cartesian (const Ref< Molecule > &, const  RefSCVector  &in-
	 ternal)
     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  to	``carte-
	 sian''.
     virtual int to_internal (RefSCVector &internal, RefSCVector &cartesian)
	 Convert the Cartesian coordinate gradients in ``cartesian'' to internal
	 coordinates  and  copy  these internal coordinate gradients to ``inter-
	 nal''.
     virtual int to_cartesian (RefSymmSCMatrix &cart, RefSymmSCMatrix &internal)
	 Convert the internal coordinate Hessian internal'' to Cartesian coordi-
	 nates and copy the result tocartesian''.
     virtual int to_internal (RefSymmSCMatrix &internal, RefSymmSCMatrix &cart)
	 Convert the Cartesian coordinate Hessian cartesian'' to internal  coor-
	 dinates 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
     virtual void print_variable (std::ostream &=ExEnv::out0()) const
     virtual void print_constant (std::ostream &=ExEnv::out0()) const
     int nconstrained ()
	 Returns the number of constrained coordinates.

     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< 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 Member Functions
     void form_K_matrix  (RefSCDimension  &dredundant,	RefSCDimension	&dfixed,
	 RefSCMatrix &K, int *&is_totally_symmetric)
     virtual void init ()
	 This  is  called by the constructors of classes derived from IntMolecu-
	 larCoor.
     virtual void new_coords ()
	 Allocates memory for the SetIntCoor's used to store the simple and  in-
	 ternal coordinates.
     virtual void read_keyval (const Ref< KeyVal > &)
	 Reads the KeyVal input.

     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< IntCoorGen > generator_
     RefSCDimension dim_
     RefSCDimension dvc_
     Ref< SetIntCoor > variable_
     Ref< SetIntCoor > constant_
     Ref< SetIntCoor > fixed_
     Ref< SetIntCoor > watched_
     Ref< IntCoor > followed_
     Ref< SetIntCoor > bonds_
     Ref< SetIntCoor > bends_
     Ref< SetIntCoor > tors_
     Ref< SetIntCoor > outs_
     Ref< SetIntCoor > extras_
     Ref< SetIntCoor > all_
     int update_bmat_
     int only_totally_symmetric_
     double symmetry_tolerance_
     double simple_tolerance_
     double coordinate_tolerance_
     double cartesian_tolerance_
     double scale_bonds_
     double scale_bends_
     double scale_tors_
     double scale_outs_
     int nextra_bonds_
     int * extra_bonds_
     int given_fixed_values_
     int decouple_bonds_
     int decouple_bends_
     int max_update_steps_
     double max_update_disp_
     int form_print_simples_
     int form_print_variable_
     int form_print_constant_
     int form_print_molecule_

     Protected Attributes inherited from sc::MolecularCoor
     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)

Detailed Description
     The IntMolecularCoor abstract class describes a molecule's  coordinates  in
     terms of internal coordinates.

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

     variable
	 Gives	a SetIntCoor object that specifies the internal coordinates that
	 can be varied. If this is not given, the variable coordinates	will  be
	 generated.

     followed
	 Gives a IntCoor object that specifies a coordinate to used as the first
	 coordinate  in  the variable coordinate list. The remaining coordinates
	 will be automatically generated. The default is no followed coordinate.
	 This option is usually used to set the initial search direction  for  a
	 transition state optimization, where it is used in conjunction with the
	 mode_following keyword read by the EFCOpt class.

     fixed
	 Gives	a SetIntCoor object that specifies the internal coordinates that
	 will be fixed. The default is no fixed coordinates.

     watched
	 Gives a SetIntCoor object that specifies internal coordinates that will
	 be printed out whenever the coordinates are  changed.	The  default  is
	 none.

     have_fixed_values
	 If  true,  then values for the fixed coordinates must be given in fixed
	 and an attempt will be made to displace the  initial  geometry  to  the
	 given fixed values. The default is false.

     extra_bonds
	 This is only read if the generator keyword is not given. It is a vector
	 of atom numbers, where elements $(i-1)imes 2 + 1$ and $iimes 2$ specify
	 the  atoms  which  are bound in extra bond $i$. The extra_bonds keyword
	 should only be needed for weakly interacting fragments,  otherwise  all
	 the needed bonds will be found.

     generator
	 Specifies  an IntCoorGen object that creates simple, redundant internal
	 coordinates. If this keyword is not given, then a vector  giving  extra
	 bonds	to  be added is read from extra_bonds and this is used to create
	 an IntCoorGen object.

     decouple_bonds
	 Automatically generated internal coordinates are linear combinations of
	 possibly any mix of simple internal coordinates. If  decouple_bonds  is
	 true,	an attempt will be made to form some of the internal coordinates
	 from just stretch simple coordinates. The default is false.

     decouple_bends
	 This is like decouple_bonds except it applies to the bend-like  coordi-
	 nates. The default is false.

     max_update_disp
	 The maximum displacement to be used in the displacement to fixed inter-
	 nal  coordinates  values. Larger displacements will be broken into sev-
	 eral smaller displacements and new coordinates will be formed for  each
	 of these displacments. This is only used when fixed and have_fixed_val-
	 ues are given. The default is 0.5.

     max_update_steps
	 The  maximum  number  of steps permitted to convert internal coordinate
	 displacements to cartesian coordinate	displacements.	The  default  is
	 100.

     update_bmat
	 Displacements in internal coordinates are converted to a cartesian dis-
	 placements iteratively. If there are large changes in the cartesian co-
	 ordinates  during  conversion,  then recompute the $B$ matrix, which is
	 using to do the conversion. The default is false.

     only_totally_symmetric
	 If a simple test reveals that an internal  coordinate	is  not  totally
	 symmetric,  then  it will not be added to the internal coordinate list.
	 The default is true.

     simple_tolerance
	 The internal coordinates are formed as linear combinations  of  simple,
	 redundant  internal  coordinates. Coordinates with coefficients smaller
	 then simple_tolerance will be omitted. The default is 1.0e-3.

     cartesian_tolerance
	 The tolerance for conversion of internal  coordinate  displacements  to
	 cartesian displacements. The default is 1.0e-12.

     form:print_simple
	 Print the simple internal coordinates. The default is false.

     form:print_variable
	 Print the variable internal coordinates. The default is false.

     form:print_constant
	 Print the constant internal coordinates. The default is false.

     form:print_molecule
	 Print the molecule when forming coordinates. The default is false.

     scale_bonds
	 Obsolete. The default value is 1.0.

     scale_bends
	 Obsolete. The default value is 1.0.

     scale_tors
	 Obsolete. The default value is 1.0.

     scale_outs
	 Obsolete. The default value is 1.0.

     symmetry_tolerance
	 Obsolete. The default is 1.0e-5.

     coordinate_tolerance
	 Obsolete. The default is 1.0e-7.

Member Function Documentation
   virtual RefSCDimension sc::IntMolecularCoor::dim () [virtual]
     These implement the virtual functions inherited from MolecularCoor.

     Implements sc::MolecularCoor.

   virtual  void  sc::IntMolecularCoor::form_coordinates (int keep_variable = 0)
     [pure virtual]
     Actually form the variable and constant internal coordinates from the  sim-
     ple internal coordinates.

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

   virtual void sc::IntMolecularCoor::init () [protected],  [virtual]
     This  is  called  by the constructors of classes derived from IntMolecular-
     Coor. It initialized the lists of simple  internal  coordinates,  and  then
     calls the form_coordinates() member.

     Reimplemented in sc::SymmMolecularCoor.

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

     Reimplemented from sc::MolecularCoor.

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

     Implements sc::MolecularCoor.

     Reimplemented in sc::SymmMolecularCoor.

   virtual  void  sc::IntMolecularCoor::print_simples  (std::ostream  &  =   Ex-
     Env::out0()) const [virtual]
     Implements sc::MolecularCoor.

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

     Reimplemented in sc::SymmMolecularCoor, and sc::RedundMolecularCoor.

   virtual  int  sc::IntMolecularCoor::to_cartesian  (const  Ref<  Molecule > &,
     const RefSCVector & internal) [virtual]
     Implements sc::MolecularCoor.

   virtual int sc::IntMolecularCoor::to_cartesian (RefSCVector & cartesian, Ref-
     SCVector & internal) [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.

     Implements sc::MolecularCoor.

   virtual int sc::IntMolecularCoor::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.

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

     Implements sc::MolecularCoor.

   virtual int sc::IntMolecularCoor::to_internal (RefSCVector &  internal,  Ref-
     SCVector & cartesian) [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.

     Implements sc::MolecularCoor.

   virtual int sc::IntMolecularCoor::to_internal  (RefSymmSCMatrix  &  internal,
     RefSymmSCMatrix & cartesian) [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.

     Implements sc::MolecularCoor.

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

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

home | help