MADNESS 0.10.1
|
simple projector class More...
#include <projector.h>
Public Member Functions | |
Projector () | |
Projector (const funcT &bra, const funcT &ket) | |
simple constructor with only one orbital to project | |
Projector (const Function< T, NDIM > &mo) | |
simple constructor with only one orbital to project | |
Projector (const vecfuncT &bra, const vecfuncT &ket) | |
constructor with a set of orbitals to project out | |
Projector (const vecfuncT &p) | |
constructor with a set of orbitals to project out | |
vecfuncT | get_bra_vector () const |
vecfuncT | get_ket_vector () const |
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 operator on a function f | |
template<typename argT > | |
std::enable_if<!std::is_same< argT, Function< T, 2 *NDIM > >::value, argT >::type | operator() (const argT &argument) const |
funcT | operator() (const funcT &f) const |
project f on p: | |
template<std::size_t KDIM> | |
std::enable_if< KDIM==2 *NDIM, Function< T, KDIM > >::type | operator() (const Function< T, KDIM > &f, int particle1=-1) const |
vecfuncT | operator() (const vecfuncT &f) const |
project f on p: | |
void | set_spaces (const vecfuncT &bra, const vecfuncT &ket) |
void | set_spaces (const vecfuncT &p) |
virtual std::string | type () const override |
Public Member Functions inherited from madness::ProjectorBase | |
virtual | ~ProjectorBase () |
virtual int | get_particle () const |
virtual void | set_particle (const int p) |
Private Types | |
typedef Function< T, NDIM > | funcT |
typedef std::vector< funcT > | vecfuncT |
Private Attributes | |
std::vector< Function< T, NDIM > > | mo_bra_ |
the dual space onto which the test functions will be projected: <bra| | |
std::vector< Function< T, NDIM > > | mo_ket_ |
the space onto which the test functions will be projected: |ket> | |
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) > | |
simple projector class
use this class to project a function or a set of functions on another space of function. The projector can handle different sets of functions for the bra and the ket space, e.g. in case of regularized orbitals: |f> <-> <f|R^2
|
private |
|
private |
|
inline |
|
inline |
simple constructor with only one orbital to project
bra and ket spaces are symmetric
|
inline |
simple constructor with only one orbital to project
bra and ket spaces are not symmetric (e.g. |ket>^+ = <bra|R2 )
References MADNESS_CHECK_THROW, madness::Projector< T, NDIM >::mo_bra_, and madness::Projector< T, NDIM >::mo_ket_.
|
inline |
constructor with a set of orbitals to project out
bra and ket spaces are symmetric
References MADNESS_CHECK_THROW, madness::Projector< T, NDIM >::mo_bra_, and madness::Projector< T, NDIM >::mo_ket_.
|
inline |
constructor with a set of orbitals to project out
bra and ket spaces are not symmetric (e.g. |ket>^+ = <bra|R2 )
References MADNESS_CHECK_THROW, madness::Projector< T, NDIM >::mo_bra_, and madness::Projector< T, NDIM >::mo_ket_.
|
inline |
References madness::Projector< T, NDIM >::mo_bra_.
|
inline |
References madness::Projector< T, NDIM >::mo_ket_.
|
inline |
apply the projection parts of the operator on a function f
The operator applied on f(1,2) is O(1)f(1,2) = \sum_i |i(1) > <i(1) | f(1,2)>_1 = \sum_i |i(1) f_i(2)> return the lo-dim vectors i and f_i only, perform no outer product
References madness::f, MADNESS_EXCEPTION, madness::Projector< T, NDIM >::mo_bra_, madness::Projector< T, NDIM >::mo_ket_, and madness::reconstruct().
Referenced by madness::Projector< T, NDIM >::operator()().
|
inline |
References madness::apply().
|
inline |
project f on p:
[in] | f | the function to be projected |
References madness::Projector< T, NDIM >::operator()().
Referenced by madness::Projector< T, NDIM >::operator()().
|
inline |
apply 3D Projector to one particle of a 6D function
[in] | f | the 6D function to be projected |
[in] | the | particle that is projected (0 or 1) |
References madness::f, madness::ProjectorBase::get_particle(), madness::Projector< T, NDIM >::get_vectors_for_outer_product(), madness::hartree_product(), and MADNESS_CHECK_THROW.
|
inline |
project f on p:
[in] | f | the vector of functions to be projected |
References madness::f, madness::matrix_inner(), madness::Projector< T, NDIM >::mo_bra_, madness::Projector< T, NDIM >::mo_ket_, madness::transform(), and madness::truncate().
|
inline |
References madness::Projector< T, NDIM >::mo_bra_, madness::Projector< T, NDIM >::mo_ket_, and p().
|
inlineoverridevirtual |
Implements madness::ProjectorBase.
|
private |
the dual space onto which the test functions will be projected: <bra|
Referenced by madness::Projector< T, NDIM >::Projector(), madness::Projector< T, NDIM >::Projector(), madness::Projector< T, NDIM >::Projector(), madness::Projector< T, NDIM >::get_bra_vector(), madness::Projector< T, NDIM >::get_vectors_for_outer_product(), madness::Projector< T, NDIM >::operator()(), madness::Projector< T, NDIM >::set_spaces(), and madness::Projector< T, NDIM >::set_spaces().
|
private |
the space onto which the test functions will be projected: |ket>
Referenced by madness::Projector< T, NDIM >::Projector(), madness::Projector< T, NDIM >::Projector(), madness::Projector< T, NDIM >::Projector(), madness::Projector< T, NDIM >::get_ket_vector(), madness::Projector< T, NDIM >::get_vectors_for_outer_product(), madness::Projector< T, NDIM >::operator()(), madness::Projector< T, NDIM >::set_spaces(), and madness::Projector< T, NDIM >::set_spaces().