MADNESS 0.10.1
madness::MacroTaskIteratePair Class Reference

#include <CCStructures.h>

Inheritance diagram for madness::MacroTaskIteratePair:
Collaboration diagram for madness::MacroTaskIteratePair:

Public Types

typedef std::tuple< const std::vector< CCPair > &, const std::vector< real_function_6d > &, const CC_vecfunction &, const CC_vecfunction &, const Info &, const std::size_t & > argtupleT
using resultT = std::vector<real_function_6d>

Public Member Functions

 MacroTaskIteratePair ()
resultT allocator (World &world, const argtupleT &argtuple) const
double compute_priority (const Batch &batch, const argtupleT &argtuple) const
 compute priority based on the size of the pair function
resultT operator() (const std::vector< CCPair > &pair, const std::vector< real_function_6d > &local_coupling, const CC_vecfunction &gs_singles, const CC_vecfunction &ex_singles, const Info &info, const std::size_t &maxiter) const
 iterate a given pair of the MP2, CC2 or LRCC2 calculation
Public Member Functions inherited from madness::MacroTaskOperationBase
 MacroTaskOperationBase ()
 MacroTaskOperationBase (const std::string name)
virtual ~MacroTaskOperationBase ()
virtual bool accumulates_own_output () const
virtual void cleanup ()
 release whatever the task kept across its batches, called once the queue has run
virtual bool handles_own_data_movement () const
 true if the task moves its operand coefficients into the subworld itself
virtual long owner_hint (const Batch &, const long) const
 which subworld should run this batch; -1 leaves the choice to the queue

Additional Inherited Members

Public Attributes inherited from madness::MacroTaskOperationBase
Batch batch
Cloud * cloud_ptr =0
std::string name ="unknown_task"
std::shared_ptr< MacroTaskPartitioner > partitioner =0
World * subworld_ptr =0

Member Typedef Documentation

◆ argtupleT

typedef std::tuple< const std::vector<CCPair>&, const std::vector<real_function_6d>&, const CC_vecfunction&, const CC_vecfunction&, const Info&, const std::size_t& > madness::MacroTaskIteratePair::argtupleT

◆ resultT

Constructor & Destructor Documentation

◆ MacroTaskIteratePair()

madness::MacroTaskIteratePair::MacroTaskIteratePair ( )
inline

Member Function Documentation

◆ allocator()

resultT madness::MacroTaskIteratePair::allocator ( World & world,
const argtupleT & argtuple ) const
inline

◆ compute_priority()

double madness::MacroTaskIteratePair::compute_priority ( const Batch & batch,
const argtupleT & argtuple ) const
inline

compute priority based on the size of the pair function

References madness::MacroTaskOperationBase::batch.

◆ operator()()

std::vector< real_function_6d > madness::MacroTaskIteratePair::operator() ( const std::vector< CCPair > & pair,
const std::vector< real_function_6d > & local_coupling,
const CC_vecfunction & gs_singles,
const CC_vecfunction & ex_singles,
const Info & info,
const std::size_t & maxiter ) const

iterate a given pair of the MP2, CC2 or LRCC2 calculation

will NOT compute the local coupling, will apply the Fock operators (J-K+V)|pair> and use the (excited) singles vectors to update the pair

Parameters
[in]pairthe pair which will be updated
[in]gs_singlesthe ground state singles, may be dummy for MP2
[in]ex_singlesthe excited state singles, may be dummy for MP2, CC2
[in]all_coords_vecthe coordinates of the atoms
[in]infothe info structure
[in]maxiterthe maximal number of iterations

References madness::MacroTaskOperationBase::batch, madness::CCPair::function(), madness::CCPotentials::iterate_pair_macrotask(), MADNESS_CHECK_THROW, maxiter, offset, madness::World::size(), and madness::zero_functions_compressed().


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