Computes components of the Fock matrix necessary for high-spin open-shell calculations (e.g.
More...
|
|
| HSOSHFContribution (const Ref< GaussianBasisSet > &f_b1, const Ref< GaussianBasisSet > &f_b2, const Ref< GaussianBasisSet > &p_b, const std::string &fockbuildmatrixtype) |
| |
|
| HSOSHFContribution (const HSOSHFContribution &) |
| |
| Ref< FockContribution > | clone () |
| |
| void | contrib_e_J (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf) |
| | Compute the Coulomb contribution applying no two electron integral permutations.
|
| |
| void | contrib_e_K (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf) |
| | Compute the exchange contribution applying no two electron integral permutations.
|
| |
| void | contrib_p12_p13p24_J (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf) |
| |
| void | contrib_p12_p13p24_K (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf) |
| |
| void | contrib_p34_p13p24_J (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf) |
| |
| void | contrib_p34_p13p24_K (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf) |
| |
| void | contrib_p12_p34_J (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf) |
| |
| void | contrib_p12_p34_K (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf) |
| |
| void | contrib_p34_J (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf) |
| |
| void | contrib_p34_K (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf) |
| |
| void | contrib_p13p24_J (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf) |
| |
| void | contrib_p13p24_K (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf) |
| |
| void | contrib_all_J (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf) |
| | Compute the Coulomb contribution applying all two electron integral permutations.
|
| |
| void | contrib_all_K (double factor, int I, int J, int K, int L, int nI, int nJ, int nK, int nL, const double *RESTRICT buf) |
| | Compute the exchange contribution applying all two electron integral permutations.
|
| |
| double * | jmat_shell_block (int i, int I, int J) |
| |
|
bool | jmat_symmetric (int i) const |
| |
| double * | kmat_shell_block (int i, int I, int J) |
| |
|
bool | kmat_symmetric (int i) const |
| |
| const double * | pmat_shell_block (int i, int I, int J) |
| |
| double * | jmat_block (int i, int I, int J) |
| |
| double * | kmat_block (int i, int I, int J) |
| |
| const double * | pmat_block (int i, int I, int J) |
| |
| Ref< ThreadLock > & | get_lock (int i, int Ish, int Jsh) |
| |
|
double * | alloc_scratch (int size) |
| |
|
void | free_scratch (double *data) |
| |
| void | set_fmat (int i, const RefSCMatrix &) |
| |
| void | set_fmat (int i, const RefSymmSCMatrix &) |
| |
| void | set_jmat (int i, const RefSCMatrix &) |
| |
| void | set_jmat (int i, const RefSymmSCMatrix &) |
| |
| void | set_kmat (int i, const RefSCMatrix &) |
| |
| void | set_kmat (int i, const RefSymmSCMatrix &) |
| |
| void | set_pmat (int i, const RefSymmSCMatrix &) |
| |
| void | copy_matrices (int unique_id) |
| | Copy matrices to allow multiple threads to coexist.
|
| |
| void | accum (const Ref< FockContribution > &) |
| | Sum the Fock matrix contributions from different threads.
|
| |
| void | accum_remote (const Ref< MessageGrp > &) |
| | Sum the Fock matrix contributions from different processors.
|
| |
| void | update () |
| | Push the internal Fock matrix data back into the original object.
|
| |
| signed char * | compute_pmax () const |
| | Compute the maximum of the density in each block.
|
| |
| void | activate () |
| |
| void | sync () |
| |
| void | deactivate () |
| |
| void | prefetch_blocks (int I, int J, int ifetch, int nfetch) |
| |
| void | finish_prefetch_blocks () |
| |
| void | set_fockblocks (const Ref< FockBlocks > &blocks_f1, const Ref< FockBlocks > &blocks_f2, const Ref< FockBlocks > &blocks_p) |
| |
| void | flush () |
| |
|
const Ref< FockBuildMatrix > & | jmat (int i) |
| |
|
const Ref< FockBuildMatrix > & | kmat (int i) |
| |
|
const Ref< FockBuildMatrix > & | pmat (int i) |
| |
|
bool | use_shell_blocks () const |
| |
|
| FockContribution (const FockContribution &) |
| |
|
double | nint () const |
| |
|
double & | nint () |
| |
| size_t | identifier () const |
| | Return the unique identifier for this object that can be compared for different objects of different types.
|
| |
|
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 |
| | Return 1 if the object is managed. Otherwise return 0.
|
| |
Computes components of the Fock matrix necessary for high-spin open-shell calculations (e.g.
HSOSSCF and UnrestrictedSCF). Requires as input two density matrices P: P(0) is the total density and P(1) is the spin density (P(alpha) - P(beta)). Spin density is only used to compute a contribution to the exchange matrix. The resulting matrices can then be combined to produce alpha and beta components of J, K, and F matrices matrices as follows: J(alpha) = J(beta) = J(0), K(alpha) = K(0) + K(1), K(beta) = K(0) - K(1), F(alpha) = F(0) + F(1), F(beta) = F(0) - F(1). The corresponding closed-shell (F(c)) and open-shell (F(o)) matrices used in HSOSSCF can be obtained as follows: F(o) = F(alpha), F(c) = (F(alpha) + F(beta))/2.
Output matrices are in AO basis. If f_b1 == f_b2 then the output is the skeleton AO matrix that needs to be symmetrized with PetiteList, else the output is the full AO matrix.