Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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

NAME
       sc::MolecularEnergy - The MolecularEnergy abstract class	inherits from
       the Function class.

SYNOPSIS
       #include	<energy.h>

       Inherits	sc::Function.

       Inherited by sc::SumMolecularEnergy, sc::TaylorMolecularEnergy, and
       sc::Wavefunction.

   Public Member Functions
       MolecularEnergy (const MolecularEnergy &)
       MolecularEnergy (const Ref< KeyVal > &)
	   The KeyVal constructor.
       MolecularEnergy (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.
       void set_checkpoint ()
	   Set up checkpointing.
       void set_checkpoint_file	(const char *)
       void set_checkpoint_freq	(int freq)
       bool if_to_checkpoint ()	const
	   Check if need to checkpoint.
       const char * checkpoint_file () const
       int checkpoint_freq () const
       MolecularEnergy & operator= (const MolecularEnergy &)
       virtual double energy ()
	   A wrapper around value();.
       virtual Ref< Molecule > molecule	() const
       virtual RefSCDimension moldim ()	const
       void guess_hessian (RefSymmSCMatrix &)
	   Compute a quick, approximate	hessian.
       RefSymmSCMatrix inverse_hessian (RefSymmSCMatrix	&)
       RefSymmSCMatrix hessian ()
	   If a	molecule hessian object	is given, it will be used to provide a
	   hessian.
       int hessian_implemented () const
       void set_x (const RefSCVector &)
	   Set and retrieve the	coordinate values.
       RefSCVector get_cartesian_x ()
	   Return the cartesian	coordinates.
       RefSCVector get_cartesian_gradient ()
	   Return the cartesian	gradient.
       RefSymmSCMatrix get_cartesian_hessian ()
	   Return the cartesian	hessian.
       Ref< MolecularCoor > molecularcoor ()
       virtual void symmetry_changed ()
	   Call	this if	you have changed the molecular symmetry	of the
	   molecule contained by this MolecularEnergy.
       Ref< NonlinearTransform > change_coordinates ()
	   An optimizer	can call change	coordinates periodically to give the
	   function an opportunity to change its coordinate system.
       void print_natom_3 (const RefSCVector &,	const char *t=0, std::ostream
	   &o=ExEnv::out0()) const
	   Nicely print	n x 3 data that	are stored in a	vector.
       void print_natom_3 (double **, const char *t=0, std::ostream
	   &o=ExEnv::out0()) const
       void print_natom_3 (double *, const char	*t=0, std::ostream
	   &o=ExEnv::out0()) const
       virtual void print (std::ostream	&=ExEnv::out0()) const
	   Print information about the object.

       Public Member Functions inherited from sc::Function
       virtual RefSCVector gradient ()
       int gradient_needed () const
       int do_gradient (int)
       virtual void set_desired_gradient_accuracy (double)
       virtual double actual_gradient_accuracy () const
       virtual double desired_gradient_accuracy	() const
       AccResultRefSCVector & gradient_result ()
       int hessian_needed () const
       int do_hessian (int)
       virtual void set_desired_hessian_accuracy (double)
       virtual double actual_hessian_accuracy () const
       virtual double desired_hessian_accuracy () const
       AccResultRefSymmSCMatrix	& hessian_result ()
       virtual int value_implemented ()	const
	   Information about the availability of values, gradients, and
	   hessians.
       virtual int gradient_implemented	() const
       RefSCVector get_x () const
       const RefSCVector & get_x_no_copy () const
       Function	()
       Function	(StateIn &)
       Function	(const Function	&)
       Function	(const Ref< KeyVal > &,	double funcacc=DBL_EPSILON, double
	   gradacc=DBL_EPSILON,	double hessacc=DBL_EPSILON)
	   The keyval constructor reads	the following keywords:
       virtual ~Function ()
       Function	& operator= (const Function &)
       Ref< SCMatrixKit	> matrixkit () const
	   Return the SCMatrixKit used to construct vectors and	matrices.
       RefSCDimension dimension	() const
	   Return the SCDimension of the problem.
       virtual double value ()
	   Return the value of the function.
       int value_needed	() const
	   Returns nonzero if the current value	is not up-to-date.
       int do_value (int)
	   If passed a nonzero number, compute the value the next time
	   compute() is	called.
       AccResultdouble & value_result ()
       virtual void set_desired_value_accuracy (double)
	   Set the accuracy to which the value is to be	computed.
       virtual double actual_value_accuracy () const
	   Return the accuracy with which the value has	been computed.
       virtual double desired_value_accuracy ()	const
	   Return the accuracy with which the value is to be computed.

       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.

       Public Member Functions inherited from sc::Compute
       virtual void obsolete ()
	   Marks all results as	being out of date.

   Protected Member Functions
       void failure (const char	*)
       virtual void set_energy (double)
	   This	is just	a wrapper around set_value().
       virtual void set_gradient (RefSCVector &)
	   These are passed gradients and hessian in cartesian coordinates.
       virtual void set_hessian	(RefSymmSCMatrix &)
       void x_to_molecule ()
       void molecule_to_x ()

       Protected Member	Functions inherited from sc::Function
       virtual void set_value (double)
       virtual void set_matrixkit (const Ref< SCMatrixKit > &)
	   Set the SCMatrixKit that should be used to construct	the requisite
	   vectors and matrices.
       virtual void set_dimension (const RefSCDimension	&)
       virtual void set_actual_value_accuracy (double)
       virtual void set_actual_gradient_accuracy (double)
       virtual void set_actual_hessian_accuracy	(double)
       RefSCVector & get_x_reference ()
	   Get read/write access to the	coordinates for	modification.
       void do_change_coordinates (const Ref< NonlinearTransform > &)
	   Change the coordinate system	and apply the given transform to
	   intermediates matrices and vectors.

       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 Member	Functions inherited from sc::Compute
       virtual void compute ()=0
	   Recompute at	least the results that have compute true and are not
	   already computed.

   Protected Attributes
       Ref< PointGroup > initial_pg_
       int print_molecule_when_changed_

       Protected Attributes inherited from sc::Function
       Ref< SCMatrixKit	> matrixkit_
	   Used	to construct new matrices.
       RefSCVector x_
	   The variables.
       RefSCDimension dim_
	   The dimension of x_.
       AccResultdouble value_
	   The value of	the function at	x_.
       AccResultRefSCVector gradient_
	   The gradient	at x_.
       AccResultRefSymmSCMatrix	hessian_
	   The hessian at x_.

   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
	   *objectname,	const char *keyword=0)

