sc::HSOSHFContribution Class Reference

Computes components of the Fock matrix necessary for high-spin open-shell calculations (e.g. More...

#include <chemistry/qc/scf/hsoshfcontrib.h>

Inheritance diagram for sc::HSOSHFContribution:

Inheritance graph
[legend]

List of all members.

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 *restrictxx 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 *restrictxx 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 *restrictxx 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 *restrictxx 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 *restrictxx 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 *restrictxx 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 *restrictxx 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 *restrictxx 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 *restrictxx 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 *restrictxx 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 *restrictxx 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 *restrictxx 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 *restrictxx 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 *restrictxx buf)
 Compute the exchange contribution applying all two electron integral permutations.


Detailed Description

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.


Member Function Documentation

void sc::HSOSHFContribution::contrib_e_J ( double  factor,
int  I,
int  J,
int  K,
int  L,
int  nI,
int  nJ,
int  nK,
int  nL,
const double *restrictxx  buf 
)

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.

void sc::HSOSHFContribution::contrib_e_K ( double  factor,
int  I,
int  J,
int  K,
int  L,
int  nI,
int  nJ,
int  nK,
int  nL,
const double *restrictxx  buf 
)

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.

void sc::HSOSHFContribution::contrib_all_J ( double  factor,
int  I,
int  J,
int  K,
int  L,
int  nI,
int  nJ,
int  nK,
int  nL,
const double *restrictxx  buf 
)

Compute the Coulomb contribution applying all two electron integral permutations.

I, J, K, and L indices must all be unique.

void sc::HSOSHFContribution::contrib_all_K ( double  factor,
int  I,
int  J,
int  K,
int  L,
int  nI,
int  nJ,
int  nK,
int  nL,
const double *restrictxx  buf 
)

Compute the exchange contribution applying all two electron integral permutations.

I, J, K, and L indices must all be unique.


The documentation for this class was generated from the following file:

Generated at Sun Feb 22 10:12:51 2009 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.5.6.
These pages are hosted on SourceForge.net