MPQC
3.0.0-alpha
|
The taclscf class is the base class for implementing self-consistent proceedure for closed-shell molecules in MPQC3. More...
#include <chemistry/qc/scf/taclscf.hpp>
Public Types | |
typedef SCF::TAMatrix | TAMatrix |
Public Types inherited from mpqc::TA::SCF | |
typedef Wavefunction::TAMatrix | TAMatrix |
typedef Wavefunction::TAVector | TAVector |
typedef elem::DistMatrix< double, elem::VR, elem::STAR > | ElemVector |
typedef std::pair< ElemVector, TAMatrix > | ElemTAEigenSystem |
Public Types inherited from mpqc::TA::Wavefunction | |
typedef TiledArray::TArray1D | TAVector |
Vector of reals. | |
typedef TiledArray::TArray2D | TAMatrix |
Matrix of reals. | |
typedef sc::Result< TAVector > | ResultVector |
typedef sc::Result< TAMatrix > | ResultMatrix |
typedef sc::AccResult< TAVector > | AccResultVector |
typedef sc::AccResult< TAMatrix > | AccResultMatrix |
typedef TiledArray::TensorD | TATensor |
Public Member Functions | |
CLSCF (const sc::Ref< sc::KeyVal > &kval) | |
Key Value constructor . More... | |
virtual void | compute () override |
Recompute at least the results that have compute true and are not already computed. More... | |
virtual const TAMatrix & | rdm1 () override final |
Return the computed AO density. | |
virtual double | scf_energy () override final |
Return the scf enengy computed to the desired accuracy level. | |
virtual const TAMatrix & | rdm1 (sc::SpinCase1 s) |
Returns expression to the AO density matrix. More... | |
Public Member Functions inherited from mpqc::TA::SCF | |
SCF (const sc::Ref< sc::KeyVal > &kval) | |
SCF KeyValue constructor. More... | |
virtual size_t | nelectron () const override |
virtual size_t | occupation () const |
TAMatrix | MO_eigenvectors (double) |
TAMatrix | MO_eigenvectors () |
ElemVector | MO_eigenvalues (double) |
ElemVector | MO_eigenvalues () |
ElemTAEigenSystem | MO_eigensystem (double) |
ElemTAEigenSystem | MO_eigensystem () |
TAMatrix & | ao_fock (double) |
TAMatrix & | ao_fock () |
void | print (std::ostream &os=sc::ExEnv::out0()) const |
Print information about the object. | |
Public Member Functions inherited from mpqc::TA::Wavefunction | |
Wavefunction (const sc::Ref< sc::KeyVal > &kval) | |
The KeyVal constructor. | |
const sc::Ref< TiledBasisSet > & | basis () const |
const sc::Ref< sc::Integral > & | integral () const |
sc::Ref< sc::Molecule > | molecule () const override |
double | total_charge () const |
virtual double | magnetic_moment () const |
Computes the S (or J) magnetic moment of the target state(s), in units of . More... | |
bool | spin_polarized () |
virtual const TAMatrix & | ao_overlap () |
Returns the AO overlap. | |
virtual const TAMatrix & | ao_hcore () |
Returns expression to the AO overlap matrix. More... | |
unsigned | debug () const |
Returns expression to the AO hcore matrix. More... | |
void | obsolete () |
makes this object obsolete, next call to compute() will recompute | |
void | print (std::ostream &os=sc::ExEnv::out0()) const |
Print information about the object. | |
Public Member Functions inherited from sc::MolecularEnergy | |
MolecularEnergy (const MolecularEnergy &) | |
MolecularEnergy (const Ref< KeyVal > &) | |
The KeyVal constructor. More... | |
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. More... | |
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 RefSCDimension | moldim () const |
void | guess_hessian (RefSymmSCMatrix &) |
Compute a quick, approximate hessian. | |
RefSymmSCMatrix | inverse_hessian (RefSymmSCMatrix &) |
int | gradient_implemented () const |
Reports whether gradient is implemented either analytically or using MolecularGradient object. More... | |
int | hessian_implemented () const |
Reports whether hessian is implemented either analytically or using MolecularHessian object. More... | |
void | set_desired_gradient_accuracy (double acc) |
These functions overload their Function counterparts. More... | |
void | set_desired_hessian_accuracy (double acc) |
void | set_molhess (const Ref< MolecularHessian > &molhess) |
Use this function to provide MolecularHessian object that will be used to compute hessian. More... | |
const Ref< MolecularHessian > & | molhess () const |
RefSymmSCMatrix | hessian () |
Will throw if hessian_implemented() returns 0. | |
void | set_molgrad (const Ref< MolecularGradient > &molgrad) |
Use this function to provide MolecularGradient object that will be used to compute gradient. More... | |
const Ref< MolecularGradient > & | molgrad () const |
RefSCVector | gradient () |
Will throw if gradient_implemented() returns 0. | |
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. More... | |
virtual void | purge () |
This function purges any caches of data in MolecularEnergy. More... | |
const RefSCVector & | electric_field () const |
returns the electric field vector | |
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 |
Public Member Functions inherited from sc::Function | |
int | gradient_needed () const |
int | do_gradient (int) |
virtual double | actual_gradient_accuracy () const |
virtual double | desired_gradient_accuracy () const |
AccResultRefSCVector & | gradient_result () |
int | hessian_needed () const |
int | do_hessian (int) |
virtual double | actual_hessian_accuracy () const |
virtual double | desired_hessian_accuracy () const |
AccResultRefSymmSCMatrix & | hessian_result () |
virtual bool | desired_value_accuracy_set_to_default () const |
virtual bool | desired_gradient_accuracy_set_to_default () const |
virtual bool | desired_hessian_accuracy_set_to_default () const |
virtual int | value_implemented () const |
RefSCVector | get_x () const |
const RefSCVector & | get_x_no_copy () const |
void | print_desired_accuracy (std::ostream &=ExEnv::out0()) const |
similar to print(), but only prins desired accuracies | |
virtual bool | throw_if_tolerance_exceeded () const |
Overridden Compute member. | |
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: More... | |
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. More... | |
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. More... | |
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. More... | |
virtual void | save_vbase_state (StateOut &) |
Save the virtual bases for the object. More... | |
Public Member Functions inherited from sc::DescribedClass | |
DescribedClass (const DescribedClass &) | |
DescribedClass & | operator= (const DescribedClass &) |
ClassDesc * | class_desc () const MPQC__NOEXCEPT |
This returns the unique pointer to the ClassDesc corresponding to the given type_info object. More... | |
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< DescribedClass > | ref () |
Return this object wrapped up in a Ref smart pointer. More... | |
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. More... | |
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. More... | |
Protected Member Functions | |
virtual TAMatrix & | ao_density () final |
Returns reference to rdm1_.result_noupdate(), but guarantees nothing about its computed status. | |
double | iter_energy () |
Protected Member Functions inherited from mpqc::TA::SCF | |
virtual void | compute_ao_fock (double)=0 |
virtual TAMatrix & | scf_ao_fock_ () |
unsigned int | miniter () const |
unsigned int | maxiter () const |
void | set_occupation (unsigned int i) |
Protected Member Functions inherited from mpqc::TA::Wavefunction | |
const sc::Ref< mpqc::World > | world () const |
Protected Member Functions inherited from sc::MolecularEnergy | |
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. More... | |
virtual void | set_hessian (RefSymmSCMatrix &) |
void | x_to_molecule () |
void | molecule_to_x () |
virtual bool | analytic_gradient_implemented () const |
must overload this in a derived class if analytic gradient can be computed More... | |
virtual bool | analytic_hessian_implemented () const |
must overload this in a derived class if analytic hessian can be computed More... | |
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. More... | |
Protected Member Functions inherited from sc::RefCount | |
RefCount (const RefCount &) | |
RefCount & | operator= (const RefCount &) |
Protected Attributes | |
TAMatrix | Coeff_ |
Protected Attributes inherited from mpqc::TA::Wavefunction | |
ResultMatrix | rdm1_ |
ResultMatrix | rdm1_alpha_ |
ResultMatrix | rdm1_beta_ |
Protected Attributes inherited from sc::MolecularEnergy | |
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_. | |
bool | desired_value_accuracy_set_to_default_ |
bool | desired_gradient_accuracy_set_to_default_ |
bool | desired_hessian_accuracy_set_to_default_ |
bool | throw_if_tolerance_exceeded_ |
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. More... | |
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) |
Protected Types inherited from mpqc::TA::SCF | |
typedef Wavefunction::AccResultMatrix | AccResultMatrix |
typedef Wavefunction::AccResultVector | AccResultVector |
typedef sc::AccResult< ElemTAEigenSystem > | AccResultEigenSystem |
The taclscf class is the base class for implementing self-consistent proceedure for closed-shell molecules in MPQC3.
mpqc::TA::CLSCF::CLSCF | ( | const sc::Ref< sc::KeyVal > & | kval | ) |
Key Value constructor .
. .
|
overridevirtual |
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::Compute.
|
virtual |
Returns expression to the AO density matrix.
If the matrix has not been computed, then it will be computed by the calling class. Return electron 1-body reduced density matrix of spin s
in AO basis.
Implements mpqc::TA::Wavefunction.