MPQC
3.0.0-alpha
|
Classes | |
struct | mpqc::ci::Config |
CI configuration. More... | |
struct | mpqc::ci::CI< CIFunctor, Index > |
CI class template. More... | |
struct | mpqc::ci::Restricted |
Restricted CI Functor. More... | |
struct | mpqc::ci::Spin< S > |
Electron spin. More... | |
struct | mpqc::ci::Space< Spin > |
A CI space, marked by Spin S and rank. More... | |
struct | mpqc::ci::Subspace< Spin > |
A range of a space where all objects in the subspace range are assumed to have the same space rank. More... | |
struct | mpqc::ci::Subspace< Any > |
A subspace specialization that "discard" the spin parameter. More... | |
struct | mpqc::ci::SubspaceGrid |
Grid of subspaces, represented as blocks of determinants defined by alpha/beta pair, along with sparsity information. More... | |
struct | mpqc::ci::SubspaceBlock |
struct | mpqc::ci::Vector |
Block CI Vector, with 1-d (vector) and 2-d (matrix) access. More... | |
Typedefs | |
typedef Spin< 1 > | mpqc::ci::Alpha |
typedef Spin<-1 > | mpqc::ci::Beta |
typedef Spin< 0 > | mpqc::ci::Any |
Functions | |
void | mpqc::ci::read (ci::Vector &V, File::Dataspace< double > F, const std::vector< mpqc::range > &local) |
read local segments into V from F | |
void | mpqc::ci::write (ci::Vector &V, File::Dataspace< double > F, const std::vector< mpqc::range > &local) |
write local segments of V to F | |
template<class Type , class Index > | |
std::vector< double > | mpqc::ci::direct (CI< Type, Index > &ci, const mpqc::Vector &h, const mpqc::Matrix &V) |
Direct Davidson. More... | |
template<class Type , class Index > | |
void | mpqc::ci::sigma (const CI< Type, Index > &ci, const mpqc::Vector &h, const Matrix &V, ci::Vector &C, ci::Vector &S) |
Computes sigma 1,2,3 contributions. More... | |
template<class Spin > | |
bool | mpqc::ci::operator< (const Space< Spin > &a, const Space< Spin > &b) |
Compare two spaces by their rank. | |
template<class Spin > | |
std::vector< Subspace< Spin > > | mpqc::ci::split (const std::vector< Subspace< Spin > > &V, size_t block) |
std::vector< SubspaceBlock > | mpqc::ci::blocks (const std::vector< Subspace< Alpha > > &A, const std::vector< Subspace< Beta > > &B) |
void | mpqc::ci::operator<< (Vector::Block1d block, const mpqc::Vector &v) |
Set vector block to v. | |
void | mpqc::ci::operator>> (Vector::Block1d block, mpqc::Vector &v) |
Get vector block into v. | |
double | mpqc::ci::norm (ci::Vector &V, const std::vector< mpqc::range > &local, const MPI::Comm &comm) |
Compute CI vector norm. More... | |
double | mpqc::ci::orthonormalize (ci::Vector &b, ci::Vector &D, const std::vector< mpqc::range > &local, const MPI::Comm &comm) |
Schmidt orthogonalization d' = normalized(d - <d,b>*b) More... | |
Configuration Interaction (CI) implementation
std::vector<double> mpqc::ci::direct | ( | CI< Type, Index > & | ci, |
const mpqc::Vector & | h, | ||
const mpqc::Matrix & | V | ||
) |
Direct Davidson.
h | one-electron MO integrals (packed symmetric) | |
V | two-electron MO integrals (packed symmetric) | |
[in,out] | ci | CI object |
References mpqc::ci::CI< CIFunctor, Index >::alpha, mpqc::ci::CI< CIFunctor, Index >::beta, mpqc::ci::CI< CIFunctor, Index >::comm, mpqc::ci::CI< CIFunctor, Index >::config, MPQC_EXCEPTION, mpqc::norm(), mpqc::orthonormalize(), sc::ExEnv::out0(), mpqc::ci::read(), mpqc::ci::sigma(), mpqc::ci::CI< CIFunctor, Index >::subspace, mpqc::symmetric(), mpqc::ci::CI< CIFunctor, Index >::vector, and mpqc::ci::write().
double mpqc::ci::norm | ( | ci::Vector & | V, |
const std::vector< mpqc::range > & | local, | ||
const MPI::Comm & | comm | ||
) |
Compute CI vector norm.
[in] | V | CI Vector |
local | vector of sub-blocks the node will process (implies parallelization) | |
comm | MPI comm |
References mpqc::norm().
double mpqc::ci::orthonormalize | ( | ci::Vector & | b, |
ci::Vector & | D, | ||
const std::vector< mpqc::range > & | local, | ||
const MPI::Comm & | comm | ||
) |
void mpqc::ci::sigma | ( | const CI< Type, Index > & | ci, |
const mpqc::Vector & | h, | ||
const Matrix & | V, | ||
ci::Vector & | C, | ||
ci::Vector & | S | ||
) |
Computes sigma 1,2,3 contributions.
h | one-electron MO integrals (packed symmetric) | |
V | two-electron MO integrals (packed symmetric) | |
[in] | C | C vector |
[out] | S | Sigma vector |
References mpqc::ci::CI< CIFunctor, Index >::alpha, mpqc::ci::SubspaceGrid::alpha(), mpqc::ci::SubspaceGrid::beta(), mpqc::ci::CI< CIFunctor, Index >::comm, and mpqc::ci::CI< CIFunctor, Index >::subspace.
Referenced by mpqc::ci::direct().