.TH "sc::SCF" 3 "Sun Oct 4 2020" "Version 2.3.1" "MPQC" \" -*- nroff -*- .ad l .nh .SH NAME sc::SCF \- The \fBSCF\fP class is the base for all classes that use a self-consistent field procedure to solve an effective one body problem\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBsc::OneBodyWavefunction\fP\&. .PP Inherited by \fBsc::CLSCF\fP, \fBsc::HSOSSCF\fP, \fBsc::OSSSCF\fP, \fBsc::TCSCF\fP, and \fBsc::UnrestrictedSCF\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBSCF\fP (\fBStateIn\fP &)" .br .ti -1c .RI "\fBSCF\fP (const \fBRef\fP< \fBKeyVal\fP > &)" .br .RI "The \fBKeyVal\fP constructor\&. " .ti -1c .RI "void \fBsave_data_state\fP (\fBStateOut\fP &)" .br .RI "Save the base classes (with save_data_state) and the members in the same order that the \fBStateIn\fP CTOR initializes them\&. " .ti -1c .RI "\fBRefSCMatrix\fP \fBoso_eigenvectors\fP ()" .br .RI "Returns the orthogonal MO (columns) to orthogonal-SO (rows) transformation matrix\&. " .ti -1c .RI "\fBRefDiagSCMatrix\fP \fBeigenvalues\fP ()" .br .RI "Returns the MO basis eigenvalues\&. " .ti -1c .RI "int \fBspin_unrestricted\fP ()" .br .RI "Return 1 if the alpha orbitals are not equal to the beta orbitals\&. " .ti -1c .RI "virtual int \fBn_fock_matrices\fP () const =0" .br .ti -1c .RI "virtual \fBRefSymmSCMatrix\fP \fBfock\fP (int)=0" .br .ti -1c .RI "virtual \fBRefSymmSCMatrix\fP \fBeffective_fock\fP ()=0" .br .ti -1c .RI "virtual double \fBone_body_energy\fP ()" .br .ti -1c .RI "virtual void \fBtwo_body_energy\fP (double &ec, double &ex)" .br .ti -1c .RI "void \fBsymmetry_changed\fP ()" .br .RI "Call this if you have changed the molecular symmetry of the molecule contained by this \fBMolecularEnergy\fP\&. " .ti -1c .RI "void \fBobsolete\fP ()" .br .RI "Marks all results as being out of date\&. " .ti -1c .RI "void \fBprint\fP (std::ostream &o=\fBExEnv::out0\fP()) const" .br .RI "Print information about the object\&. " .in -1c .SS "Protected Types" .in +1c .ti -1c .RI "enum \fBAccess\fP { \fBRead\fP, \fBWrite\fP, \fBAccum\fP }" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual void \fBinit_threads\fP ()" .br .ti -1c .RI "virtual void \fBdone_threads\fP ()" .br .ti -1c .RI "virtual void \fBcompute\fP ()" .br .RI "Recompute at least the results that have compute true and are not already computed\&. " .ti -1c .RI "virtual double \fBcompute_vector\fP (double &, double enuclear)" .br .ti -1c .RI "virtual \fBRef\fP< \fBSCExtrapError\fP > \fBextrap_error\fP ()" .br .ti -1c .RI "virtual void \fBcompute_gradient\fP (const \fBRefSCVector\fP &)" .br .ti -1c .RI "virtual void \fBcompute_hessian\fP (const \fBRefSymmSCMatrix\fP &)" .br .ti -1c .RI "virtual void \fBsavestate_iter\fP (int)" .br .ti -1c .RI "virtual void \fBsavestate_to_file\fP (const std::string &filename)" .br .ti -1c .RI "signed char * \fBinit_pmax\fP (double *)" .br .ti -1c .RI "\fBRefSymmSCMatrix\fP \fBget_local_data\fP (const \fBRefSymmSCMatrix\fP &, double *&, Access)" .br .ti -1c .RI "virtual void \fBinitial_vector\fP (int needv=1)" .br .ti -1c .RI "void \fBinit_mem\fP (int)" .br .ti -1c .RI "void \fBso_density\fP (const \fBRefSymmSCMatrix\fP &d, double occ, int alp=1)" .br .ti -1c .RI "int * \fBread_occ\fP (const \fBRef\fP< \fBKeyVal\fP > &, const char *name, int nirrep)" .br .ti -1c .RI "virtual void \fBset_occupations\fP (const \fBRefDiagSCMatrix\fP &)=0" .br .ti -1c .RI "virtual void \fBinit_vector\fP ()=0" .br .ti -1c .RI "virtual void \fBdone_vector\fP ()=0" .br .ti -1c .RI "virtual double \fBnew_density\fP ()=0" .br .ti -1c .RI "virtual void \fBreset_density\fP ()=0" .br .ti -1c .RI "virtual double \fBscf_energy\fP ()=0" .br .ti -1c .RI "virtual \fBRef\fP< \fBSCExtrapData\fP > \fBextrap_data\fP ()=0" .br .ti -1c .RI "virtual void \fBao_fock\fP (double accuracy)=0" .br .ti -1c .RI "virtual void \fBinit_gradient\fP ()=0" .br .ti -1c .RI "virtual void \fBdone_gradient\fP ()=0" .br .ti -1c .RI "virtual \fBRefSymmSCMatrix\fP \fBlagrangian\fP ()=0" .br .ti -1c .RI "virtual \fBRefSymmSCMatrix\fP \fBgradient_density\fP ()=0" .br .ti -1c .RI "virtual void \fBtwo_body_deriv\fP (double *)=0" .br .ti -1c .RI "virtual void \fBinit_hessian\fP ()=0" .br .ti -1c .RI "virtual void \fBdone_hessian\fP ()=0" .br .in -1c .SS "Protected Attributes" .in +1c .ti -1c .RI "int \fBneed_vec_\fP" .br .ti -1c .RI "int \fBcompute_guess_\fP" .br .ti -1c .RI "int \fBkeep_guess_wfn_\fP" .br .ti -1c .RI "\fBRef\fP< \fBOneBodyWavefunction\fP > \fBguess_wfn_\fP" .br .ti -1c .RI "int \fBalways_use_guess_wfn_\fP" .br .ti -1c .RI "\fBRef\fP< \fBSelfConsistentExtrapolation\fP > \fBextrap_\fP" .br .ti -1c .RI "\fBRef\fP< \fBAccumH\fP > \fBaccumdih_\fP" .br .ti -1c .RI "\fBRef\fP< \fBAccumH\fP > \fBaccumddh_\fP" .br .ti -1c .RI "int \fBmaxiter_\fP" .br .ti -1c .RI "int \fBdens_reset_freq_\fP" .br .ti -1c .RI "int \fBreset_occ_\fP" .br .ti -1c .RI "int \fBlocal_dens_\fP" .br .ti -1c .RI "size_t \fBstorage_\fP" .br .ti -1c .RI "int \fBprint_all_evals_\fP" .br .ti -1c .RI "int \fBprint_occ_evals_\fP" .br .ti -1c .RI "double \fBlevel_shift_\fP" .br .ti -1c .RI "\fBRef\fP< \fBMessageGrp\fP > \fBscf_grp_\fP" .br .ti -1c .RI "\fBRef\fP< \fBThreadGrp\fP > \fBthreadgrp_\fP" .br .ti -1c .RI "int \fBlocal_\fP" .br .ti -1c .RI "\fBRef\fP< \fBTwoBodyInt\fP > * \fBtbis_\fP" .br .ti -1c .RI "std::string \fBprevious_savestate_file_\fP" .br .ti -1c .RI "\fBRefSCMatrix\fP \fBoso_scf_vector_\fP" .br .ti -1c .RI "\fBRefSCMatrix\fP \fBoso_scf_vector_beta_\fP" .br .ti -1c .RI "\fBRefSymmSCMatrix\fP \fBhcore_\fP" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP The \fBSCF\fP class is the base for all classes that use a self-consistent field procedure to solve an effective one body problem\&. .SH "Constructor & Destructor Documentation" .PP .SS "sc::SCF::SCF (const \fBRef\fP< \fBKeyVal\fP > &)" .PP The \fBKeyVal\fP constructor\&. .IP "\fB\fCmaxiter\fP\fP" 1c This integer specifies the maximum number of \fBSCF\fP iterations\&. The default is 40\&. .PP .IP "\fB\fCdensity_reset_frequency\fP\fP" 1c This integer specifies how often, in term of \fBSCF\fP iterations, $\Delta D$ will be reset to $D$\&. The default is 10\&. .PP .IP "\fB\fCreset_occuptions\fP\fP" 1c Reassign the occupations after each iteration based on the eigenvalues\&. This only has an effect for molecules with higher than $C_1$ symmetry\&. The default is false\&. .PP .IP "\fB\fClevel_shift\fP\fP" 1c The default is 0\&. .PP .IP "\fB\fCextrap\fP\fP" 1c This specifies an object of type \fBSelfConsistentExtrapolation\fP\&. The default is a \fBDIIS\fP object\&. .PP .IP "\fB\fCmemory\fP\fP" 1c The amount of memory that each processor may use\&. The default is 0 (minimal memory use)\&. .PP .IP "\fB\fClocal_density\fP\fP" 1c If this is true, a local copy of the density and $G$ matrix will be made on all nodes, even if a distributed matrix specialization is used\&. The default is true\&. .PP .IP "\fB\fCguess_wavefunction\fP\fP" 1c This specifies the initial guess for the solution to the \fBSCF\fP equations\&. This can be either a \fBOneBodyWavefunction\fP object or the name of file that contains the saved state of a \fBOneBodyWavefunction\fP object\&. By default the one-electron hamiltonian will be diagonalized to obtain the initial guess\&. .PP .IP "\fB\fCkeep_guess_wavefunction\fP\fP" 1c The guess wavefunction is normally discarded after it is projected\&. Setting this boolean variable to true will cause the guess to be kept\&. This is useful when doing frequencies of symmetric molecules by finite displacements, because the wavefunction is lost whenever the molecule is displaced into lower symmetry\&. .PP .IP "\fB\fCalways_use_guess_wavefunction\fP\fP" 1c If the orbitals must be recomputed after they have already been computed once, then the old orbitals are used as the initial guess by default\&. However, if this option is true, then the guess wavefunction will be used, if available\&. If a guess wavefunction is not available, then a core Hamiltonian guess will be used\&. If this option is set to true, then keep_guess_wavefunction should also be set to true\&. .PP .IP "\fB\fCprint_evals\fP\fP" 1c Takes a boolean value\&. If true, print all eigenvalues after the \fBSCF\fP procedure converges\&. Takes a boolean value\&. The default is false\&. .PP .IP "\fB\fCprint_occ_evals\fP\fP" 1c Takes a boolean value\&. If true, print the occupied eigenvalues after the \fBSCF\fP procedure converges\&. The default is false\&. .PP .PP .SH "Member Function Documentation" .PP .SS "virtual void sc::SCF::compute ()\fC [protected]\fP, \fC [virtual]\fP" .PP Recompute at least the results that have compute true and are not already computed\&. This should only be called by \fBResult\fP's members\&. .PP Implements \fBsc::Compute\fP\&. .SS "void sc::SCF::obsolete ()\fC [virtual]\fP" .PP Marks all results as being out of date\&. Any subsequent access to results will cause \fBCompute::compute()\fP to be called\&. .PP Reimplemented from \fBsc::Compute\fP\&. .SS "void sc::SCF::save_data_state (\fBStateOut\fP &)\fC [virtual]\fP" .PP Save the base classes (with save_data_state) and the members in the same order that the \fBStateIn\fP CTOR initializes them\&. This must be implemented by the derived class if the class has data\&. .PP Reimplemented from \fBsc::MolecularEnergy\fP\&. .PP Reimplemented in \fBsc::UnrestrictedSCF\fP, \fBsc::UHF\fP, \fBsc::TCSCF\fP, and \fBsc::TCHF\fP\&. .SH "Author" .PP Generated automatically by Doxygen for MPQC from the source code\&.