MADNESS  0.10.1
Public Member Functions | Private Types | Private Attributes | List of all members
madness::SubspaceK< T, NDIM > Class Template Reference

The SubspaceK class is a container class holding previous orbitals and residuals. More...

#include <solver.h>

Collaboration diagram for madness::SubspaceK< T, NDIM >:
Collaboration graph
[legend]

Public Member Functions

 SubspaceK (World &world, const ElectronicStructureParams &params, const std::vector< KPoint > &kpoints)
 
void update_subspace (vecfuncT &awfs_new, vecfuncT &bwfs_new, const vecfuncT &awfs_old, const vecfuncT &bwfs_old)
 

Private Types

typedef Function< valueT, NDIMfunctionT
 
typedef std::pair< vecfuncT, vecfuncTpairvecfuncT
 
typedef std::vector< pairvecfuncTsubspaceT
 
typedef Tensor< valueTtensorT
 
typedef std::complex< TvalueT
 
typedef std::vector< functionTvecfuncT
 
typedef std::vector< subspaceTvecsubspaceT
 
typedef std::vector< tensorTvectensorT
 

Private Attributes

std::vector< KPoint_kpoints
 
ElectronicStructureParams _params
 
vectensorT _Q
 
double _residual
 
vecsubspaceT _subspace
 
World_world
 

Detailed Description

template<typename T, int NDIM>
class madness::SubspaceK< T, NDIM >

The SubspaceK class is a container class holding previous orbitals and residuals.

The Solver class uses the Krylov Accelerated Inexact Newton Solver (KAIN) accelerate the convergence a given calculation. The KAIN solver needs to store a subspace of previous orbitals and residuals. In the case is this implementation, the orbitals are store according to which k-point to which they belong.

Member Typedef Documentation

◆ functionT

template<typename T , int NDIM>
typedef Function<valueT,NDIM> madness::SubspaceK< T, NDIM >::functionT
private

◆ pairvecfuncT

template<typename T , int NDIM>
typedef std::pair<vecfuncT,vecfuncT> madness::SubspaceK< T, NDIM >::pairvecfuncT
private

◆ subspaceT

template<typename T , int NDIM>
typedef std::vector<pairvecfuncT> madness::SubspaceK< T, NDIM >::subspaceT
private

◆ tensorT

template<typename T , int NDIM>
typedef Tensor<valueT> madness::SubspaceK< T, NDIM >::tensorT
private

◆ valueT

template<typename T , int NDIM>
typedef std::complex<T> madness::SubspaceK< T, NDIM >::valueT
private

◆ vecfuncT

template<typename T , int NDIM>
typedef std::vector<functionT> madness::SubspaceK< T, NDIM >::vecfuncT
private

◆ vecsubspaceT

template<typename T , int NDIM>
typedef std::vector<subspaceT> madness::SubspaceK< T, NDIM >::vecsubspaceT
private

◆ vectensorT

template<typename T , int NDIM>
typedef std::vector<tensorT> madness::SubspaceK< T, NDIM >::vectensorT
private

Constructor & Destructor Documentation

◆ SubspaceK()

template<typename T , int NDIM>
madness::SubspaceK< T, NDIM >::SubspaceK ( World world,
const ElectronicStructureParams params,
const std::vector< KPoint > &  kpoints 
)
inline

Member Function Documentation

◆ update_subspace()

template<typename T , int NDIM>
void madness::SubspaceK< T, NDIM >::update_subspace ( vecfuncT awfs_new,
vecfuncT bwfs_new,
const vecfuncT awfs_old,
const vecfuncT bwfs_old 
)
inline

Member Data Documentation

◆ _kpoints

template<typename T , int NDIM>
std::vector<KPoint> madness::SubspaceK< T, NDIM >::_kpoints
private

◆ _params

template<typename T , int NDIM>
ElectronicStructureParams madness::SubspaceK< T, NDIM >::_params
private

◆ _Q

template<typename T , int NDIM>
vectensorT madness::SubspaceK< T, NDIM >::_Q
private

◆ _residual

template<typename T , int NDIM>
double madness::SubspaceK< T, NDIM >::_residual
private

◆ _subspace

template<typename T , int NDIM>
vecsubspaceT madness::SubspaceK< T, NDIM >::_subspace
private

◆ _world

template<typename T , int NDIM>
World& madness::SubspaceK< T, NDIM >::_world
private

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