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

FreeBSD Manual Pages

  
 
  

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

NAME
       sc::BatchElectronDensity	- This a more highly optimized than
       ElectronDensity since everything	is precomputed.

SYNOPSIS
       #include	<density.h>

       Inherits	sc::Volume.

   Public Types
       enum { X	=0, Y =1, Z =2 }
	   This	gives the elements of gradient arrays.
       enum { XX =0, YX	=1, YY =2, ZX =3, ZY =4, ZZ =5 }
	   This	gives the elements of hessian arrays.

   Public Member Functions
       BatchElectronDensity (const Ref<	KeyVal > &)
       BatchElectronDensity (const Ref<	Wavefunction > &, double
	   accuracy=DBL_EPSILON)
       BatchElectronDensity (const Ref<	BatchElectronDensity > &d, bool
	   reference_parent_data=false)
	   This	will construct copies of this.
       virtual void boundingbox	(double	valuemin, double valuemax, SCVector3
	   &p1,	SCVector3 &p2)
	   Returns the bounding	box.
       void clear ()
	   This	will cause all stratch storage to be released.
       void compute_density (const SCVector3 &r, double	*alpha_density,	double
	   *alpha_density_grad,	double *alpha_density_hessian, double
	   *beta_density, double *beta_density_grad, double
	   *beta_density_hessian)
	   This	is a alternate to the Volume interface that avoids some	of the
	   overhead of that interface.
       virtual void init (bool initialize_density_matrices=true)
	   This	is called to finish initialization of the object.
       virtual void set_densities (const RefSymmSCMatrix &aden,	const
	   RefSymmSCMatrix &bden)
	   This	will fill in the internel copies of the	density	matrices with
	   new values.
       void set_linear_scaling (bool b)
	   Turn	linear scaling algorithm on/off.
       void set_accuracy (double a)
	   Sets	the accuracy.
       void set_use_dmat_bound (bool b)
	   Turn	use of density matrix bounds on/off.

       DFT Support Members.
       These return some of the	internal data, some of which is	only value
       after a density has been	computed.

       This data is needed by the density functional theory code.

	   double * alpha_density_matrix ()
	       Return the alpha	density	matrix.
	   double * beta_density_matrix	()
	       Return the beta density matrix.
	   int ncontrib	()
	   int * contrib ()
	   int ncontrib_bf ()
	   int * contrib_bf ()
	   double * bs_values ()
	   double * bsg_values ()
	   double * bsh_values ()
	   void	set_need_basis_gradient	(bool b)
	       To ensure that that the basis functions gradients are computed,
	       use this.
	   void	set_need_basis_hessian (bool b)

       Public Member Functions inherited from sc::Volume
       Volume (const Ref< KeyVal > &)
       void set_gradient (const	SCVector3 &g)
       void set_gradient (RefSCVector &g)
       void get_gradient (SCVector3 &g)
       void set_x (const SCVector3 &x)
       void set_x (const RefSCVector &x)
	   Set and retrieve the	coordinate values.
       void get_x (SCVector3 &x)
       virtual void boundingbox	(double	valuemin, double valuemax, SCVector3
	   &p1,	SCVector3 &p2)=0
       virtual void interpolate	(const SCVector3 &p1, const SCVector3 &p2,
	   double value, SCVector3 &result)
       virtual void solve (const SCVector3 &p, const SCVector3 &grad, double
	   value, SCVector3 &result)

       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 ()
       virtual RefSymmSCMatrix hessian ()
       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 void guess_hessian (RefSymmSCMatrix &)
	   Compute a quick, approximate	hessian.
       virtual RefSymmSCMatrix inverse_hessian (RefSymmSCMatrix	&)
       virtual int value_implemented ()	const
	   Information about the availability of values, gradients, and
	   hessians.
       virtual int gradient_implemented	() const
       virtual int hessian_implemented () const
       RefSCVector get_x () const
       const RefSCVector & get_x_no_copy () const
       virtual Ref< NonlinearTransform > change_coordinates ()
	   An optimizer	can call change	coordinates periodically to give the
	   function an opportunity to change its coordinate system.
       virtual void print (std::ostream	&=ExEnv::out0()) const
	   Print information about the object.
       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 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 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
       virtual void init_common_data (bool initialize_density_matrices)
       virtual void init_scratch_data ()
       void compute_basis_values (const	SCVector3 &r)
       void compute_spin_density (const	double *dmat, double *rho, double
	   *grad, double *hess)
       virtual void compute ()
	   Recompute at	least the results that have compute true and are not
	   already computed.

       Protected Member	Functions inherited from sc::Volume
       double &	interpolation_accuracy ()
       virtual void compute ()=0
	   Recompute at	least the results that have compute true and are not
	   already computed.
       virtual void failure (const char	*)

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

   Protected Attributes
       Ref< Wavefunction > wfn_
       Ref< GaussianBasisSet > basis_
       double *	alpha_dmat_
       double *	beta_dmat_
       double *	dmat_bound_
       ShellExtent * extent_
       GaussianBasisSet::ValueData * valdat_
       int ncontrib_
       int * contrib_
       int ncontrib_bf_
       int * contrib_bf_
       double *	bs_values_
       double *	bsg_values_
       double *	bsh_values_
       int nshell_
       int nbasis_
       int spin_polarized_
       int linear_scaling_
       int use_dmat_bound_
       bool need_hessian_
       bool need_gradient_
       bool need_basis_hessian_
       bool need_basis_gradient_
       bool using_shared_data_
       double accuracy_

       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
       This a more highly optimized than ElectronDensity since everything is
       precomputed.

       However,	it cannot be used if the density and/or	geometry might change
       between computations of the density or bounding box, unless the
       obsolete	member is called.

