WaveBlocksND
|
Represents a homogeneous Hagedorn wavepacket \( \Psi \) with \( N \) components \( \Phi_n \). All components share the same Hagedorn parameterset \( \Pi \) and scaling parameter \( \varepsilon \). More...
#include <hawp_commons.hpp>
Classes | |
class | Component |
Represents a component of a homogeneous wavepacket. More... | |
Public Member Functions | |
HomogeneousHaWp (std::size_t n) | |
real_t & | eps () |
Grants access to the semi-classical scaling parameter \( \varepsilon \) of the wavepacket. More... | |
real_t | eps () const |
Retrieves the semi-classical scaling parameter \( \varepsilon \) of the wavepacket. More... | |
HaWpParamSet< D > & | parameters () |
Grants writeable access to the Hagedorn parameter set \( \Pi \) of the wavepacket. More... | |
HaWpParamSet< D > const & | parameters () const |
Grants read-only access to the Hagedorn parameter set \( \Pi \) of the wavepacket. More... | |
std::vector< Component > & | components () |
Grants writeable access to all components \( \{\Phi_n\} \) of this wavepacket. More... | |
std::vector< Component > const & | components () const |
Grants read-only access to all components \( \{\Phi_n\} \) of this wavepacket. More... | |
Component & | component (std::size_t n) |
Grants writeable access to the \( n \)-th component \( \Phi_n \). More... | |
Component const & | component (std::size_t n) const |
Grants read-only access to the \( n \)-th component \( \Phi_n \). More... | |
Component & | operator[] (std::size_t n) |
Grants writeable access to the \( n \)-th component \( \Phi_n \). More... | |
Component const & | operator[] (std::size_t n) const |
Grants read-only access to the \( n \)-th component \( \Phi_n \). More... | |
std::size_t | n_components () const |
Returns the number of components. More... | |
shapes::ShapeEnumSharedPtr< D, MultiIndex > | union_shape () const |
Computes the union of basis shapes of all components. More... | |
template<int N> | |
CArray< Eigen::Dynamic, N > | evaluate (CMatrix< D, N > const &grid) const |
Evaluate the value of all components at once. More... | |
template<int N> | |
CArray< Eigen::Dynamic, N > | evaluate (RMatrix< D, N > const &rgrid) const |
Evaluates the value of all components at once. More... | |
Private Attributes | |
real_t | eps_ |
HaWpParamSet< D > | parameters_ |
std::vector< Component > | components_ |
std::vector< ShapeEnum< D, MultiIndex > * > | union_cache_snapshot_ |
shapes::ShapeEnumSharedPtr< D, MultiIndex > | cached_shape_union_ |
Represents a homogeneous Hagedorn wavepacket \( \Psi \) with \( N \) components \( \Phi_n \). All components share the same Hagedorn parameterset \( \Pi \) and scaling parameter \( \varepsilon \).
The number of components is determined at runtime.
D | wavepacket dimensionality |
MultiIndex |
|
inline |
|
inline |
Grants writeable access to the \( n \)-th component \( \Phi_n \).
n | The index \( n \) of the requested component. |
|
inline |
Grants read-only access to the \( n \)-th component \( \Phi_n \).
n | The index \( n \) of the requested component. |
|
inline |
Grants writeable access to all components \( \{\Phi_n\} \) of this wavepacket.
|
inline |
Grants read-only access to all components \( \{\Phi_n\} \) of this wavepacket.
|
inline |
Grants access to the semi-classical scaling parameter \( \varepsilon \) of the wavepacket.
|
inline |
Retrieves the semi-classical scaling parameter \( \varepsilon \) of the wavepacket.
|
inline |
Evaluate the value of all components at once.
Evaluates \( \Psi(x) = \{\Phi_i(x)\} \), where \( x \) is is a complex quadrature point.
Thread Safety: Some intermediate results are cached. The cache is not protected by a mutex. Thus concurrent access may introduce race conditions.
grid | Complex quadrature points. Complex matrix of shape (dimensionality, number of quadrature points) |
N | Number of quadrature points. Don't use Eigen::Dynamic. It works, but performance is bad. |
|
inline |
Evaluates the value of all components at once.
Evaluates \( \Psi(x) = \{\Phi_i(x)\} \), where \( x \) is is a real quadrature point.
rgrid | Real quadrature points. Real matrix of shape (dimensionality, number of quadrature points) |
N | Number of quadrature points. Don't use Eigen::Dynamic. It works, but performance is bad. |
|
inline |
Returns the number of components.
|
inline |
Grants writeable access to the \( n \)-th component \( \Phi_n \).
n | The index \( n \) of the requested component. |
|
inline |
Grants read-only access to the \( n \)-th component \( \Phi_n \).
n | The index \( n \) of the requested component. |
|
inline |
Grants writeable access to the Hagedorn parameter set \( \Pi \) of the wavepacket.
|
inline |
Grants read-only access to the Hagedorn parameter set \( \Pi \) of the wavepacket.
|
inline |
Computes the union of basis shapes of all components.
Thread Safety: This function caches the basis shape union. The cache is not protected by a mutex. This concurrent access may introduce race conditions.
|
mutableprivate |
|
private |
|
private |
|
private |
|
mutableprivate |