|
WaveBlocksND
|
Class providing homogeneous inner product calculation of scalar wavepackets. More...
#include <homogeneous_inner_product.hpp>
Public Types | |
| using | CMatrixXX = CMatrix< Eigen::Dynamic, Eigen::Dynamic > |
| using | CMatrix1X = CMatrix< 1, Eigen::Dynamic > |
| using | CMatrixX1 = CMatrix< Eigen::Dynamic, 1 > |
| using | CMatrixD1 = CMatrix< D, 1 > |
| using | CMatrixDD = CMatrix< D, D > |
| using | CMatrixDX = CMatrix< D, Eigen::Dynamic > |
| using | RMatrixD1 = RMatrix< D, 1 > |
| using | CDiagonalXX = Eigen::DiagonalMatrix< complex_t, Eigen::Dynamic > |
| using | NodeMatrix = typename QR::NodeMatrix |
| using | WeightVector = typename QR::WeightVector |
| using | op_t = std::function< CMatrix1X(CMatrixDX, RMatrixD1)> |
Static Public Member Functions | |
| static CMatrixXX | build_matrix (const AbstractScalarHaWp< D, MultiIndex > &packet, const op_t &op=default_op) |
| Calculate the matrix of the inner product. More... | |
| static complex_t | quadrature (const AbstractScalarHaWp< D, MultiIndex > &packet, const op_t &op=default_op) |
| Perform quadrature. More... | |
Static Private Member Functions | |
| static CMatrix1X | default_op (const CMatrixDX &nodes, const RMatrixD1 &pos) |
Class providing homogeneous inner product calculation of scalar wavepackets.
| D | dimensionality of processed wavepackets |
| MultiIndex | multi-index type of processed wavepackets |
| QR | quadrature rule to use, with R nodes |
| using waveblocks::innerproducts::HomogeneousInnerProduct< D, MultiIndex, QR >::CDiagonalXX = Eigen::DiagonalMatrix<complex_t, Eigen::Dynamic> |
| using waveblocks::innerproducts::HomogeneousInnerProduct< D, MultiIndex, QR >::CMatrix1X = CMatrix<1, Eigen::Dynamic> |
| using waveblocks::innerproducts::HomogeneousInnerProduct< D, MultiIndex, QR >::CMatrixD1 = CMatrix<D, 1> |
| using waveblocks::innerproducts::HomogeneousInnerProduct< D, MultiIndex, QR >::CMatrixDD = CMatrix<D, D> |
| using waveblocks::innerproducts::HomogeneousInnerProduct< D, MultiIndex, QR >::CMatrixDX = CMatrix<D, Eigen::Dynamic> |
| using waveblocks::innerproducts::HomogeneousInnerProduct< D, MultiIndex, QR >::CMatrixX1 = CMatrix<Eigen::Dynamic, 1> |
| using waveblocks::innerproducts::HomogeneousInnerProduct< D, MultiIndex, QR >::CMatrixXX = CMatrix<Eigen::Dynamic, Eigen::Dynamic> |
| using waveblocks::innerproducts::HomogeneousInnerProduct< D, MultiIndex, QR >::NodeMatrix = typename QR::NodeMatrix |
| using waveblocks::innerproducts::HomogeneousInnerProduct< D, MultiIndex, QR >::op_t = std::function<CMatrix1X(CMatrixDX,RMatrixD1)> |
| using waveblocks::innerproducts::HomogeneousInnerProduct< D, MultiIndex, QR >::RMatrixD1 = RMatrix<D, 1> |
| using waveblocks::innerproducts::HomogeneousInnerProduct< D, MultiIndex, QR >::WeightVector = typename QR::WeightVector |
|
inlinestatic |
Calculate the matrix of the inner product.
Returns the matrix elements \(\langle \Phi | f | \Phi \rangle\) with an operator \(f\). The coefficients of the wavepacket are ignored.
| [in] | packet | wavepacket \(\Phi\) |
| [in] | op | operator \(f(x, q) : \mathbb{C}^{D \times R} \times \mathbb{R}^D \rightarrow \mathbb{C}^R\) which is evaluated at the nodal points \(x\) and position \(q\); default returns a vector of ones |
|
inlinestaticprivate |
|
inlinestatic |
Perform quadrature.
Evaluates the scalar \(\langle \Phi | f | \Phi \rangle\). See build_matrix() for the parameters.
1.8.11