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

#include <SCFOperators.h>

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

Classes

class  ExchangeImpl
 

Public Types

enum  Algorithm { small_memory , large_memory , multiworld_efficient }
 
typedef Function< T, NDIMfunctionT
 
using implT = std::shared_ptr< ExchangeImpl >
 
typedef Tensor< TtensorT
 
typedef std::vector< functionTvecfuncT
 
- Public Types inherited from madness::SCFOperatorBase< T, NDIM >
typedef Function< T, NDIMfunctionT
 
typedef Tensor< TtensorT
 
typedef std::vector< functionTvecfuncT
 

Public Member Functions

 Exchange (World &world, const double lo, const double thresh=FunctionDefaults< NDIM >::get_thresh())
 default ctor More...
 
 Exchange (World &world, const Nemo *nemo, const int ispin)
 ctor with a nemo calculation More...
 
 Exchange (World &world, const SCF *calc, const int ispin)
 ctor with a conventional calculation More...
 
std::string info () const
 print some information about this operator More...
 
bool is_symmetric () const
 
T operator() (const Function< T, NDIM > &bra, const Function< T, NDIM > &ket) const
 compute the matrix element <bra | K | ket> More...
 
Function< T, NDIMoperator() (const Function< T, NDIM > &ket) const
 
Tensor< Toperator() (const vecfuncT &vbra, const vecfuncT &vket) const
 compute the matrix < vbra | K | vket > More...
 
vecfuncT operator() (const vecfuncT &vket) const
 apply the exchange operator on a vector of functions More...
 
Exchangeset_algorithm (const Algorithm &alg)
 
Exchangeset_bra_and_ket (const vecfuncT &bra, const vecfuncT &ket)
 
Exchangeset_printlevel (const long &level)
 
Exchangeset_symmetric (const bool flag)
 
Exchangeset_taskq (std::shared_ptr< MacroTaskQ > taskq1)
 
- Public Member Functions inherited from madness::SCFOperatorBase< T, NDIM >
 SCFOperatorBase ()=default
 
 SCFOperatorBase (std::shared_ptr< MacroTaskQ > taskq)
 
virtual ~SCFOperatorBase ()
 

Private Attributes

implT impl
 

Additional Inherited Members

- Public Attributes inherited from madness::SCFOperatorBase< T, NDIM >
std::shared_ptr< MacroTaskQtaskq =0
 

Member Typedef Documentation

◆ functionT

template<typename T , std::size_t NDIM>
typedef Function<T,NDIM> madness::Exchange< T, NDIM >::functionT

◆ implT

template<typename T , std::size_t NDIM>
using madness::Exchange< T, NDIM >::implT = std::shared_ptr<ExchangeImpl>

◆ tensorT

template<typename T , std::size_t NDIM>
typedef Tensor<T> madness::Exchange< T, NDIM >::tensorT

◆ vecfuncT

template<typename T , std::size_t NDIM>
typedef std::vector<functionT> madness::Exchange< T, NDIM >::vecfuncT

Member Enumeration Documentation

◆ Algorithm

template<typename T , std::size_t NDIM>
enum madness::Exchange::Algorithm
Enumerator
small_memory 
large_memory 
multiworld_efficient 

Constructor & Destructor Documentation

◆ Exchange() [1/3]

template<typename T , std::size_t NDIM>
madness::Exchange< T, NDIM >::Exchange ( World world,
const double  lo,
const double  thresh = FunctionDefaults<NDIM>::get_thresh() 
)

default ctor

ctor

◆ Exchange() [2/3]

template<typename T , std::size_t NDIM>
madness::Exchange< T, NDIM >::Exchange ( World world,
const SCF calc,
const int  ispin 
)

ctor with a conventional calculation

◆ Exchange() [3/3]

template<typename T , std::size_t NDIM>
madness::Exchange< T, NDIM >::Exchange ( World world,
const Nemo nemo,
const int  ispin 
)

ctor with a nemo calculation

Member Function Documentation

◆ info()

template<typename T , std::size_t NDIM>
std::string madness::Exchange< T, NDIM >::info ( ) const
inlinevirtual

print some information about this operator

Implements madness::SCFOperatorBase< T, NDIM >.

◆ is_symmetric()

template<typename T , std::size_t NDIM>
bool madness::Exchange< T, NDIM >::is_symmetric

◆ operator()() [1/4]

template<typename T , std::size_t NDIM>
T madness::Exchange< T, NDIM >::operator() ( const Function< T, NDIM > &  bra,
const Function< T, NDIM > &  ket 
) const
inlinevirtual

compute the matrix element <bra | K | ket>

Parameters
[in]brareal_function_3d, the bra state
[in]ketreal_function_3d, the ket state

Implements madness::SCFOperatorBase< T, NDIM >.

References madness::inner().

◆ operator()() [2/4]

template<typename T , std::size_t NDIM>
Function<T, NDIM> madness::Exchange< T, NDIM >::operator() ( const Function< T, NDIM > &  ket) const
inlinevirtual

apply this operator on the argument function

Parameters
ketthe argument function
Returns
op(ket)

Implements madness::SCFOperatorBase< T, NDIM >.

Referenced by madness::Exchange< T, NDIM >::operator()().

◆ operator()() [3/4]

template<typename T , std::size_t NDIM>
Tensor<T> madness::Exchange< T, NDIM >::operator() ( const vecfuncT vbra,
const vecfuncT vket 
) const
inlinevirtual

compute the matrix < vbra | K | vket >

Parameters
[in]vbravector of real_function_3d, the set of bra states
[in]vketvector of real_function_3d, the set of ket states
Returns
K_ij

Implements madness::SCFOperatorBase< T, NDIM >.

References madness::matrix_inner(), and madness::Exchange< T, NDIM >::operator()().

◆ operator()() [4/4]

template<typename T , std::size_t NDIM>
vecfuncT madness::Exchange< T, NDIM >::operator() ( const vecfuncT vket) const
virtual

apply the exchange operator on a vector of functions

note that only one spin is used (either alpha or beta orbitals)

Parameters
[in]vketthe orbitals |i> that the operator is applied on
Returns
a vector of orbitals K| i>

Implements madness::SCFOperatorBase< T, NDIM >.

◆ set_algorithm()

template<typename T , std::size_t NDIM>
Exchange< T, NDIM > & madness::Exchange< T, NDIM >::set_algorithm ( const Algorithm alg)

◆ set_bra_and_ket()

template<typename T , std::size_t NDIM>
Exchange< T, NDIM > & madness::Exchange< T, NDIM >::set_bra_and_ket ( const vecfuncT bra,
const vecfuncT ket 
)

◆ set_printlevel()

template<typename T , std::size_t NDIM>
Exchange< T, NDIM > & madness::Exchange< T, NDIM >::set_printlevel ( const long &  level)

◆ set_symmetric()

template<typename T , std::size_t NDIM>
Exchange< T, NDIM > & madness::Exchange< T, NDIM >::set_symmetric ( const bool  flag)

◆ set_taskq()

template<typename T , std::size_t NDIM>
Exchange& madness::Exchange< T, NDIM >::set_taskq ( std::shared_ptr< MacroTaskQ taskq1)
inline

Member Data Documentation

◆ impl

template<typename T , std::size_t NDIM>
implT madness::Exchange< T, NDIM >::impl
private

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