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

Computes matrix representation of the Fock operator. More...

#include <SCFOperators.h>

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

Public Member Functions

 Fock (World &world)
 
 Fock (World &world, const Nemo *nemo)
 
 Fock (World &world, const Nemo *nemo)
 
 Fock (World &world, const NemoBase *nemo)
 
 Fock (World &world, const NemoBase *nemobase)
 
 Fock (World &world, const OEP *nemo)
 
 Fock (World &world, const OEP *oep)
 
void add_operator (std::string name, std::shared_ptr< SCFOperatorBase< T, NDIM > > new_op)
 add an operator with default prefactor 1.0
 
void add_operator (std::string name, std::tuple< double, std::shared_ptr< SCFOperatorBase< T, NDIM > > > new_op)
 add an operator with custom prefactor (e.g. -1.0 for the exchange, supposedly)
 
std::string info () const
 pretty print what this is actually computing
 
T operator() (const Function< T, NDIM > &bra, const Function< T, NDIM > &ket) const
 compute the matrix element <bra | op | ket>
 
Function< T, NDIMoperator() (const Function< T, NDIM > &ket) const
 
Tensor< Toperator() (const std::vector< Function< T, NDIM > > &vbra, const std::vector< Function< T, NDIM > > &vket) const
 compute the Fock matrix by summing up all contributions
 
Tensor< Toperator() (const std::vector< Function< T, NDIM > > &vbra, const std::vector< Function< T, NDIM > > &vket, const bool symmetric) const
 compute the Fock matrix by summing up all contributions
 
std::vector< Function< T, NDIM > > operator() (const std::vector< Function< T, NDIM > > &vket) const
 
int remove_operator (std::string name)
 remove operator, returns 0 if no operator was found
 
- Public Member Functions inherited from madness::SCFOperatorBase< T, NDIM >
 SCFOperatorBase ()=default
 
 SCFOperatorBase (std::shared_ptr< MacroTaskQ > taskq)
 
virtual ~SCFOperatorBase ()
 
virtual tensorT operator() (const vecfuncT &vbra, const vecfuncT &vket) const =0
 compute the matrix <vbra | op | vket>
 
virtual vecfuncT operator() (const vecfuncT &vket) const =0
 apply this operator on the argument vector of functions
 

Private Types

typedef std::tuple< double, std::shared_ptr< SCFOperatorBase< T, NDIM > > > valueT
 type defining Fock operator contribution including prefactor
 

Private Attributes

std::map< std::string, valueToperators
 all the Fock operator contribution
 
Worldworld
 the world
 

Additional Inherited Members

- Public Types inherited from madness::SCFOperatorBase< T, NDIM >
typedef Function< T, NDIMfunctionT
 
typedef Tensor< TtensorT
 
typedef std::vector< functionTvecfuncT
 
- Public Attributes inherited from madness::SCFOperatorBase< T, NDIM >
std::shared_ptr< MacroTaskQtaskq =0
 

Detailed Description

template<typename T, std::size_t NDIM>
class madness::Fock< T, NDIM >

Computes matrix representation of the Fock operator.

Member Typedef Documentation

◆ valueT

template<typename T , std::size_t NDIM>
typedef std::tuple<double,std::shared_ptr<SCFOperatorBase<T,NDIM> > > madness::Fock< T, NDIM >::valueT
private

type defining Fock operator contribution including prefactor

Constructor & Destructor Documentation

◆ Fock() [1/7]

template<typename T , std::size_t NDIM>
madness::Fock< T, NDIM >::Fock ( World world)
inline

◆ Fock() [2/7]

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

◆ Fock() [3/7]

template<typename T , std::size_t NDIM>
madness::Fock< T, NDIM >::Fock ( World world,
const OEP nemo 
)

◆ Fock() [4/7]

template<typename T , std::size_t NDIM>
madness::Fock< T, NDIM >::Fock ( World world,
const NemoBase nemo 
)

◆ Fock() [5/7]

madness::Fock< double, 3 >::Fock ( World world,
const Nemo nemo 
)

◆ Fock() [6/7]

madness::Fock< double, 3 >::Fock ( World world,
const OEP oep 
)

◆ Fock() [7/7]

madness::Fock< double, 3 >::Fock ( World world,
const NemoBase nemobase 
)

Member Function Documentation

◆ add_operator() [1/2]

template<typename T , std::size_t NDIM>
void madness::Fock< T, NDIM >::add_operator ( std::string  name,
std::shared_ptr< SCFOperatorBase< T, NDIM > >  new_op 
)
inline

add an operator with default prefactor 1.0

References madness::name(), and madness::Fock< T, NDIM >::operators.

Referenced by madness::OEP::make_fock_operator().

◆ add_operator() [2/2]

template<typename T , std::size_t NDIM>
void madness::Fock< T, NDIM >::add_operator ( std::string  name,
std::tuple< double, std::shared_ptr< SCFOperatorBase< T, NDIM > > >  new_op 
)
inline

add an operator with custom prefactor (e.g. -1.0 for the exchange, supposedly)

References madness::name(), and madness::Fock< T, NDIM >::operators.

◆ info()

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

pretty print what this is actually computing

Implements madness::SCFOperatorBase< T, NDIM >.

References MADNESS_CHECK, op(), and madness::Fock< T, NDIM >::operators.

◆ operator()() [1/5]

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

compute the matrix element <bra | op | ket>

Parameters
brabra state
ketket state
Returns
the matrix element <bra | op | ket>

Implements madness::SCFOperatorBase< T, NDIM >.

◆ operator()() [2/5]

template<typename T , std::size_t NDIM>
Function< T, NDIM > madness::Fock< 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 >.

References MADNESS_EXCEPTION.

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

◆ operator()() [3/5]

template<typename T , std::size_t NDIM>
Tensor< T > madness::Fock< T, NDIM >::operator() ( const std::vector< Function< T, NDIM > > &  vbra,
const std::vector< Function< T, NDIM > > &  vket 
) const
inline

compute the Fock matrix by summing up all contributions

References madness::Fock< T, NDIM >::operator()().

◆ operator()() [4/5]

template<typename T , std::size_t NDIM>
Tensor< T > madness::Fock< T, NDIM >::operator() ( const std::vector< Function< T, NDIM > > &  vbra,
const std::vector< Function< T, NDIM > > &  vket,
const bool  symmetric 
) const
inline

compute the Fock matrix by summing up all contributions

References op(), and madness::Fock< T, NDIM >::operators.

◆ operator()() [5/5]

template<typename T , std::size_t NDIM>
std::vector< Function< T, NDIM > > madness::Fock< T, NDIM >::operator() ( const std::vector< Function< T, NDIM > > &  vket) const
inline

◆ remove_operator()

template<typename T , std::size_t NDIM>
int madness::Fock< T, NDIM >::remove_operator ( std::string  name)
inline

remove operator, returns 0 if no operator was found

References madness::name(), and madness::Fock< T, NDIM >::operators.

Referenced by madness::TDHF::get_tda_potential(), and madness::OEP::make_fock_operator().

Member Data Documentation

◆ operators

template<typename T , std::size_t NDIM>
std::map<std::string,valueT> madness::Fock< T, NDIM >::operators
private

◆ world

template<typename T , std::size_t NDIM>
World& madness::Fock< T, NDIM >::world
private

the world

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


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