MADNESS
0.10.1
|
#include <CCStructures.h>
Classes | |
struct | Parameters |
parameter class More... | |
Public Member Functions | |
CCConvolutionOperator (const CCConvolutionOperator &other)=default | |
CCConvolutionOperator (World &world, const OpType type, Parameters param) | |
void | clear_intermediates (const FuncType &type) |
TwoElectronFactory< T, 2 *NDIM > | get_kernel () const |
create a TwoElectronFactory with the operatorkernel More... | |
std::shared_ptr< SeparatedConvolution< T, NDIM > > | get_op () const |
size_t | info () const |
prints out information (operatorname, number of stored intermediates ...) More... | |
std::string | name () const |
std::vector< Function< T, NDIM > > | operator() (const CC_vecfunction &bra, const CCFunction< T, NDIM > &ket) const |
Function< T, NDIM > | operator() (const CCFunction< T, NDIM > &bra, const CCFunction< T, NDIM > &ket, const bool use_im=true) const |
Function< T, NDIM > | operator() (const CCFunction< T, NDIM > &bra, const Function< T, 2 *NDIM > &u, const size_t particle) const |
Function< T, 2 *NDIM > | operator() (const Function< T, 2 *NDIM > &u, const size_t particle) const |
Function< T, NDIM > | operator() (const Function< T, NDIM > &f) const |
std::vector< Function< T, NDIM > > | operator() (const std::vector< Function< T, NDIM >> &f) const |
void | print_intermediate (const FuncType type) const |
void | sanity () const |
sanity check .. doens not do so much More... | |
OpType | type () const |
void | update_elements (const CC_vecfunction &bra, const CC_vecfunction &ket) |
Static Public Member Functions | |
static std::shared_ptr< CCConvolutionOperator > | CCConvolutionOperatorPtr (World &world, const OpType type, Parameters param) |
Public Attributes | |
const Parameters | parameters |
Private Member Functions | |
void | error (const std::string &msg) const |
SeparatedConvolution< T, NDIM > * | init_op (const OpType &type, const Parameters ¶meters) const |
Private Attributes | |
intermediateT< T, NDIM > | imH |
intermediateT< T, NDIM > | imP |
intermediateT< T, NDIM > | imR |
std::shared_ptr< SeparatedConvolution< T, NDIM > > | op |
World & | world |
the world More... | |
Friends | |
CCConvolutionOperator | combine (const CCConvolutionOperator &a, const CCConvolutionOperator &b) |
std::shared_ptr< CCConvolutionOperator > | combine (const std::shared_ptr< CCConvolutionOperator > &a, const std::shared_ptr< CCConvolutionOperator > &b) |
hashT | hash_value (CCConvolutionOperator< T, NDIM > &op) |
Helper Structure that carries out operations on CC_functions The structure can hold intermediates for g12 and f12 of type : <mo_bra_k|op|type> with type=HOLE,PARTICLE or RESPONSE some 6D operations are also included The structure does not know if nuclear correlation facors are used, so the corresponding bra states have to be prepared beforehand
|
inline |
[in] | world | |
[in] | optype | the operatortype (can be g12_ or f12_) |
[in] | param | the parameters of the current CC-Calculation (including function and operator thresholds and the exponent for f12) |
Referenced by madness::CCConvolutionOperator< T, NDIM >::CCConvolutionOperatorPtr().
|
default |
|
inlinestatic |
void madness::CCConvolutionOperator< T, NDIM >::clear_intermediates | ( | const FuncType & | type | ) |
[in] | the | type of which intermediates will be deleted e.g if(type==HOLE) then all intermediates of type <mo_bra_k|op|HOLE> will be deleted |
References madness::assign_name(), madness::error(), madness::HOLE, madness::name(), madness::PARTICLE, madness::RESPONSE, and madness::type().
|
inlineprivate |
[in] | msg | output message the function will throw an MADNESS_EXCEPTION |
References MADNESS_EXCEPTION, madness::CCConvolutionOperator< T, NDIM >::name(), madness::World::rank(), and madness::CCConvolutionOperator< T, NDIM >::world.
|
inline |
create a TwoElectronFactory with the operatorkernel
References madness::CCConvolutionOperator< T, NDIM >::op, and madness::CCConvolutionOperator< T, NDIM >::world.
|
inline |
References madness::CCConvolutionOperator< T, NDIM >::op.
Referenced by madness::CCConvolutionOperator< T, NDIM >::type().
size_t madness::CCConvolutionOperator< T, NDIM >::info |
prints out information (operatorname, number of stored intermediates ...)
References madness::name(), and madness::size_of().
|
private |
[in] | optype | can be f12_ or g12_ depending on which operator shall be intitialzied |
[in] | parameters | parameters (thresholds etc) initializes the operators |
References debug, madness::CCConvolutionOperator< T, NDIM >::Parameters::gamma, madness::CCConvolutionOperator< T, NDIM >::Parameters::lo, madness::print(), madness::CCConvolutionOperator< T, NDIM >::Parameters::thresh_op, and madness::type().
|
inline |
[out] | prints | the name of the operator (convenience) which is g12 or f12 or maybe other things like gf in the future |
References madness::CCConvolutionOperator< T, NDIM >::type().
Referenced by madness::CCConvolutionOperator< T, NDIM >::error(), and madness::CCConvolutionOperator< T, NDIM >::print_intermediate().
|
inline |
[in] | bra | a CC_vecfunction |
[in] | ket | a CC_function |
[out] | vector[i] | = <bra[i]|op|ket> |
References madness::apply(), madness::CCFunction< T, NDIM >::function, madness::CC_vecfunction::functions, madness::CC_vecfunction::get_vecfunction(), madness::HOLE, MADNESS_CHECK, MADNESS_EXCEPTION, madness::mul(), NDIM, madness::CCConvolutionOperator< T, NDIM >::op, madness::CCConvolutionOperator< T, NDIM >::operator()(), madness::truncate(), madness::CC_vecfunction::type, and madness::CCConvolutionOperator< T, NDIM >::world.
Function< T, NDIM > madness::CCConvolutionOperator< T, NDIM >::operator() | ( | const CCFunction< T, NDIM > & | bra, |
const CCFunction< T, NDIM > & | ket, | ||
const bool | use_im = true |
||
) | const |
References madness::CCFunction< T, NDIM >::function, madness::HOLE, madness::CCFunction< T, NDIM >::i, MADNESS_ASSERT, madness::MIXED, madness::CCFunction< T, NDIM >::name(), madness::name(), op(), madness::PARTICLE, madness::RESPONSE, madness::Function< T, NDIM >::truncate(), and madness::CCFunction< T, NDIM >::type.
Function< T, 2 *NDIM > madness::CCConvolutionOperator< T, NDIM >::operator() | ( | const Function< T, 2 *NDIM > & | u, |
const size_t | particle | ||
) | const |
References MADNESS_CHECK, op(), and u().
|
inline |
[in] | f | a 3D function |
[out] | the | convolution op(f), no intermediates are used |
References madness::f, and madness::CCConvolutionOperator< T, NDIM >::op.
Referenced by madness::CCConvolutionOperator< T, NDIM >::operator()().
|
inline |
[in] | type | the type of intermediates which will be printed, can be HOLE,PARTICLE or RESPONSE |
References madness::HOLE, madness::CCConvolutionOperator< T, NDIM >::imH, madness::CCConvolutionOperator< T, NDIM >::imP, madness::CCConvolutionOperator< T, NDIM >::imR, madness::CCConvolutionOperator< T, NDIM >::name(), madness::PARTICLE, madness::RESPONSE, and madness::CCConvolutionOperator< T, NDIM >::type().
Referenced by madness::CCConvolutionOperator< T, NDIM >::sanity().
|
inline |
sanity check .. doens not do so much
References madness::HOLE, and madness::CCConvolutionOperator< T, NDIM >::print_intermediate().
|
inline |
void madness::CCConvolutionOperator< T, NDIM >::update_elements | ( | const CC_vecfunction & | bra, |
const CC_vecfunction & | ket | ||
) |
[in] | bra | a vector of CC_functions, the type has to be HOLE |
[in] | ket | a vector of CC_functions, the type can be HOLE,PARTICLE,RESPONSE updates intermediates of the type <bra|op|ket> |
References madness::assign_name(), madness::error(), madness::CCFunction< T, NDIM >::function, madness::CC_vecfunction::functions, madness::HOLE, madness::CCFunction< T, NDIM >::i, madness::Pairs< T >::insert(), k, MADNESS_EXCEPTION, madness::name(), NDIM, op(), madness::PARTICLE, madness::Function< T, NDIM >::reconstruct(), madness::RESPONSE, madness::CC_vecfunction::size(), madness::Function< T, NDIM >::truncate(), madness::CC_vecfunction::type, and madness::type().
|
friend |
|
friend |
|
friend |
|
private |
|
private |
|
private |
|
private |
const Parameters madness::CCConvolutionOperator< T, NDIM >::parameters |
|
private |