Spectral Integral Suite in C++
|
This class computes various SingularValues of a differential block matrix operator using using it's adjoint. Class has various utilities, like computing the adjoint, adjoint boundary conditions, and also computing singular values of the frequency response operator. More...
#include <sis.hpp>
Public Member Functions | |
void | compute (const LinopMat< T > &A_, const BcMat< T > &Lbc_, const BcMat< T > &Rbc_, int num_vals) |
Computes the singular values/functions of a Linear block matrix operator. More... | |
void | compute (const LinopMat< T > &A_, const LinopMat< T > &B_, const LinopMat< T > &C_, const BcMat< T > &Lbc_, const BcMat< T > &Rbc_, int num_vals) |
Computes the Singular value(s) of a system in the input-output form, \begin{align} [\mathcal{A}\,\psi(\cdot)](y) \;&=\; [\mathcal{B}\,\boldmath{d}(\cdot)](y) \\ \phi(y) \;&=\; \mathcal{C}\,\psi(y), \end{align} This is used to the find the frequency response of block matrix operators. More... | |
void | compute (const LinopMat< T > &A_, const ChebfunMat< T > &B_, const LinopMat< T > &C_, const BcMat< T > &Lbc_, const BcMat< T > &Rbc_, int num_vals) |
Computes the Singular value(s) of a system in the input-output form, \begin{align} [\mathcal{A}\,\psi(\cdot)](y) \;&=\; B(y)\,d \phi(y) \;&=\; \mathcal{C}\,\psi(y), \end{align} here, B(y) is a function and not an operator. More... | |
LinopMat< T > | Adjoint (const LinopMat< T > &Lmat_) |
Computes the adjoint of a linear operator. This is a differential adjoint, and not the conjugate transpose of the operators in the LinopMat. To get the latter, use cTranspose(); Adjoints are for generic discriptor systems, like \(M\partial_{t}\phi(y) = L\phi(y)\). More... | |
BcMat< T > | AdjointBc_analytical (const LinopMat< T > &Lmat_, const BcMat< T > &Lbc_, const BcMat< T > &Rbc_) |
Computes adjoint boundary conditions analytically, needs boundary conditions all right boundary conditions in rbc, and all left boundary conditions in lbc. All dependent variables need not have boundary conditions specified, but it is essential that the number of boundary conditions be equal to the sum of derivatives of all independent variables, and all the boundary conditions be linearly independent. The adjoint boundary conditions will be returned in the output, as a BcMat, will all boundary conditions for left and right in it, in the orders left followed by right. More... | |
Public Member Functions inherited from sis::GeneralizedEigenSolver< T > | |
GeneralizedEigenSolver () | |
Null constructor. More... | |
void | compute (Linop< T > L, Linop< T > M, int num_vals) |
Call this with an input Linear operator to solve for eigenvalues and vectors. The number of Eigen values/vectors is num_vals, num_vals has to be less than N. More... | |
void | compute (const LinopMat< T > &Lmat_, const LinopMat< T > &Mmat_, int num_vals, const BcMat< T > &Lbc_) |
This will use do the same work as compute(), but will overide all boundary conditions specified through BcVec and use the input BcMat instead. Read about class BcMat to see how this works, also see examples example/Ex_16.cpp and test/Visco_3D_pipe.cpp of how this is applied. This function is useful when boundary conditions are mixed between variables. Also, if you have boundary conditions that have an associated eigenvalue, see compute_with_constraints. More... | |
void | compute_with_constraints (const LinopMat< T > &Lmat_, const LinopMat< T > &Mmat_, int num_vals, const BcMat< T > &Lbc_, const BcMat< T > &Mbc_) |
void | compute_with_constraints (const LinopMat< T > &Lmat_, const LinopMat< T > &Mmat_, int num_vals, const BcMat< T > &Lbc_embed_, const BcMat< T > &Lbc_append_, const BcMat< T > &Mbc_append_) |
Additional Inherited Members | |
Public Attributes inherited from sis::GeneralizedEigenSolver< T > | |
std::vector< ChebfunMat< std::complex< T > > > | eigenvectorsMat |
Eigen::Matrix< std::complex< T >, Eigen::Dynamic, 1 > | eigenvalues |
This class computes various SingularValues of a differential block matrix operator using using it's adjoint. Class has various utilities, like computing the adjoint, adjoint boundary conditions, and also computing singular values of the frequency response operator.
|
inline |
Computes the adjoint of a linear operator. This is a differential adjoint, and not the conjugate transpose of the operators in the LinopMat. To get the latter, use cTranspose(); Adjoints are for generic discriptor systems, like \(M\partial_{t}\phi(y) = L\phi(y)\).
Definition at line 9269 of file sis.hpp.
References sis::diff(), ind, sis::pow(), and sis::LinopMat< T >::resize().
Referenced by sis::SingularValueDecomposition< T >::compute(), sis::SingularValueDecomposition< std::complex< T > >::compute(), sis::SingularValueDecomposition< std::complex< T > >::PowerSpectralDensity(), and sis::SingularValueDecomposition< std::complex< T > >::PowerSpectralDensityIndividual().
|
inline |
Computes adjoint boundary conditions analytically, needs boundary conditions all right boundary conditions in rbc, and all left boundary conditions in lbc. All dependent variables need not have boundary conditions specified, but it is essential that the number of boundary conditions be equal to the sum of derivatives of all independent variables, and all the boundary conditions be linearly independent. The adjoint boundary conditions will be returned in the output, as a BcMat, will all boundary conditions for left and right in it, in the orders left followed by right.
Definition at line 9408 of file sis.hpp.
References sis::diff(), sis::feval2D(), and sis::pow().
Referenced by sis::SingularValueDecomposition< T >::compute(), sis::SingularValueDecomposition< std::complex< T > >::compute(), sis::SingularValueDecomposition< std::complex< T > >::PowerSpectralDensity(), and sis::SingularValueDecomposition< std::complex< T > >::PowerSpectralDensityIndividual().
|
inline |
Computes the singular values/functions of a Linear block matrix operator.
Definition at line 9139 of file sis.hpp.
References sis::SingularValueDecomposition< T >::Adjoint(), sis::SingularValueDecomposition< T >::AdjointBc_analytical(), sis::GeneralizedEigenSolver< T >::compute(), and ind.
Referenced by sis::SingularValueDecomposition< std::complex< T > >::compute(), and main().
|
inline |
Computes the Singular value(s) of a system in the input-output form,
\begin{align} [\mathcal{A}\,\psi(\cdot)](y) \;&=\; [\mathcal{B}\,\boldmath{d}(\cdot)](y) \\ \phi(y) \;&=\; \mathcal{C}\,\psi(y), \end{align}
This is used to the find the frequency response of block matrix operators.
|
inline |