Constructor & Destructor Documentation
   sc::BatchElectronDensity::BatchElectronDensity (const Ref<
       BatchElectronDensity > &	d, bool	reference_parent_data =	false)
       This will construct copies of this. If reference_parent_data is true,
       then data that do not change, such as the density matrices and shell
       extent, are referenced rather than copied. In this case,	the original
       object that allocated this items	must be	valid while copied objects are
       used to compute densities. Also d must have already been	intialized and
       the resulting copy is already initialized (and cannot be
       reinitialized).

       If reference_parent_data	is false, then init must be called on this
       object before it	is used.

Member Function	Documentation
   virtual void	sc::BatchElectronDensity::boundingbox (double valuemin,	double
       valuemax, SCVector3 & p1, SCVector3 & p2) [virtual]
       Returns the bounding box.

       Implements sc::Volume.

   virtual void	sc::BatchElectronDensity::compute () [protected],  [virtual]
       Recompute at least the results that have	compute	true and are not
       already computed. This should only be called by Result's	members.

       Implements sc::Volume.

   virtual void	sc::BatchElectronDensity::init (bool
       initialize_density_matrices = true) [virtual]
       This is called to finish	initialization of the object. It must not be
       called with objects that	created	in a way that they share parent	data,
       those objects are initialized when they are constructed.	This member is
       usually called automatically, however, if it will be used to initial
       other objects that share	parent data, then it must be initialized first
       and this	return is the way to do	that. If initialize_density_matrices
       is false, then the density matrices will	be allocated, but not filled
       in. They	must be	later filled in	with set_densities.

   void	sc::BatchElectronDensity::set_accuracy (double a) [inline]
       Sets the	accuracy.

   virtual void	sc::BatchElectronDensity::set_densities	(const RefSymmSCMatrix
       & aden, const RefSymmSCMatrix & bden) [virtual]
       This will fill in the internel copies of	the density matrices with new
       values. aden is the alpha density matrix	and bden is the	beta density
       matrix. bden is ignored if the wavefunction is not spin polarized.

   void	sc::BatchElectronDensity::set_linear_scaling (bool b) [inline]
       Turn linear scaling algorithm on/off. The effect	of this	will be
       delayed until the next time init() is called.

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

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

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

home | help