MADNESS  version 0.9
Public Types | Public Member Functions | Static Public Member Functions | List of all members
madness::EigSolver< T, NDIM > Class Template Reference

#include <eigsolver.h>

Public Types

typedef Function< T, NDIMfuncT
 
typedef Vector< double, NDIMkvecT
 
typedef SeparatedConvolution
< double, NDIM
operatorT
 
typedef std::shared_ptr
< operatorT
poperatorT
 

Public Member Functions

 EigSolver (World &world, std::vector< funcT > phis, std::vector< double > eigs, std::vector< EigSolverOp< T, NDIM > * > ops, std::vector< kvecT > kpoints, ElectronicStructureParams params)
 Constructor for periodic system. More...
 
 EigSolver (World &world, std::vector< funcT > phis, std::vector< double > eigs, std::vector< EigSolverOp< T, NDIM > * > ops, ElectronicStructureParams params)
 Constructor for non-periodic system. More...
 
virtual ~EigSolver ()
 Destructor. More...
 
void solve (int maxits)
 
void multi_solve (int maxits)
 
double get_eig (int indx)
 
funcT get_phi (int indx)
 
const std::vector< funcT > & phis ()
 
const std::vector< double > & eigs ()
 
void addObserver (IEigSolverObserver< T, NDIM > *obs)
 
matrix_element (const funcT &phii, const funcT &phij)
 Computes a matrix element given the left and right functions. More...
 
void print_matrix_elements (const funcT &phii, const funcT &phij)
 Prints a matrix element given the left and right functions. More...
 
void prepare_ops ()
 Preprocesses the operators for doing an iteration of "eigensolving". More...
 
void make_bsh_operators ()
 Makes the BSH Green's functions for the parallel solver (multi_solve()). More...
 
void update_occupation ()
 

Static Public Member Functions

static funcT compute_rho (std::vector< funcT > phis, std::vector< double > occs, const World &world)
 Computes the electronic density. More...
 

Detailed Description

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

The EigSolver class is the class that is the workhorse of both the Hartree Fock and the DFT algorithms. This class relies on the wrapper class to give it a list of operators to implement as its potential. This should allow for much more reuse.

Member Typedef Documentation

template<typename T, int NDIM>
typedef Function<T,NDIM> madness::EigSolver< T, NDIM >::funcT
template<typename T, int NDIM>
typedef Vector<double,NDIM> madness::EigSolver< T, NDIM >::kvecT
template<typename T, int NDIM>
typedef SeparatedConvolution<double,NDIM> madness::EigSolver< T, NDIM >::operatorT
template<typename T, int NDIM>
typedef std::shared_ptr<operatorT> madness::EigSolver< T, NDIM >::poperatorT

Constructor & Destructor Documentation

template<typename T , int NDIM>
madness::EigSolver< T, NDIM >::EigSolver ( World world,
std::vector< funcT phis,
std::vector< double >  eigs,
std::vector< EigSolverOp< T, NDIM > * >  ops,
std::vector< kvecT kpoints,
ElectronicStructureParams  params 
)

Constructor for periodic system.

References madness::EigSolver< T, NDIM >::compute_rho().

template<typename T , int NDIM>
madness::EigSolver< T, NDIM >::EigSolver ( World world,
std::vector< funcT phis,
std::vector< double >  eigs,
std::vector< EigSolverOp< T, NDIM > * >  ops,
ElectronicStructureParams  params 
)
template<typename T , int NDIM>
madness::EigSolver< T, NDIM >::~EigSolver ( )
virtual

Destructor.

Member Function Documentation

template<typename T, int NDIM>
void madness::EigSolver< T, NDIM >::addObserver ( IEigSolverObserver< T, NDIM > *  obs)
inline
template<typename T , int NDIM>
Function< T, NDIM > madness::EigSolver< T, NDIM >::compute_rho ( std::vector< funcT phis,
std::vector< double >  occs,
const World world 
)
static
template<typename T, int NDIM>
const std::vector<double>& madness::EigSolver< T, NDIM >::eigs ( )
inline
template<typename T, int NDIM>
double madness::EigSolver< T, NDIM >::get_eig ( int  indx)
inline
template<typename T, int NDIM>
funcT madness::EigSolver< T, NDIM >::get_phi ( int  indx)
inline
template<typename T , int NDIM>
void madness::EigSolver< T, NDIM >::make_bsh_operators ( )

Makes the BSH Green's functions for the parallel solver (multi_solve()).

References DEBUG_STREAM, madness::FunctionDefaults< NDIM >::get_k(), madness::FunctionDefaults< NDIM >::get_thresh(), k, and sqrt().

template<typename T , int NDIM>
T madness::EigSolver< T, NDIM >::matrix_element ( const funcT phii,
const funcT phij 
)
template<typename T , int NDIM>
void madness::EigSolver< T, NDIM >::multi_solve ( int  maxits)
template<typename T, int NDIM>
const std::vector<funcT>& madness::EigSolver< T, NDIM >::phis ( )
inline
template<typename T , int NDIM>
void madness::EigSolver< T, NDIM >::prepare_ops ( )

Preprocesses the operators for doing an iteration of "eigensolving".

References madness::EigSolverOp< T, NDIM >::is_rd(), op(), and madness::EigSolverOp< T, NDIM >::prepare_op().

template<typename T , int NDIM>
void madness::EigSolver< T, NDIM >::print_matrix_elements ( const funcT phii,
const funcT phij 
)
template<typename T , int NDIM>
void madness::EigSolver< T, NDIM >::solve ( int  maxits)
template<typename T , int NDIM>
void madness::EigSolver< T, NDIM >::update_occupation ( )

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