MADNESS 0.10.1
Classes | Public Types | Public Member Functions | Private Attributes | List of all members
madness::Exchange< T, NDIM >::ExchangeImpl< T, NDIM >::MacroTaskExchangeRow Class Reference
Inheritance diagram for madness::Exchange< T, NDIM >::ExchangeImpl< T, NDIM >::MacroTaskExchangeRow:
Inheritance graph
[legend]
Collaboration diagram for madness::Exchange< T, NDIM >::ExchangeImpl< T, NDIM >::MacroTaskExchangeRow:
Collaboration graph
[legend]

Classes

class  MacroTaskPartitionerRow
 custom partitioning for the exchange operator in exchangeoperator.h More...
 

Public Types

typedef std::tuple< const std::vector< Function< T, NDIM > > &, const std::vector< Function< T, NDIM > > &, const std::vector< Function< T, NDIM > > & > argtupleT
 
using resultT = std::vector< Function< T, NDIM > >
 

Public Member Functions

 MacroTaskExchangeRow (const long nresult, const double lo, const double mul_tol, const Algorithm algorithm)
 
resultT allocator (World &world, const argtupleT &argtuple) const
 
std::vector< Function< T, NDIM > > operator() (const std::vector< Function< T, NDIM > > &vket, const std::vector< Function< T, NDIM > > &mo_bra, const std::vector< Function< T, NDIM > > &mo_ket)
 compute exchange row-wise for a fixed orbital phi_i of vket
 
std::vector< Function< T, NDIM > > row (const std::vector< Function< T, NDIM > > &vket, const std::vector< Function< T, NDIM > > &mo_bra, const std::vector< Function< T, NDIM > > &mo_ket)
 
std::vector< Function< T, NDIM > > row_fetch_compute (const std::vector< Function< T, NDIM > > &vket, const std::vector< Function< T, NDIM > > &mo_bra, const std::vector< Function< T, NDIM > > &mo_ket)
 
- Public Member Functions inherited from madness::MacroTaskOperationBase
 MacroTaskOperationBase ()
 

Private Attributes

Algorithm algorithm_
 
double lo = 1.e-4
 
double mul_tol = 1.e-7
 
long nresult
 
bool symmetric = false
 

Additional Inherited Members

- Public Attributes inherited from madness::MacroTaskOperationBase
Batch batch
 
std::string name ="unknown_task"
 
std::shared_ptr< MacroTaskPartitionerpartitioner =0
 
Worldsubworld_ptr =0
 

Member Typedef Documentation

◆ argtupleT

template<typename T , std::size_t NDIM>
template<typename T , std::size_t NDIM>
typedef std::tuple<const std::vector<Function<T, NDIM> >&, const std::vector<Function<T, NDIM> >&, const std::vector<Function<T, NDIM> >&> madness::Exchange< T, NDIM >::ExchangeImpl< T, NDIM >::MacroTaskExchangeRow::argtupleT

◆ resultT

template<typename T , std::size_t NDIM>
template<typename T , std::size_t NDIM>
using madness::Exchange< T, NDIM >::ExchangeImpl< T, NDIM >::MacroTaskExchangeRow::resultT = std::vector<Function<T, NDIM> >

Constructor & Destructor Documentation

◆ MacroTaskExchangeRow()

template<typename T , std::size_t NDIM>
template<typename T , std::size_t NDIM>
madness::Exchange< T, NDIM >::ExchangeImpl< T, NDIM >::MacroTaskExchangeRow::MacroTaskExchangeRow ( const long  nresult,
const double  lo,
const double  mul_tol,
const Algorithm  algorithm 
)
inline

References madness::name().

Member Function Documentation

◆ allocator()

template<typename T , std::size_t NDIM>
template<typename T , std::size_t NDIM>
resultT madness::Exchange< T, NDIM >::ExchangeImpl< T, NDIM >::MacroTaskExchangeRow::allocator ( World world,
const argtupleT argtuple 
) const
inline

◆ operator()()

template<typename T , std::size_t NDIM>
template<typename T , std::size_t NDIM>
std::vector< Function< T, NDIM > > madness::Exchange< T, NDIM >::ExchangeImpl< T, NDIM >::MacroTaskExchangeRow::operator() ( const std::vector< Function< T, NDIM > > &  vket,
const std::vector< Function< T, NDIM > > &  mo_bra,
const std::vector< Function< T, NDIM > > &  mo_ket 
)
inline

compute exchange row-wise for a fixed orbital phi_i of vket

create 2 worlds: one fetches the function coefficients from the universe, the other does the computation, then swap. The result is copied back to the universe

References MADNESS_EXCEPTION.

◆ row()

template<typename T , std::size_t NDIM>
template<typename T , std::size_t NDIM>
std::vector< Function< T, NDIM > > madness::Exchange< T, NDIM >::ExchangeImpl< T, NDIM >::MacroTaskExchangeRow::row ( const std::vector< Function< T, NDIM > > &  vket,
const std::vector< Function< T, NDIM > > &  mo_bra,
const std::vector< Function< T, NDIM > > &  mo_ket 
)
inline

◆ row_fetch_compute()

template<typename T , std::size_t NDIM>
template<typename T , std::size_t NDIM>
std::vector< Function< T, NDIM > > madness::Exchange< T, NDIM >::ExchangeImpl< T, NDIM >::MacroTaskExchangeRow::row_fetch_compute ( const std::vector< Function< T, NDIM > > &  vket,
const std::vector< Function< T, NDIM > > &  mo_bra,
const std::vector< Function< T, NDIM > > &  mo_ket 
)
inline

Member Data Documentation

◆ algorithm_

template<typename T , std::size_t NDIM>
template<typename T , std::size_t NDIM>
Algorithm madness::Exchange< T, NDIM >::ExchangeImpl< T, NDIM >::MacroTaskExchangeRow::algorithm_
private

◆ lo

template<typename T , std::size_t NDIM>
template<typename T , std::size_t NDIM>
double madness::Exchange< T, NDIM >::ExchangeImpl< T, NDIM >::MacroTaskExchangeRow::lo = 1.e-4
private

◆ mul_tol

template<typename T , std::size_t NDIM>
template<typename T , std::size_t NDIM>
double madness::Exchange< T, NDIM >::ExchangeImpl< T, NDIM >::MacroTaskExchangeRow::mul_tol = 1.e-7
private

◆ nresult

template<typename T , std::size_t NDIM>
template<typename T , std::size_t NDIM>
long madness::Exchange< T, NDIM >::ExchangeImpl< T, NDIM >::MacroTaskExchangeRow::nresult
private

◆ symmetric

template<typename T , std::size_t NDIM>
template<typename T , std::size_t NDIM>
bool madness::Exchange< T, NDIM >::ExchangeImpl< T, NDIM >::MacroTaskExchangeRow::symmetric = false
private

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