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

a SO projector class More...

#include <projector.h>

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

Public Member Functions

 StrongOrthogonalityProjector (World &world)
 default ctor
 
vecfuncT bra1 () const
 return the orbital space for the bra of particle 1
 
vecfuncT bra2 () const
 return the orbital space for the bra of particle 2
 
std::pair< std::vector< Function< T, NDIM > >, std::vector< Function< T, NDIM > > > get_vectors_for_outer_product (const Function< T, 2 *NDIM > &f) const
 apply the projection parts of the strong orthogonality operator Q12 on a function f
 
vecfuncT ket1 () const
 return the orbital space for the ket of particle 1
 
vecfuncT ket2 () const
 return the orbital space for the ket of particle 2
 
template<typename argT >
argT operator() (const argT &argument) const
 
Function< T, 2 *NDIMoperator() (const Function< T, 2 *NDIM > &f) const
 apply the strong orthogonality operator Q12 on a function f
 
void set_particle (const int p) override
 
void set_spaces (const vecfuncT &bra1, const vecfuncT &ket1, const vecfuncT &bra2, const vecfuncT &ket2)
 set different spaces for the projectors for particle 1 and 2
 
void set_spaces (const vecfuncT &p)
 set the same spaces for the projectors for particle 1 and 2
 
std::string type () const override
 
- Public Member Functions inherited from madness::ProjectorBase
virtual ~ProjectorBase ()
 
virtual int get_particle () const
 

Private Types

typedef std::vector< Function< T, NDIM > > vecfuncT
 

Private Attributes

std::vector< Function< T, NDIM > > bra1_
 
std::vector< Function< T, NDIM > > bra2_
 
std::vector< Function< T, NDIM > > ket1_
 the spaces of the projector of particles 1 and 2
 
std::vector< Function< T, NDIM > > ket2_
 
Worldworld
 the world
 

Additional Inherited Members

- Protected Attributes inherited from madness::ProjectorBase
int particle =-1
 a projector might work only on a subset of dimensions, e.g. P(1) | \psi(1,2) >
 

Detailed Description

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

a SO projector class

The SO projector is defined as Q12 = (1-O1)(1-O2), O = \sum_i | i >< i | where O1 and O2 are projectors for electron 1 and 2 on the occupied space As a special case there might be a similarity transformed occupied space, resulting in different bras and kets

Member Typedef Documentation

◆ vecfuncT

template<typename T , std::size_t NDIM>
typedef std::vector<Function<T,NDIM> > madness::StrongOrthogonalityProjector< T, NDIM >::vecfuncT
private

Constructor & Destructor Documentation

◆ StrongOrthogonalityProjector()

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

default ctor

Member Function Documentation

◆ bra1()

template<typename T , std::size_t NDIM>
vecfuncT madness::StrongOrthogonalityProjector< T, NDIM >::bra1 ( ) const
inline

return the orbital space for the bra of particle 1

References madness::StrongOrthogonalityProjector< T, NDIM >::bra1_.

Referenced by madness::StrongOrthogonalityProjector< T, NDIM >::set_spaces().

◆ bra2()

template<typename T , std::size_t NDIM>
vecfuncT madness::StrongOrthogonalityProjector< T, NDIM >::bra2 ( ) const
inline

return the orbital space for the bra of particle 2

References madness::StrongOrthogonalityProjector< T, NDIM >::bra2_.

Referenced by madness::StrongOrthogonalityProjector< T, NDIM >::set_spaces().

◆ get_vectors_for_outer_product()

template<typename T , std::size_t NDIM>
std::pair< std::vector< Function< T, NDIM > >, std::vector< Function< T, NDIM > > > madness::StrongOrthogonalityProjector< T, NDIM >::get_vectors_for_outer_product ( const Function< T, 2 *NDIM > &  f) const
inline

◆ ket1()

template<typename T , std::size_t NDIM>
vecfuncT madness::StrongOrthogonalityProjector< T, NDIM >::ket1 ( ) const
inline

return the orbital space for the ket of particle 1

References madness::StrongOrthogonalityProjector< T, NDIM >::ket1_.

Referenced by madness::StrongOrthogonalityProjector< T, NDIM >::set_spaces().

◆ ket2()

template<typename T , std::size_t NDIM>
vecfuncT madness::StrongOrthogonalityProjector< T, NDIM >::ket2 ( ) const
inline

return the orbital space for the ket of particle 2

References madness::StrongOrthogonalityProjector< T, NDIM >::ket2_.

Referenced by madness::StrongOrthogonalityProjector< T, NDIM >::set_spaces().

◆ operator()() [1/2]

template<typename T , std::size_t NDIM>
template<typename argT >
argT madness::StrongOrthogonalityProjector< T, NDIM >::operator() ( const argT &  argument) const
inline

References madness::apply().

◆ operator()() [2/2]

template<typename T , std::size_t NDIM>
Function< T, 2 *NDIM > madness::StrongOrthogonalityProjector< T, NDIM >::operator() ( const Function< T, 2 *NDIM > &  f) const
inline

◆ set_particle()

template<typename T , std::size_t NDIM>
void madness::StrongOrthogonalityProjector< T, NDIM >::set_particle ( const int  p)
inlineoverridevirtual

Reimplemented from madness::ProjectorBase.

References MADNESS_EXCEPTION.

◆ set_spaces() [1/2]

template<typename T , std::size_t NDIM>
void madness::StrongOrthogonalityProjector< T, NDIM >::set_spaces ( const vecfuncT bra1,
const vecfuncT ket1,
const vecfuncT bra2,
const vecfuncT ket2 
)
inline

◆ set_spaces() [2/2]

template<typename T , std::size_t NDIM>
void madness::StrongOrthogonalityProjector< T, NDIM >::set_spaces ( const vecfuncT p)
inline

◆ type()

template<typename T , std::size_t NDIM>
std::string madness::StrongOrthogonalityProjector< T, NDIM >::type ( ) const
inlineoverridevirtual

Member Data Documentation

◆ bra1_

template<typename T , std::size_t NDIM>
std::vector<Function<T,NDIM> > madness::StrongOrthogonalityProjector< T, NDIM >::bra1_
private

◆ bra2_

template<typename T , std::size_t NDIM>
std::vector<Function<T,NDIM> > madness::StrongOrthogonalityProjector< T, NDIM >::bra2_
private

◆ ket1_

template<typename T , std::size_t NDIM>
std::vector<Function<T,NDIM> > madness::StrongOrthogonalityProjector< T, NDIM >::ket1_
private

◆ ket2_

template<typename T , std::size_t NDIM>
std::vector<Function<T,NDIM> > madness::StrongOrthogonalityProjector< T, NDIM >::ket2_
private

◆ world

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

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