Spectral Integral Suite in C++
|
Given a linear block matrix operator and appropriate boundary conditions, this class will produce an Eigen matrix representing the discretized version. The implementation will naturally involve column pivoting, and the pivot matrix is also stored. More...
#include <sis.hpp>
Public Member Functions | |
Discretize () | |
Null Constructor. More... | |
Eigen::Matrix< std::complex< T >, Eigen::Dynamic, Eigen::Dynamic > | operator() (const LinopMat< std::complex< T > > &Lmat_, const BcMat< std::complex< T > > &bc_) |
Eigen::Matrix< std::complex< T >, Eigen::Dynamic, Eigen::Dynamic > | operator() (const LinopMat< std::complex< T > > &Lmat_) |
Discretization based on a previous call with Boundary conditions. Then other LinopMats can be discretized based on a previous Lbc called with operator()(const LinopMat<T> &Lmat, const BcMat<T> &bc). More... | |
Eigen::Matrix< std::complex< T >, Eigen::Dynamic, Eigen::Dynamic > | ChebDiff (const LinopMat< std::complex< T > > &Lmat_) |
Chebyshev differentiation operator for LinopMat. More... | |
Eigen::Matrix< std::complex< T >, Eigen::Dynamic, Eigen::Dynamic > | MatAppend (const LinopMat< std::complex< T > > &Lmat_, const BcMat< std::complex< T > > &bc_) |
Public Member Functions inherited from sis::MatGen< std::complex< T > > | |
MatGen () | |
Null Constructor. More... | |
MatGen (int n_) | |
Constructor. More... | |
void | compute (int n_) |
Call this to generate integration matrices for highest order n. More... | |
void | clear () |
Public Attributes | |
Eigen::Matrix< std::complex< T >, Eigen::Dynamic, Eigen::Dynamic > | P |
Eigen::Matrix< std::complex< T >, Eigen::Dynamic, Eigen::Dynamic > | subs_mat |
Eigen::Matrix< std::complex< T >, Eigen::Dynamic, Eigen::Dynamic > | A1 |
Eigen::Matrix< std::complex< T >, Eigen::Dynamic, Eigen::Dynamic > | invmat_temp |
std::vector< int > | highest_each_column |
int | num_bc |
Public Attributes inherited from sis::MatGen< std::complex< T > > | |
std::vector< Eigen::Matrix< std::complex< T >, Eigen::Dynamic, Eigen::Dynamic > > | mats |
std::vector< Eigen::Matrix< std::complex< T >, Eigen::Dynamic, Eigen::Dynamic > > | mats2 |
std::vector< Eigen::Matrix< std::complex< T >, Eigen::Dynamic, Eigen::Dynamic > > | con_mats |
Given a linear block matrix operator and appropriate boundary conditions, this class will produce an Eigen matrix representing the discretized version. The implementation will naturally involve column pivoting, and the pivot matrix is also stored.
|
inline |
|
inline |
Chebyshev differentiation operator for LinopMat.
Definition at line 10067 of file sis.hpp.
References sis::Discretize< T >::highest_each_column, sis::N, sis::Chebfun< T >::p2c(), sis::setChebPts(), and sis::y().
|
inline |
Generates the Eigen matrix of discretization as full matrix, without embedding constraints, by appending them instead. Constraints are at the bottom.
Definition at line 10160 of file sis.hpp.
References sis::MatGen< T >::compute(), sis::Discretize< T >::highest_each_column, sis::Discretize< T >::mat_temp, sis::MatGen< T >::mats2, sis::N, sis::Discretize< T >::num_bc, and sis::Discretize< T >::subs_mat.
|
inline |
Generates the Eigen matrix. Note that columns are pivoted according to P. Lmat is the operator, bc is the boundary condition and n_ is the highest order.
Definition at line 9872 of file sis.hpp.
References sis::MatGen< T >::compute(), sis::Discretize< T >::highest_each_column, sis::Discretize< T >::mat_temp, sis::MatGen< T >::mats2, sis::N, sis::Discretize< T >::num_bc, sis::Discretize< T >::P, and sis::Discretize< T >::subs_mat.
|
inline |
Discretization based on a previous call with Boundary conditions. Then other LinopMats can be discretized based on a previous Lbc called with operator()(const LinopMat<T> &Lmat, const BcMat<T> &bc).
Definition at line 10017 of file sis.hpp.
References sis::MatGen< T >::compute(), sis::Discretize< T >::highest_each_column, sis::MatGen< T >::mats2, sis::N, sis::Discretize< T >::num_bc, sis::Discretize< T >::P, and sis::Discretize< T >::subs_mat.
Eigen::Matrix<std::complex<T>, Eigen::Dynamic, Eigen::Dynamic> sis::Discretize< std::complex< T > >::A1 |
std::vector<int> sis::Discretize< std::complex< T > >::highest_each_column |
Eigen::Matrix<std::complex<T>, Eigen::Dynamic, Eigen::Dynamic> sis::Discretize< std::complex< T > >::invmat_temp |
int sis::Discretize< std::complex< T > >::num_bc |
Eigen::Matrix<std::complex<T>, Eigen::Dynamic, Eigen::Dynamic> sis::Discretize< std::complex< T > >::P |
Eigen::Matrix<std::complex<T>, Eigen::Dynamic, Eigen::Dynamic> sis::Discretize< std::complex< T > >::subs_mat |