Spectral Integral Suite in C++
sis::Discretize< T > Class Template Reference

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>

Inheritance diagram for sis::Discretize< T >:
Collaboration diagram for sis::Discretize< T >:

Public Member Functions

Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > operator() (const LinopMat< T > &Lmat_, const BcMat< T > &bc_)
 
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > operator() (const LinopMat< 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...
 
- Public Member Functions inherited from sis::MatGen< 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< T, Eigen::Dynamic, Eigen::Dynamic > P
 
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > subs_mat
 
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > mat_temp
 
std::vector< int > highest_each_column
 
int num_bc
 
- Public Attributes inherited from sis::MatGen< T >
std::vector< Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > > mats
 
std::vector< Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > > mats2
 
std::vector< Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > > con_mats
 

Detailed Description

template<class T>
class sis::Discretize< T >

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.

Definition at line 532 of file sis.hpp.

Member Function Documentation

◆ operator()() [1/2]

template<class T >
Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> sis::Discretize< T >::operator() ( const LinopMat< T > &  Lmat_,
const BcMat< T > &  bc_ 
)
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 9665 of file sis.hpp.

References sis::MatGen< T >::compute(), sis::Discretize< T >::highest_each_column, sis::Discretize< T >::mat_temp, sis::N, sis::Discretize< T >::num_bc, sis::Discretize< T >::P, and sis::Discretize< T >::subs_mat.

◆ operator()() [2/2]

template<class T >
Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> sis::Discretize< T >::operator() ( const LinopMat< T > &  Lmat)
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 9802 of file sis.hpp.

References sis::Discretize< T >::highest_each_column, sis::N, sis::Discretize< T >::num_bc, sis::Discretize< T >::P, and sis::Discretize< T >::subs_mat.

Member Data Documentation

◆ highest_each_column

◆ mat_temp

template<class T >
Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> sis::Discretize< T >::mat_temp

◆ num_bc

◆ P

template<class T >
Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> sis::Discretize< T >::P

◆ subs_mat

template<class T >
Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> sis::Discretize< T >::subs_mat

The documentation for this class was generated from the following file: