WaveBlocksND
Public Member Functions | Private Attributes | List of all members
waveblocks::wavepackets::AbstractScalarHaWpBasis< D, MultiIndex > Class Template Referenceabstract

Abstract superclass that represents a set of basis function to a scalar Hagedorn wavepacket. More...

#include <hawp_commons.hpp>

Inheritance diagram for waveblocks::wavepackets::AbstractScalarHaWpBasis< D, MultiIndex >:
waveblocks::wavepackets::AbstractScalarHaWp< D, MultiIndex > waveblocks::wavepackets::HaWpGradient< D, MultiIndex > waveblocks::wavepackets::HaWpGradient< D, MultiIndex >::Component waveblocks::wavepackets::HomogeneousHaWp< D, MultiIndex >::Component waveblocks::wavepackets::InhomogeneousHaWp< D, MultiIndex >::Component waveblocks::wavepackets::ScalarHaWp< D, MultiIndex >

Public Member Functions

virtual real_t eps () const =0
 Retrieves the semi-classical scaling parameter \( \varepsilon \) of the wavepacket. More...
 
virtual HaWpParamSet< D > const & parameters () const =0
 Grants read-only access to the Hagedorn parameter set \( \Pi \) of the wavepacket. More...
 
virtual shapes::ShapeEnumSharedPtr< D, MultiIndex > shape () const =0
 Retrieves the basis shape \( \mathfrak{K} \) of the wavepacket. More...
 
template<int N>
HaWpEvaluator< D, MultiIndex, N > create_evaluator (CMatrix< D, N > const &grid) const
 
template<int N>
HaWpBasisVector< N > evaluate_basis (CMatrix< D, N > const &grid) const
 Evaluates all basis functions \( \{\phi_k\} \) on complex grid nodes \( x \in \gamma \). More...
 
template<int N>
HaWpBasisVector< N > evaluate_basis (RMatrix< D, N > const &rgrid) const
 Evaluates all basis functions \( \{\phi_k\} \) on real grid nodes \( x \in \gamma \). More...
 
shapes::ShapeEnumSharedPtr< D, MultiIndex > extended_shape () const
 Computes the extension \( \mathfrak{K}_{ext} \) of the stored basis shape \( \mathfrak{K} \). More...
 

Private Attributes

shapes::ShapeExtensionCache< D, MultiIndex > shape_extension_cache_
 

Detailed Description

template<dim_t D, class MultiIndex>
class waveblocks::wavepackets::AbstractScalarHaWpBasis< D, MultiIndex >

Abstract superclass that represents a set of basis function to a scalar Hagedorn wavepacket.

It provides read-only access to the scaling parameter \( \varepsilon \), the Hagedorn parameter set \( \Pi \) and the basis shape \( \mathfrak{K} \).

Therefore it is able to evaluate its basis functions \( \phi_k \) on quadrature points \( x \).

Member Function Documentation

template<dim_t D, class MultiIndex >
template<int N>
HaWpEvaluator<D,MultiIndex,N> waveblocks::wavepackets::AbstractScalarHaWpBasis< D, MultiIndex >::create_evaluator ( CMatrix< D, N > const &  grid) const
inline
template<dim_t D, class MultiIndex >
virtual real_t waveblocks::wavepackets::AbstractScalarHaWpBasis< D, MultiIndex >::eps ( ) const
pure virtual
template<dim_t D, class MultiIndex >
template<int N>
HaWpBasisVector<N> waveblocks::wavepackets::AbstractScalarHaWpBasis< D, MultiIndex >::evaluate_basis ( CMatrix< D, N > const &  grid) const
inline

Evaluates all basis functions \( \{\phi_k\} \) on complex grid nodes \( x \in \gamma \).

Parameters
gridComplex grid nodes / quadrature points \( \gamma \). Complex matrix with shape (dimensionality, number of grid nodes).
Returns
Complex 2D-array with shape (basis shape size, number of grid nodes)
template<dim_t D, class MultiIndex >
template<int N>
HaWpBasisVector<N> waveblocks::wavepackets::AbstractScalarHaWpBasis< D, MultiIndex >::evaluate_basis ( RMatrix< D, N > const &  rgrid) const
inline

Evaluates all basis functions \( \{\phi_k\} \) on real grid nodes \( x \in \gamma \).

Parameters
rgridReal grid nodes / quadrature points \( \gamma \). Real matrix with shape (dimensionality, number of grid nodes).
Returns
Complex 2D-array with shape (basis shape size, number of grid nodes)
Template Parameters
NNumber of quadrature points. Don't choose Eigen::Dynamic. It works, but performance is bad.
template<dim_t D, class MultiIndex >
shapes::ShapeEnumSharedPtr<D,MultiIndex> waveblocks::wavepackets::AbstractScalarHaWpBasis< D, MultiIndex >::extended_shape ( ) const
inline

Computes the extension \( \mathfrak{K}_{ext} \) of the stored basis shape \( \mathfrak{K} \).

Computing an extended shape is expensive. Therefore this function caches computed extensions.

Thread-Safety: The stored pointer to the cached shape extension is not guarded by a mutex. Therefore race conditions may occur when calling this function concurrently.

Returns
Shared pointer to the extended shape.
template<dim_t D, class MultiIndex >
virtual HaWpParamSet<D> const& waveblocks::wavepackets::AbstractScalarHaWpBasis< D, MultiIndex >::parameters ( ) const
pure virtual
template<dim_t D, class MultiIndex >
virtual shapes::ShapeEnumSharedPtr<D, MultiIndex> waveblocks::wavepackets::AbstractScalarHaWpBasis< D, MultiIndex >::shape ( ) const
pure virtual

Member Data Documentation

template<dim_t D, class MultiIndex >
shapes::ShapeExtensionCache<D,MultiIndex> waveblocks::wavepackets::AbstractScalarHaWpBasis< D, MultiIndex >::shape_extension_cache_
private

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