|
MPQC
3.0.0-alpha
|
Computes components of the Fock matrix necessary for high-spin open-shell calculations (e.g. More...
#include <chemistry/qc/lcao/hsoshfcontrib.h>
Public Member Functions | |
| 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. More... | |
| 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. More... | |
| 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. More... | |
| 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. More... | |
Public Member Functions inherited from sc::GenericFockContribution | |
| 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. More... | |
| void | accum_remote (const Ref< MessageGrp > &) |
| Sum the Fock matrix contributions from different processors. More... | |
| 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. More... | |
| 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 |
Public Member Functions inherited from sc::FockContribution | |
| FockContribution (const FockContribution &) | |
| double | nint () const |
| double & | nint () |
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... | |
Additional Inherited Members | |
Protected Member Functions inherited from sc::GenericFockContribution | |
| FockBuildMatrix * | fockbuildmatrix (int matrix, const std::string &type, const Ref< MessageGrp > &msg, const Ref< FockBuildAMG > &) |
| GenericFockContribution (int nfmat, int npmat, const Ref< GaussianBasisSet > &f_b1, const Ref< GaussianBasisSet > &f_b2, const Ref< GaussianBasisSet > &p_b, const std::string &fockbuildmatrixtype) | |
| void | pmax_contrib (const Ref< FockBuildMatrix > &mat, signed char *pmax) const |
Protected Member Functions inherited from sc::RefCount | |
| RefCount (const RefCount &) | |
| RefCount & | operator= (const RefCount &) |
Protected Attributes inherited from sc::GenericFockContribution | |
| int | nfmat_ |
| std::vector< Ref< FockBuildMatrix > > | jmats_ |
| the number of Fock matrices | |
| std::vector< Ref< FockBuildMatrix > > | kmats_ |
| std::vector< bool > | k_is_j_ |
| int | npmat_ |
| std::vector< Ref< FockBuildMatrix > > | pmats_ |
| the number of density matrices | |
| Ref< GaussianBasisSet > | f_b1_ |
| Ref< GaussianBasisSet > | f_b2_ |
| Ref< GaussianBasisSet > | p_b_ |
| bool | f_b1_equiv_f_b2 |
| int | nlocks_ |
| std::vector< Ref< ThreadLock > > | locks_ |
| std::string | fockbuildmatrixtype_ |
| bool | use_shell_blocks_ |
| Ref< FockBuildAMG > | fbamg_ |
Protected Attributes inherited from sc::FockContribution | |
| double | nint_ |
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.
|
virtual |
Compute the Coulomb contribution applying all two electron integral permutations.
I, J, K, and L indices must all be unique.
Implements sc::FockContribution.
|
virtual |
Compute the exchange contribution applying all two electron integral permutations.
I, J, K, and L indices must all be unique.
Implements sc::FockContribution.
|
virtual |
Compute the Coulomb contribution applying no two electron integral permutations.
The integrals in buf are the full redundant set (nI*nJ*nK*nL integrals). The computes only the Coulomb contribution to the Fock matrix.
Implements sc::FockContribution.
|
virtual |
Compute the exchange contribution applying no two electron integral permutations.
The integrals in buf are the full redundant set (nI*nJ*nK*nL integrals). The computes only the Coulomb contribution to the Fock matrix.
Implements sc::FockContribution.