|
using | CMatrixNN = CMatrix< Eigen::Dynamic, Eigen::Dynamic > |
|
using | CMatrix1N = CMatrix< 1, Eigen::Dynamic > |
|
using | CMatrixN1 = CMatrix< Eigen::Dynamic, 1 > |
|
using | CMatrixD1 = CMatrix< D, 1 > |
|
using | CMatrixDD = CMatrix< D, D > |
|
using | CMatrixDN = CMatrix< D, Eigen::Dynamic > |
|
using | RMatrixD1 = RMatrix< D, 1 > |
|
using | CDiagonalNN = Eigen::DiagonalMatrix< complex_t, Eigen::Dynamic > |
|
using | NodeMatrix = typename QR::NodeMatrix |
|
using | WeightVector = typename QR::WeightVector |
|
using | op_t = std::function< CMatrix1N(CMatrixDN, RMatrixD1, dim_t, dim_t)> |
|
template<dim_t D, class MultiIndex, class QR>
class waveblocks::innerproducts::VectorInnerProduct< D, MultiIndex, QR >
Class providing inner product calculation of multi-component wavepackets.
- Template Parameters
-
D | dimensionality of processed wavepackets |
MultiIndex | multi-index type of processed wavepackets |
QR | quadrature rule to use, with R nodes |
template<dim_t D, class MultiIndex , class QR >
template<class Packet >
Calculate the matrix of the inner product.
Returns the matrix elements \(\langle \Psi | f | \Psi \rangle\) with an operator \(f\). The matrix consists of \(N \times N\) blocks ( \(N\): number of components), each of size \(|\mathfrak{K}| \times |\mathfrak{K}|\). The coefficients of the wavepacket are ignored.
- Parameters
-
[in] | packet | multi-component wavepacket \(\Psi\) |
[in] | op | operator \(f(x, q, i, j) : \mathbb{C}^{D \times R} \times \mathbb{R}^D \times \mathbb{N} \times \mathbb{N} \rightarrow \mathbb{C}^R\) which is evaluated at the nodal points \(x\) and position \(q\), between components \(\Phi_i\) and \(\Phi_j\); default returns a vector of ones if i==j, zeros otherwise |
- Template Parameters
-
Packet | packet type (e.g. HomogeneousHaWp) |
template<dim_t D, class MultiIndex , class QR >
template<class Pacbra , class Packet >
Calculate the matrix of the inner product.
Returns the matrix elements \(\langle \Psi | f | \Psi' \rangle\) with an operator \(f\). The matrix consists of \(N \times N'\) blocks ( \(N,N'\): number of components of \(\Psi,\Psi'\)), each of size \(|\mathfrak{K}_i| \times |\mathfrak{K}_j'|\). The coefficients of the wavepacket are ignored.
- Parameters
-
[in] | pacbra | multi-component wavepacket \(\Psi\) |
[in] | packet | multi-component wavepacket \(\Psi'\) |
[in] | op | operator \(f(x, q, i, j) : \mathbb{C}^{D \times R} \times \mathbb{R}^D \times \mathbb{N} \times \mathbb{N} \rightarrow \mathbb{C}^R\) which is evaluated at the nodal points \(x\) and position \(q\), between components \(\Phi_i\) and \(\Phi_j\); default returns a vector of ones if i==j, zeros otherwise |
- Template Parameters
-
Pacbra | packet type of \(\Psi\) (e.g. HomogeneousHaWp) |
Packet | packet type of \(\Psi'\) |