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

#include <ccpairfunction.h>

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

Public Member Functions

 TwoBodyFunctionSeparatedComponent ()=default
 
 TwoBodyFunctionSeparatedComponent (const std::vector< Function< T, LDIM >> &a, const std::vector< Function< T, LDIM >> &b)
 
 TwoBodyFunctionSeparatedComponent (const std::vector< Function< T, LDIM >> &a, const std::vector< Function< T, LDIM >> &b, const std::shared_ptr< CCConvolutionOperator< T, LDIM >> op)
 
 TwoBodyFunctionSeparatedComponent (const TwoBodyFunctionSeparatedComponent &other)=default
 
template<typename Q , std::size_t MDIM>
TwoBodyFunctionPureComponent< T, NDIMapply (const SeparatedConvolution< Q, MDIM > *op, const int particle=0)
 
std::shared_ptr< TwoBodyFunctionComponentBaseclone () override
 deep copy More...
 
std::vector< Function< T, LDIM > > get_a () const
 
std::vector< Function< T, LDIM > > get_b () const
 
const std::shared_ptr< CCConvolutionOperator< T, LDIM > > get_operator_ptr () const
 
std::vector< Function< T, LDIM > > get_vector (const int i) const
 
bool has_operator () const override
 
hashT hash () const override
 
bool is_decomposed () const override
 
std::string name (const bool transpose) const override
 
template<typename Q >
TwoBodyFunctionSeparatedComponentoperator*= (const Q fac)
 
void print_size (const std::string name1="") const override
 
long rank () const
 
void serialize ()
 
void set_operator (const std::shared_ptr< CCConvolutionOperator< T, LDIM >> op1)
 
void swap_particles_inplace () override
 return f(2,1) More...
 
Worldworld () const override
 
- Public Member Functions inherited from madness::TwoBodyFunctionComponentBase
virtual ~TwoBodyFunctionComponentBase ()
 
virtual bool is_pure () const
 

Private Attributes

std::vector< Function< T, LDIM > > a
 
std::vector< Function< T, LDIM > > b
 
std::shared_ptr< CCConvolutionOperator< T, LDIM > > op
 

Static Private Attributes

static constexpr std::size_t LDIM =NDIM/2
 

Detailed Description

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

holds two vectors a and b of low-dimensional functions forming a high-dim function by a sum of outer products f(1,2) = sum_i |a_i b_i >

Constructor & Destructor Documentation

◆ TwoBodyFunctionSeparatedComponent() [1/4]

template<typename T , std::size_t NDIM>
madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::TwoBodyFunctionSeparatedComponent ( )
default

◆ TwoBodyFunctionSeparatedComponent() [2/4]

template<typename T , std::size_t NDIM>
madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::TwoBodyFunctionSeparatedComponent ( const std::vector< Function< T, LDIM >> &  a,
const std::vector< Function< T, LDIM >> &  b 
)
inline

◆ TwoBodyFunctionSeparatedComponent() [3/4]

template<typename T , std::size_t NDIM>
madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::TwoBodyFunctionSeparatedComponent ( const std::vector< Function< T, LDIM >> &  a,
const std::vector< Function< T, LDIM >> &  b,
const std::shared_ptr< CCConvolutionOperator< T, LDIM >>  op 
)
inline

◆ TwoBodyFunctionSeparatedComponent() [4/4]

template<typename T , std::size_t NDIM>
madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::TwoBodyFunctionSeparatedComponent ( const TwoBodyFunctionSeparatedComponent< T, NDIM > &  other)
default

Member Function Documentation

◆ apply()

template<typename T , std::size_t NDIM>
template<typename Q , std::size_t MDIM>
TwoBodyFunctionPureComponent<T,NDIM> madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::apply ( const SeparatedConvolution< Q, MDIM > *  op,
const int  particle = 0 
)
inline

References MADNESS_EXCEPTION.

◆ clone()

template<typename T , std::size_t NDIM>
std::shared_ptr<TwoBodyFunctionComponentBase> madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::clone ( )
inlineoverridevirtual

◆ get_a()

template<typename T , std::size_t NDIM>
std::vector<Function<T,LDIM> > madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::get_a ( ) const
inline

◆ get_b()

template<typename T , std::size_t NDIM>
std::vector<Function<T,LDIM> > madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::get_b ( ) const
inline

◆ get_operator_ptr()

template<typename T , std::size_t NDIM>
const std::shared_ptr<CCConvolutionOperator<T,LDIM> > madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::get_operator_ptr ( ) const
inline

◆ get_vector()

template<typename T , std::size_t NDIM>
std::vector<Function<T,LDIM> > madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::get_vector ( const int  i) const
inline

◆ has_operator()

template<typename T , std::size_t NDIM>
bool madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::has_operator ( ) const
inlineoverridevirtual

◆ hash()

template<typename T , std::size_t NDIM>
hashT madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::hash ( ) const
inlineoverridevirtual

◆ is_decomposed()

template<typename T , std::size_t NDIM>
bool madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::is_decomposed ( ) const
inlineoverridevirtual

◆ name()

template<typename T , std::size_t NDIM>
std::string madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::name ( const bool  transpose) const
inlineoverridevirtual

◆ operator*=()

template<typename T , std::size_t NDIM>
template<typename Q >
TwoBodyFunctionSeparatedComponent& madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::operator*= ( const Q  fac)
inline

◆ print_size()

template<typename T , std::size_t NDIM>
void madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::print_size ( const std::string  name1 = "") const
inlineoverridevirtual

◆ rank()

template<typename T , std::size_t NDIM>
long madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::rank ( ) const
inline

◆ serialize()

template<typename T , std::size_t NDIM>
void madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::serialize ( )
inline

◆ set_operator()

template<typename T , std::size_t NDIM>
void madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::set_operator ( const std::shared_ptr< CCConvolutionOperator< T, LDIM >>  op1)
inline

◆ swap_particles_inplace()

template<typename T , std::size_t NDIM>
void madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::swap_particles_inplace ( )
inlineoverridevirtual

◆ world()

template<typename T , std::size_t NDIM>
World& madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::world ( ) const
inlineoverridevirtual

Member Data Documentation

◆ a

template<typename T , std::size_t NDIM>
std::vector<Function<T,LDIM> > madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::a
private

◆ b

template<typename T , std::size_t NDIM>
std::vector<Function<T,LDIM> > madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::b
private

◆ LDIM

template<typename T , std::size_t NDIM>
constexpr std::size_t madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::LDIM =NDIM/2
staticconstexprprivate

◆ op

template<typename T , std::size_t NDIM>
std::shared_ptr<CCConvolutionOperator<T,LDIM> > madness::TwoBodyFunctionSeparatedComponent< T, NDIM >::op
private

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