MPQC 3.0.0-alpha
Loading...
Searching...
No Matches

Configuration Interaction (CI) implementation More...

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.
 
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.
 
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< SubspaceBlockmpqc::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.
 
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)
 

Detailed Description

Configuration Interaction (CI) implementation

Function Documentation

◆ direct()

◆ norm()

double mpqc::ci::norm ( ci::Vector & V,
const std::vector< mpqc::range > & local,
const MPI::Comm & comm )

Compute CI vector norm.

Parameters
[in]VCI Vector
localvector of sub-blocks the node will process (implies parallelization)
commMPI comm

References mpqc::ci::norm().

Referenced by mpqc::ci::direct(), and mpqc::ci::norm().

◆ orthonormalize()

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)

Parameters
[in]borthonormal CI Vector (notice ortho*normal* - MUST be norm-1)
[in,out]dCI Vector to orthonormalize
localvector of sub-blocks the node will process (implies parallelization)
commMPI comm
Returns
<d,b>*<d',d'>

Referenced by mpqc::ci::direct().

◆ sigma()

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 )

Generated at Wed Sep 25 2024 02:45:31 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.12.0.