Detailed Description
       The MolecularEnergy abstract class inherits from	the Function class.

       It computes the energy of the molecule as a function of the geometry.
       The coordinate system used can be either	internal or cartesian.

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

       molecule
	   A Molecule object. There is no default.

       coor
	   A  MolecularCoor  object that describes the coordinates. If this is
	   not given cartesian coordinates will	be used. For convenience,  two
	   keywords  needed  by	 the  MolecularCoor  object  are automatically
	   provided: natom3 and	matrixkit.

       value_accuracy
	   Sets	the accuracy to	which values  are  computed.  The  default  is
	   1.0e-6 atomic units.

       gradient_accuracy
	   Sets	 the  accuracy to which	gradients are computed.	The default is
	   1.0e-6 atomic units.

       hessian_accuracy
	   Sets	the accuracy to	which hessians are computed.  The  default  is
	   1.0e-4 atomic units.

       hessian
	   Specifies  a	 MolecularHessian  object  that	is used	to compute the
	   hessian. If this MolecularEnergy specialization does	not provide  a
	   hessian of its own, and a hessian is	needed,	then this keyword must
	   be specified.

       guess_hessian
	   Specifies a MolecularHessian	object that is used to compute a guess
	   hessian. Guess hessians are used to improve the rate	of convergence
	   of	optimizations.	If  this  keyword  is  not  specified,	and  a
	   MolecularCoor object	is given by coor, then the  guess  hessian  is
	   obtained  from  the	MolecularCoor object. If neither this nor coor
	   are given, then Function::guess_hessian is used,  which  returns  a
	   unit	matrix.

       print_molecule_when_changed
	   If  true, then whenever the molecule's coordinates are updated they
	   will	be printed. The	default	is true.

       checkpoint
	   If  true,  then  this  object  will	be  checkpointed  during   its
	   evaluation.	Not  all  implementations  of  MolecularEnergy support
	   checkpointing. The default is false.

       checkpoint_file
	   Specifies the name of the file  into	 which	this  object  will  be
	   checkpointed.     Default	 is    '<inpubasename>.ckpt',	 where
	   '<inputbasename>' is	the name of the	input file without '.in'.

       checkpoint_freq
	   Specifies how often this object to be  checkpointed.	 Only  matters
	   for objects which are computed iteratively. Default is 1.

