MADNESS  0.10.1
Public Member Functions | Static Public Member Functions | Public Attributes | Private Attributes | Friends | List of all members
madness::X_space Struct Reference

#include <x_space.h>

Inheritance diagram for madness::X_space:
Inheritance graph
[legend]
Collaboration diagram for madness::X_space:
Collaboration graph
[legend]

Public Member Functions

 X_space ()
 
 X_space (const X_space &A)
 
 X_space (World &world, size_t n_states, size_t n_orbitals)
 
void clear ()
 
auto component_norm2s () const -> Tensor< double >
 
X_space copy () const
 
auto copy (const std::shared_ptr< WorldDCPmapInterface< Key< 3 >>> &p_map, bool fence=false) const -> X_space
 
auto norm2s () const -> Tensor< double >
 
size_t num_orbitals () const
 
size_t num_states () const
 
auto operator+= (const X_space &B) -> X_space &
 
auto operator= (const X_space &B) -> X_space &
 
void pop_back ()
 
void push_back (const vector_real_function_3d &vx, const vector_real_function_3d &vy)
 
void reset_active ()
 
void set_active (const std::list< size_t > &new_active)
 
void truncate ()
 
void truncate (double thresh)
 

Static Public Member Functions

static X_space zero_functions (World &world, size_t n_states, size_t n_orbitals)
 

Public Attributes

std::list< size_t > active
 
response_space x
 
response_space y
 

Private Attributes

size_t n_orbitals
 
size_t n_states
 

Friends

template<typename T >
auto binary_apply (const X_space &A, const X_space &B, T &func) -> X_space
 
template<class T >
auto binary_inplace (X_space &A, const X_space &B, const T &func)
 
auto inner (const X_space &A, const X_space &B) -> Tensor< double >
 Computes the matrix elements between two response spaces. More...
 
auto inplace_apply (X_space &A, const std::function< void(vector_real_function_3d &)> &func) -> void
 
auto oop_apply (const X_space &A, const std::function< vector_real_function_3d(const vector_real_function_3d &)> &func) -> X_space
 Apply a function to the X_space. More...
 
X_space operator* (const double &b, const X_space &A)
 
auto operator* (const Function< double, 3 > &f, const X_space &A) -> X_space
 
X_space operator* (const X_space &A, const double &b)
 
X_space operator* (const X_space &A, const Function< double, 3 > &f)
 
auto operator* (const X_space &A, const Tensor< double > &b) -> X_space
 
auto operator+ (const X_space &A, const X_space &B) -> X_space
 
X_space operator- (const X_space &A, const X_space &B)
 
auto same_size (const X_space &A, const X_space &B) -> bool
 
auto size_orbitals (const X_space &x) -> size_t
 
auto size_states (const X_space &x) -> size_t
 

Constructor & Destructor Documentation

◆ X_space() [1/3]

madness::X_space::X_space ( )
inline

Referenced by copy(), and zero_functions().

◆ X_space() [2/3]

madness::X_space::X_space ( const X_space A)
inline

◆ X_space() [3/3]

madness::X_space::X_space ( World world,
size_t  n_states,
size_t  n_orbitals 
)
inline

References reset_active().

Member Function Documentation

◆ clear()

void madness::X_space::clear ( )
inline

◆ component_norm2s()

auto madness::X_space::component_norm2s ( ) const -> Tensor<double>
inline

◆ copy() [1/2]

X_space madness::X_space::copy ( ) const
inline

References X_space(), active, madness::copy(), x, and y.

◆ copy() [2/2]

auto madness::X_space::copy ( const std::shared_ptr< WorldDCPmapInterface< Key< 3 >>> &  p_map,
bool  fence = false 
) const -> X_space
inline

Create a new copy of the function with different distribution and optional fence Works in either basis. Different distributions imply asynchronous communication and the optional fence is collective.

References X_space(), madness::copy(), x, and y.

◆ norm2s()

auto madness::X_space::norm2s ( ) const -> Tensor<double>
inline

◆ num_orbitals()

size_t madness::X_space::num_orbitals ( ) const
inline

References n_orbitals.

Referenced by madness::do_vtk_plots(), and push_back().

◆ num_states()

size_t madness::X_space::num_states ( ) const
inline

References n_states.

Referenced by madness::do_vtk_plots(), and norm2s().

◆ operator+=()

auto madness::X_space::operator+= ( const X_space B) -> X_space &
inline

◆ operator=()

auto madness::X_space::operator= ( const X_space B) -> X_space &
inline

◆ pop_back()

void madness::X_space::pop_back ( )
inline

◆ push_back()

void madness::X_space::push_back ( const vector_real_function_3d vx,
const vector_real_function_3d vy 
)
inline

◆ reset_active()

void madness::X_space::reset_active ( )
inline

References active, and n_states.

Referenced by X_space().

◆ set_active()

void madness::X_space::set_active ( const std::list< size_t > &  new_active)
inline

◆ truncate() [1/2]

void madness::X_space::truncate ( )
inline

◆ truncate() [2/2]

void madness::X_space::truncate ( double  thresh)
inline

◆ zero_functions()

static X_space madness::X_space::zero_functions ( World world,
size_t  n_states,
size_t  n_orbitals 
)
inlinestatic

Friends And Related Function Documentation

◆ binary_apply

template<typename T >
auto binary_apply ( const X_space A,
const X_space B,
T func 
) -> X_space
friend

◆ binary_inplace

template<class T >
auto binary_inplace ( X_space A,
const X_space B,
const T func 
)
friend

Referenced by operator+=().

◆ inner

auto inner ( const X_space A,
const X_space B 
) -> Tensor<double>
friend

Computes the matrix elements between two response spaces.

cij=inner(ai,bj)

Parameters
A
B
Returns
Tensor<double>

◆ inplace_apply

auto inplace_apply ( X_space A,
const std::function< void(vector_real_function_3d &)> &  func 
) -> void
friend

Referenced by truncate().

◆ oop_apply

auto oop_apply ( const X_space A,
const std::function< vector_real_function_3d(const vector_real_function_3d &)> &  func 
) -> X_space
friend

Apply a function to the X_space.

Parameters
A
func
Returns

◆ operator* [1/5]

X_space operator* ( const double &  b,
const X_space A 
)
friend

◆ operator* [2/5]

auto operator* ( const Function< double, 3 > &  f,
const X_space A 
) -> X_space
friend

◆ operator* [3/5]

X_space operator* ( const X_space A,
const double &  b 
)
friend

◆ operator* [4/5]

X_space operator* ( const X_space A,
const Function< double, 3 > &  f 
)
friend

◆ operator* [5/5]

auto operator* ( const X_space A,
const Tensor< double > &  b 
) -> X_space
friend

◆ operator+

auto operator+ ( const X_space A,
const X_space B 
) -> X_space
friend

◆ operator-

X_space operator- ( const X_space A,
const X_space B 
)
friend

◆ same_size

auto same_size ( const X_space A,
const X_space B 
) -> bool
friend

◆ size_orbitals

auto size_orbitals ( const X_space x) -> size_t
friend

◆ size_states

auto size_states ( const X_space x) -> size_t
friend

Member Data Documentation

◆ active

std::list<size_t> madness::X_space::active

◆ n_orbitals

size_t madness::X_space::n_orbitals
private

◆ n_states

size_t madness::X_space::n_states
private

◆ x

response_space madness::X_space::x

◆ y

response_space madness::X_space::y

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