WaveBlocksND
|
Class providing inhomogeneous inner product calculation of scalar wavepackets. More...
#include <inhomogeneous_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 | RMatrixDD = RMatrix< D, D > |
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 > &pacbra, 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 > &pacbra, 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 inhomogeneous 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::InhomogeneousInnerProduct< D, MultiIndex, QR >::CDiagonalXX = Eigen::DiagonalMatrix<complex_t, Eigen::Dynamic> |
using waveblocks::innerproducts::InhomogeneousInnerProduct< D, MultiIndex, QR >::CMatrix1X = CMatrix<1, Eigen::Dynamic> |
using waveblocks::innerproducts::InhomogeneousInnerProduct< D, MultiIndex, QR >::CMatrixD1 = CMatrix<D, 1> |
using waveblocks::innerproducts::InhomogeneousInnerProduct< D, MultiIndex, QR >::CMatrixDD = CMatrix<D, D> |
using waveblocks::innerproducts::InhomogeneousInnerProduct< D, MultiIndex, QR >::CMatrixDX = CMatrix<D, Eigen::Dynamic> |
using waveblocks::innerproducts::InhomogeneousInnerProduct< D, MultiIndex, QR >::CMatrixX1 = CMatrix<Eigen::Dynamic, 1> |
using waveblocks::innerproducts::InhomogeneousInnerProduct< D, MultiIndex, QR >::CMatrixXX = CMatrix<Eigen::Dynamic, Eigen::Dynamic> |
using waveblocks::innerproducts::InhomogeneousInnerProduct< D, MultiIndex, QR >::NodeMatrix = typename QR::NodeMatrix |
using waveblocks::innerproducts::InhomogeneousInnerProduct< D, MultiIndex, QR >::op_t = std::function<CMatrix1X(CMatrixDX,RMatrixD1)> |
using waveblocks::innerproducts::InhomogeneousInnerProduct< D, MultiIndex, QR >::RMatrixD1 = RMatrix<D, 1> |
using waveblocks::innerproducts::InhomogeneousInnerProduct< D, MultiIndex, QR >::RMatrixDD = RMatrix<D, D> |
using waveblocks::innerproducts::InhomogeneousInnerProduct< 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 wavepackets are ignored.
[in] | pacbra | wavepacket \(\Phi\) |
[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.