Member Function	Documentation
   Ref<	  NonlinearTransform   >   sc::MolecularEnergy::change_coordinates  ()
       [virtual]
       An optimizer can	call  change  coordinates  periodically	 to  give  the
       function	an opportunity to change its coordinate	system.	A return value
       of  0  means  the  coordinates were not changed.	Otherwise, a transform
       object to the new coordinate system  is	return.	 The  function	object
       applies	the  transform	to any objects it contains. This will obsolete
       the function data.

       Reimplemented from sc::Function.

   void	sc::MolecularEnergy::guess_hessian (RefSymmSCMatrix &) [virtual]
       Compute a quick,	approximate hessian.

       Reimplemented from sc::Function.

   RefSymmSCMatrix sc::MolecularEnergy::hessian	() [virtual]
       If a molecule hessian object is given, it will be  used	to  provide  a
       hessian.

       Reimplemented from sc::Function.

   int sc::MolecularEnergy::hessian_implemented	() const [virtual]
       Reimplemented from sc::Function.

   RefSymmSCMatrix  sc::MolecularEnergy::inverse_hessian  (RefSymmSCMatrix  &)
       [virtual]
       Reimplemented from sc::Function.

   virtual Ref<	Molecule > sc::MolecularEnergy::molecule () const [virtual]
       Reimplemented in	sc::Wavefunction.

   virtual void	sc::MolecularEnergy::print (std::ostream  &  =	ExEnv::out0())
       const [virtual]
       Print information about the object.

       Reimplemented from sc::Function.

       Reimplemented in	sc::TaylorMolecularEnergy, sc::Wavefunction, sc::CLKS,
       sc::HSOSKS,  sc::UKS,  sc::MBPT2,  sc::MBPT2_R12,  sc::PsiWavefunction,
       sc::CLHF, sc::CLSCF, sc::HSOSHF,	 sc::HSOSSCF,  sc::OSSHF,  sc::OSSSCF,
       sc::SCF,	  sc::TCHF,   sc::TCSCF,   sc::UHF,  sc::UnrestrictedSCF,  and
       sc::OneBodyWavefunction.

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

       Reimplemented  in  sc::SumMolecularEnergy,   sc::TaylorMolecularEnergy,
       sc::CLKS,    sc::HSOSKS,	   sc::UKS,   sc::MBPT2,   sc::MP2BasisExtrap,
       sc::MBPT2_R12,	 sc::PsiWavefunction,	  sc::PsiSCF,	  sc::PsiCCSD,
       sc::PsiCCSD_T, sc::CLHF,	sc::CLSCF, sc::HSOSHF, sc::HSOSSCF, sc::OSSHF,
       sc::OSSSCF, sc::SCF, sc::TCHF, sc::TCSCF, sc::UHF, sc::UnrestrictedSCF,
       sc::ExtendedHuckelWfn,	sc::OneBodyWavefunction,   sc::HCoreWfn,   and
       sc::Wavefunction.

   virtual void	sc::MolecularEnergy::set_gradient (RefSCVector &) [protected],
       [virtual]
       These are passed	gradients and hessian in  cartesian  coordinates.  The
       gradient	and hessian in internal	coordinates are	computed.

       Reimplemented from sc::Function.

   virtual    void    sc::MolecularEnergy::set_hessian	 (RefSymmSCMatrix   &)
       [protected],  [virtual]
       Reimplemented from sc::Function.

   void	sc::MolecularEnergy::set_x (const RefSCVector &) [virtual]
       Set and retrieve	the coordinate values.

       Reimplemented from sc::Function.

       Reimplemented in	sc::SumMolecularEnergy.

   virtual void	sc::MolecularEnergy::symmetry_changed () [virtual]
       Call this if you	have changed the molecular symmetry  of	 the  molecule
       contained by this MolecularEnergy.

       Reimplemented   in   sc::MBPT2,	 sc::CLSCF,  sc::HSOSSCF,  sc::OSSSCF,
       sc::SCF,	sc::TCSCF, sc::UnrestrictedSCF,	 sc::OneBodyWavefunction,  and
       sc::Wavefunction.

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

Version	2.3.1			Tue May	13 2025		sc::MolecularEnergy(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=sc_MolecularEnergy&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help