Spectral Integral Suite in C++
sis Namespace Reference

Classes

class  BcMat
 BcMat will hold general Boundary conditions as LinopMats at evealuation points, as given by operator L and evaluation points, eval. More...
 
class  BcMat< std::complex< T > >
 
class  Chebfun
 This is a chebfun analogue. Chebfun will represent both values in physical space or an array of Chebyshev-coefficients. Values can be in either space for calculations. To convert between physical values or Chebyshev coefficients, one can call Chebfun.c2p() and Chebfun.p2c(). More...
 
class  Chebfun< std::complex< T > >
 Chebfun overload to complex type. More...
 
class  ChebfunMat
 This class holds a matrix of Chebfuns. More...
 
class  ChebfunMat< std::complex< T > >
 ChebfunMat overloaded to complex type. More...
 
class  Discretize
 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...
 
class  Discretize< std::complex< 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. More...
 
class  EigenSolver
 This class computes the eigenvalues and eigenvectors (functions) of a Linear operator Linop. See documentation of Eigen on how to access eigenvalues and eigen vectors. More...
 
class  EigenSolver< std::complex< T > >
 This class computes the eigenvalues and eigenvectors (functions) of a Linear operator Linop, overloaded to a complex Linop. More...
 
class  EigenSorter
 This class stores functions and values needed to sort Eigenvalues. More...
 
class  GeneralizedEigenSolver
 This class will solve the generalized eigenvalue problem for two linear operators. One of them can be singular. More...
 
class  GeneralizedEigenSolver< std::complex< T > >
 
class  Linop
 Linop This class creates a Linear operator to solve TPBVPs. More...
 
class  Linop< std::complex< T > >
 Overloads the Linop class to complex type. More...
 
class  LinopMat
 This class represents a block matrix operator. It is a matrix of operators. More...
 
class  LinopMat< std::complex< T > >
 This class represents a block matrix operator. It is a matrix of operators. More...
 
class  MatGen
 This class sets up integration Matrices. This class must be intiated by the highest order of based on which integration matrices will be made. More...
 
class  MatGen< std::complex< T > >
 This class sets up integration Matrices. This class must be intiated by the highest order of based on which integration matrices will be made. More...
 
class  nChoosek
 Class to compute binomial coefficients \( \binom{n}{k} \) returns a double output. More...
 
class  nChoosek< std::complex< T > >
 Class to compute binomial coefficients \( \binom{n}{k} \), returns complex<double> output. More...
 
class  SingularValueDecomposition
 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...
 
class  SingularValueDecomposition< std::complex< T > >
 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...
 

Functions

std::valarray< std::complex< SIS_TYPE > > half_shift (N+1)
 
std::valarray< std::complex< SIS_TYPE > > rev_half_shift (N+1)
 
std::valarray< std::complex< SIS_TYPE > > yc (N+1)
 
std::valarray< SIS_TYPEy (N+1)
 
template<class T >
std::valarray< std::complex< T > > fft (std::valarray< T > in1)
 
template<class T >
std::valarray< std::complex< T > > fft (std::slice_array< T > in1)
 
template<class T >
std::valarray< T > ifft_cs (std::valarray< std::complex< T > > in)
 
template<class T >
std::valarray< T > ifft_cs (std::slice_array< std::complex< T > > in)
 
template<class T >
std::valarray< T > dct (const std::valarray< T > &x)
 
template<class T >
std::valarray< T > dct (const std::slice_array< T > &x)
 
template<class T >
std::valarray< T > idct (const std::valarray< T > &u)
 
template<class T >
std::valarray< T > idct (const std::slice_array< T > &u)
 
template<class T >
std::valarray< std::complex< T > > dct (const std::valarray< std::complex< T > > &in)
 
template<class T >
std::valarray< std::complex< T > > dct (const std::slice_array< std::complex< T > > &in)
 
template<class T >
std::valarray< std::complex< T > > idct (const std::valarray< std::complex< T > > &in)
 
template<class T >
std::valarray< std::complex< T > > idct (const std::slice_array< std::complex< T > > &in)
 
template<class T >
std::valarray< std::complex< T > > fft2 (std::valarray< T > in1, int Nx, int Nz)
 fft2 for a 2D matrix stored in the row-major format, Nx and Nz denote dimensions in x and z. The return value is of size Nx * Nz / 2 of complex type, which implicitly assumes conjugate symmetry and also that the values at the Nyquist frequency are zero. More...
 
template<class T >
std::valarray< T > ifft2_cs (std::valarray< std::complex< T > > in1, int Nx, int Nz)
 ifft2 for a 2D matrix stored in the row-major format, Nx and Nz denote dimensions in x and z. The input is of size (Nx x Nz / 2) of type complex double, which implicitly assumes conjugate symmetry and also that the values at the Nyquist frequency are zero. The return value is of size Nx * Nz of double type. More...
 
template<class T >
std::valarray< std::complex< T > > fft2 (std::slice_array< T > in1, int Nx, int Nz)
 
template<class T >
std::valarray< T > ifft2_cs (std::slice_array< std::complex< T > > in, int Nx, int Nz)
 
template<class T >
std::valarray< std::complex< T > > dealias_prod_2D (std::valarray< std::complex< T > > a, std::valarray< std::complex< T > > b, int Nx, int Nz)
 dealias_prod_2D for a 2D matrix stored in the row-major format, Nx and Nz denote dimensions in x and z. Input valarrays of size (Nx x Nz / 2) of type complex double, which implicitly assumes conjugate symmetry and also that the values at the Nyquist frequency are zero. The return value again complex double returning the dealiased convolution according to 3/2 rule. For example: pad zeros: Example: For an 8 x 8 matrix : More...
 
template<class T >
std::complex< T > size (const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > &in)
 This function is useful to see size of Eigen matrices. Returns a complex number, where the real part indicates the number of rows and imaginary part the number of columns. More...
 
template<class T >
std::complex< T > size (const Eigen::Matrix< std::complex< T >, Eigen::Dynamic, Eigen::Dynamic > &in)
 
template<class T >
void disp (std::valarray< T > in)
 Prints a valarray to terminal. More...
 
template<class T >
void setChebPts (std::valarray< T > &in)
 This function sets points to evaluate a function so that a DCT will give represent the same function in a Chebyshev basis. More...
 
template<class T >
void setChebPts (std::valarray< std::complex< T > > &in)
 This function sets points to evaluate a function so that a DCT will give represent the same function in a Chebyshev basis, overloaded to complex type. More...
 
template<class T >
void setChebPts (Eigen::Array< T, Eigen::Dynamic, 1 > &in)
 This function sets points to evaluate a function so that a DCT will give represent the same function in a Chebyshev basis, overloaded to Eigen array class. More...
 
template<class T >
void setChebPts (Eigen::Array< std::complex< T >, Eigen::Dynamic, 1 > &in)
 This function sets points to evaluate a function so that a DCT will give represent the same function in a Chebyshev basis, overloaded to complex Eigen array class. More...
 
void sis_setup ()
 
template<class T >
Eigen::Matrix< T, Eigen::Dynamic, 1 > diff (const Eigen::Matrix< T, Eigen::Dynamic, 1 > &u)
 Chebyshev differentiation operator for a vector of Chebyshev coefficients. More...
 
template<class T >
std::valarray< T > diff (const std::valarray< T > &u)
 Chebyshev differentiation operator for a vector of Chebyshev coefficients. More...
 
template<class T >
Eigen::Matrix< T, Eigen::Dynamic, 1 > integ (const Eigen::Matrix< T, Eigen::Dynamic, 1 > &u)
 Chebyshev integration operator for a vector of Chebyshev coefficients. More...
 
template<class T >
std::valarray< T > integ (const std::valarray< T > &u)
 Chebyshev integration operator for a vector of Chebyshev coefficients. More...
 
template<class T >
Eigen::Array< T, Eigen::Dynamic, 1 > integ (const Eigen::Array< T, Eigen::Dynamic, 1 > &u)
 
template<class T >
Eigen::Array< std::complex< T >, Eigen::Dynamic, 1 > dou2com (const Eigen::Array< T, Eigen::Dynamic, 1 > &a, const Eigen::Array< T, Eigen::Dynamic, 1 > &b)
 Use this to make a complex array out of two Eigen real valarrays. More...
 
template<class T >
Chebfun< T > conj (Chebfun< T > in)
 Complex conjugate of a Chebfun. More...
 
template<class T >
Chebfun< std::complex< T > > conj (Chebfun< std::complex< T > > in)
 Complex conjugate of a Chebfun. More...
 
template<class T >
Chebfun< T > diff (Chebfun< T > in, int n)
 Chebyshev differentiation operator, to differentiate n times. More...
 
template<class T >
std::ostream & operator<< (std::ostream &stream, Chebfun< T > a)
 This function overloads the cout<< operator to display the chebfun. More...
 
template<class T >
sis::ChebfunMat< T > conj (sis::ChebfunMat< T > in)
 Complex Conjugate of a ChebfunMat. Not the conjugate transpose. See cTranspose() in ChebfunMat for complex conjugate transpose. More...
 
template<class T >
ChebfunMat< T > diff (ChebfunMat< T > in, int n)
 Chebyshev differentiation operator, for a ChebfunMat, differeniates every Chebfun in the ChebfunMat n times. More...
 
template<class T >
Linop< T > diff (Linop< T > in, int n)
 Differentiation operator for Linop, to differentiate n times. More...
 
template<class T >
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > feval2D (std::valarray< ChebfunMat< T > > Amat, int r, int c, T a)
 
template<class T >
Eigen::Matrix< std::complex< T >, Eigen::Dynamic, Eigen::Dynamic > feval2D (std::valarray< ChebfunMat< std::complex< T > > > Amat, int r, int c, T a)
 
void vtkExportCartesian2D3C (const std::string &flnm, const std::valarray< double > &y, const std::valarray< double > &z, const std::valarray< double > &u, const std::valarray< double > &v, const std::valarray< double > &w, const std::valarray< double > &p)
 Exports all data of 2D3C to a file. There are two dimensions, the wall-normal and the spanwise, while there are three components, u, v, w, and also pressure. vtk file can be directly exported into paraview, or into Python using meshio Supply filename without .vtk extension, that will be automatically added. More...
 
void vtkExportCartesian3D (const std::string &flnm, const std::valarray< double > &x, const std::valarray< double > &y, const std::valarray< double > &z, const std::valarray< double > &u, const std::valarray< double > &v, const std::valarray< double > &w, const std::valarray< double > &p)
 Exports all data of 3D velocity to a file. VTK file can be directly exported into paraview, or into Python using meshio. Supply filename without .vtk extension, that will be automatically added. More...
 
void vtkExportCartesianStress3D (const std::string &flnm, const std::valarray< double > &x, const std::valarray< double > &y, const std::valarray< double > &z, const std::valarray< double > &t11, const std::valarray< double > &t12, const std::valarray< double > &t13, const std::valarray< double > &t22, const std::valarray< double > &t23, const std::valarray< double > &t33)
 Exports stress data to a file. VTK file can be directly exported into paraview, or into Python using meshio. Supply filename without .vtk extension, that will be automatically added. More...
 
template<class T >
Linop< T > conj (Linop< T > in)
 
template<class T >
ChebfunMat< T > operator+ (ChebfunMat< T > a, ChebfunMat< T > b)
 Defining addition of ChebfunMats. More...
 
template<class T >
std::vector< ChebfunMat< T > > operator+ (std::vector< sis::ChebfunMat< T > > a, std::vector< sis::ChebfunMat< T > > b)
 Defining addition of vector of ChebfunMats. Used for eigenvectors, Singular values, adjoints etc. More...
 
template<class T >
std::ostream & operator<< (std::ostream &stream, std::valarray< T > a)
 This function overloads std::cout<< to valarrays. More...
 
template<class T >
std::ostream & operator<< (std::ostream &stream, std::vector< T > a)
 
template<class T >
Linop< T > operator- (const Linop< T > &in)
 
template<class T >
Chebfun< T > operator- (const Chebfun< T > &in)
 
template<class T >
Linop< T > operator+ (Linop< T > l_, Linop< T > r_)
 
template<class T >
Linop< std::complex< T > > dou2com (Linop< T > real, Linop< T > imag)
 Converts real and imaginary parts of a Linop to a complex Linop. More...
 
template<class T >
Linop< std::complex< T > > operator+ (Linop< std::complex< T > > l_, Linop< T > r_)
 Addition of two Linops, complex with real: More...
 
template<class T >
Linop< std::complex< T > > operator+ (Linop< T > l_, Linop< std::complex< T > > r_)
 Addition of two Linops, real with complex: More...
 
template<class T >
Linop< T > operator+ (Linop< T > l_, Chebfun< T > r_)
 Addition of Linop to Chebfun: More...
 
template<class T >
Linop< std::complex< T > > operator+ (Linop< std::complex< T > > l_, Chebfun< std::complex< T > > r_)
 Addition of two Linop with Chebfun: More...
 
template<class T >
Linop< std::complex< T > > operator+ (Linop< T > l_, Chebfun< std::complex< T > > r_)
 Addition of two Linop with Chebfun: More...
 
template<class T >
Linop< std::complex< T > > operator+ (Linop< std::complex< T > > l_, Chebfun< T > r_)
 Addition of Linop with Chebfun: More...
 
template<class T >
Linop< T > operator+ (Chebfun< T > l_, Linop< T > r_)
 Addition of Chebfun to Linop: More...
 
template<class T >
Linop< std::complex< T > > operator+ (Chebfun< std::complex< T > > l_, Linop< std::complex< T > > r_)
 Addition of Chebfun to Linop: More...
 
template<class T >
Linop< std::complex< T > > operator+ (Chebfun< T > l_, Linop< std::complex< T > > r_)
 Addition of Chebfun to Linop: More...
 
template<class T >
Linop< std::complex< T > > operator+ (Chebfun< std::complex< T > > l_, Linop< T > r_)
 Addition of Chebfun to Linop: More...
 
template<class T >
Linop< T > operator+ (Linop< T > l_, std::valarray< T > r_)
 Addition of Linop to Chebfun: More...
 
template<class T >
Linop< std::complex< T > > operator+ (Linop< std::complex< T > > l_, std::valarray< std::complex< T > > r_)
 Addition of two Linop with Chebfun: More...
 
template<class T >
Linop< std::complex< T > > operator+ (Linop< T > l_, std::valarray< std::complex< T > > r_)
 Addition of two Linop with Chebfun: More...
 
template<class T >
Linop< std::complex< T > > operator+ (Linop< std::complex< T > > l_, std::valarray< T > r_)
 Addition of Linop with Chebfun: More...
 
template<class T >
Linop< T > operator+ (std::valarray< T > l_, const Linop< T > &r_)
 Addition of Chebfun to Linop: More...
 
template<class T >
Linop< std::complex< T > > operator+ (const std::valarray< std::complex< T > > &l_, const Linop< std::complex< T > > &r_)
 Addition of Chebfun to Linop: More...
 
template<class T >
Linop< std::complex< T > > operator+ (std::valarray< T > l_, Linop< std::complex< T > > r_)
 Addition of Chebfun to Linop: More...
 
template<class T >
Linop< std::complex< T > > operator+ (std::valarray< std::complex< T > > l_, Linop< T > r_)
 Addition of Chebfun to Linop: More...
 
template<class T >
Linop< T > operator- (Linop< T > l_, Linop< T > r_)
 Subtraction for two Linop: More...
 
template<class T >
Linop< std::complex< T > > operator- (Linop< std::complex< T > > l_, Linop< T > r_)
 Subtraction of two Linops, complex with real: More...
 
template<class T >
Linop< std::complex< T > > operator- (Linop< T > l_, Linop< std::complex< T > > r_)
 Subtraction of two Linops, real with complex: More...
 
template<class T >
Linop< T > operator- (Linop< T > l_, Chebfun< T > r_)
 Subtraction of Linop to Chebfun: More...
 
template<class T >
Linop< std::complex< T > > operator- (Linop< std::complex< T > > l_, Chebfun< std::complex< T > > r_)
 Subtraction of two Linop with Chebfun: More...
 
template<class T >
Linop< std::complex< T > > operator- (Linop< T > l_, Chebfun< std::complex< T > > r_)
 Subtraction of two Linop with Chebfun: More...
 
template<class T >
Linop< std::complex< T > > operator- (Linop< std::complex< T > > l_, Chebfun< T > r_)
 Subtraction of Linop with Chebfun: More...
 
template<class T >
Linop< T > operator- (Chebfun< T > l_, Linop< T > r_)
 Subtraction of Chebfun to Linop: More...
 
template<class T >
Linop< std::complex< T > > operator- (Chebfun< std::complex< T > > l_, Linop< std::complex< T > > r_)
 Subtraction of Chebfun to Linop: More...
 
template<class T >
Linop< std::complex< T > > operator- (Chebfun< T > l_, Linop< std::complex< T > > r_)
 Subtraction of Chebfun to Linop: More...
 
template<class T >
Linop< std::complex< T > > operator- (Chebfun< std::complex< T > > l_, Linop< T > r_)
 Subtraction of Chebfun to Linop: More...
 
template<class T >
Linop< T > operator- (Linop< T > l_, std::valarray< T > r_)
 Subtraction of Linop to Chebfun: More...
 
template<class T >
Linop< std::complex< T > > operator- (Linop< T > l_, std::valarray< std::complex< T > > r_)
 Subtraction of two Linop with Chebfun: More...
 
template<class T >
Linop< std::complex< T > > operator- (Linop< std::complex< T > > l_, std::valarray< T > r_)
 Subtraction of Linop with Chebfun: More...
 
template<class T >
Linop< T > operator- (const std::valarray< T > &l_, const Linop< T > &r_)
 Subtraction of Chebfun to Linop: More...
 
template<class T >
Linop< std::complex< T > > operator- (std::valarray< T > l_, Linop< std::complex< T > > r_)
 Subtraction of Chebfun to Linop: More...
 
template<class T >
Linop< std::complex< T > > operator- (std::valarray< std::complex< T > > l_, Linop< T > r_)
 Subtraction of Chebfun to Linop: More...
 
template<class T >
Eigen::Array< T, Eigen::Dynamic, 1 > operator* (std::valarray< T > left, const Eigen::Array< T, Eigen::Dynamic, 1 > &right)
 
template<class T >
Linop< T > operator* (std::valarray< T > left, Linop< T > right)
 
template<class T >
Linop< std::complex< T > > operator* (std::valarray< std::complex< T > > left, Linop< T > right)
 
template<class T >
Linop< std::complex< T > > operator* (std::valarray< T > left, Linop< std::complex< T > > right)
 
template<class T >
Linop< T > operator* (Chebfun< T > left, Linop< T > right)
 
template<class T >
Linop< std::complex< T > > operator* (Chebfun< std::complex< T > > left, Linop< T > right)
 
template<class T >
Linop< std::complex< T > > operator* (Chebfun< T > left, Linop< std::complex< T > > right)
 
template<class T >
Linop< T > operator* (T left, Linop< T > right)
 
template<class T >
Linop< std::complex< T > > operator* (std::complex< T > left, Linop< T > right)
 
template<class T >
Linop< std::complex< T > > operator* (T left, Linop< std::complex< T > > right)
 
template<class T >
Linop< T > operator+ (const Linop< T > &left, T right)
 Adding scalar to Linop. More...
 
template<class T >
Linop< T > operator+ (T left, const Linop< T > &right)
 Adding Linop to scalar. More...
 
template<class T >
Linop< std::complex< T > > operator+ (const Linop< std::complex< T > > &left, T right)
 Adding scalar to Linop complex. More...
 
template<class T >
Linop< std::complex< T > > operator+ (std::complex< T > left, const Linop< T > &right)
 Adding Linop to scalar. More...
 
template<class T >
Linop< std::complex< T > > operator+ (const Linop< T > &left, std::complex< T > right)
 Adding scalar to Linop complex. More...
 
template<class T >
Linop< std::complex< T > > operator+ (T left, const Linop< std::complex< T > > &right)
 Adding Linop to scalar. More...
 
template<class T >
Linop< T > operator- (const Linop< T > &left, T right)
 Subracting scalar from Linop. More...
 
template<class T >
Linop< T > operator- (T left, const Linop< T > &right)
 Adding Linop to scalar. More...
 
template<class T >
Linop< std::complex< T > > operator- (T left, const Linop< std::complex< T > > &right)
 Adding Linop to scallar. More...
 
template<class T >
Linop< std::complex< T > > operator- (std::complex< T > left, const Linop< T > &right)
 
template<class T >
Linop< std::complex< T > > operator- (const Linop< std::complex< T > > &left, T right)
 
template<class T >
Linop< std::complex< T > > operator- (const Linop< T > &left, std::complex< T > right)
 
template<class T >
Chebfun< T > operator* (T a, Chebfun< T > b)
 Multiplying Chebfun to a constant: More...
 
template<class T >
Chebfun< T > operator* (Chebfun< T > b, T a)
 Multiplying Chebfun to a constant: More...
 
template<class T >
Chebfun< std::complex< T > > operator* (Chebfun< std::complex< T > > b, T a)
 Multiplying Chebfun to a constant: More...
 
template<class T >
Chebfun< std::complex< T > > operator* (T a, Chebfun< std::complex< T > > b)
 Multiplying Chebfun to a constant: More...
 
template<class T >
ChebfunMat< T > operator* (T a, ChebfunMat< T > in)
 Multiplying ChebfunMat to a constant, all Chebfuns in the ChebfunMat is multiplied by the constant. More...
 
template<class T >
ChebfunMat< std::complex< T > > operator* (T a, ChebfunMat< std::complex< T > > in)
 Multiplying ChebfunMat to a constant, all Chebfuns in the ChebfunMat is multiplied by the constant. More...
 
template<class T >
ChebfunMat< std::complex< T > > operator* (std::complex< T > a, ChebfunMat< T > in)
 Multiplying ChebfunMat to a constant, all Chebfuns in the ChebfunMat is multiplied by the constant. More...
 
template<class T >
std::valarray< ChebfunMat< T > > operator* (T a, std::valarray< ChebfunMat< T > > in)
 Multiplying a vector of ChebfunMats to a constant, all Chebfuns in all ChebfunMats are multiplied by the constant. More...
 
template<class T >
std::valarray< ChebfunMat< std::complex< T > > > operator* (std::complex< T > a, std::valarray< ChebfunMat< T > > in)
 Multiplying a vector of ChebfunMats to a constant, all Chebfuns in all ChebfunMats are multiplied by the constant. More...
 
template<class T >
std::valarray< ChebfunMat< T > > operator* (T a, std::valarray< ChebfunMat< std::complex< T > > > in)
 Multiplying a vector of ChebfunMats to a constant, all Chebfuns in all ChebfunMats are multiplied by the constant. More...
 
template<class T >
Chebfun< T > operator* (Chebfun< T > a, Chebfun< T > b)
 Multiplying two Chebfuns. If in same space, returns in same space, else defauts to SIS_PHYS_SPACE. More...
 
template<class T >
Chebfun< std::complex< T > > operator* (Chebfun< T > a, Chebfun< std::complex< T > > b)
 
template<class T >
Chebfun< std::complex< T > > operator* (Chebfun< std::complex< T > > b, Chebfun< T > a)
 
template<class T >
Linop< std::complex< T > > operator* (Linop< std::complex< T > > L1, Linop< T > L2)
 
template<class T >
Linop< T > operator* (Linop< T > L1, Linop< std::complex< T > > L2)
 
template<class T >
Chebfun< T > operator+ (Chebfun< T > a, Chebfun< T > b)
 Addition for two chebfuns. If both functions are not in same space, then default evaluation will be in physical space. More...
 
template<class T >
Chebfun< std::complex< T > > operator+ (Chebfun< T > a, Chebfun< std::complex< T > > b)
 
template<class T >
Chebfun< std::complex< T > > operator+ (Chebfun< std::complex< T > > a, Chebfun< T > b)
 
template<class T >
Linop< T > pow (Linop< T > in, int a)
 
template<class T >
LinopMat< T > operator+ (LinopMat< T > left, LinopMat< T > right)
 
template<class T >
LinopMat< std::complex< T > > operator+ (LinopMat< std::complex< T > > left, LinopMat< T > right)
 
template<class T >
LinopMat< std::complex< T > > operator+ (LinopMat< T > left, LinopMat< std::complex< T > > right)
 
template<class T >
LinopMat< T > operator* (T a, LinopMat< T > right)
 Multiplies all linops with the constant. More...
 
template<class T >
LinopMat< std::complex< T > > operator* (T a, LinopMat< std::complex< T > > right)
 Multiplies all linops with the constant. More...
 
template<class T >
LinopMat< std::complex< T > > operator* (std::complex< T > a, LinopMat< T > right)
 Multiplies all linops with the constant. More...
 
template<class T >
LinopMat< T > operator* (LinopMat< T > left, LinopMat< T > right)
 Multiplication of LinopMats. More...
 
template<class T >
LinopMat< std::complex< T > > operator* (LinopMat< std::complex< T > > left, LinopMat< T > right)
 Multiplication of LinopMats. More...
 
template<class T >
LinopMat< std::complex< T > > operator* (LinopMat< T > left, LinopMat< std::complex< T > > right)
 Multiplication of LinopMats. More...
 
template<class T >
LinopMat< T > operator- (LinopMat< T > left, LinopMat< T > right)
 Subtraction of LinopMats. More...
 
template<class T >
LinopMat< std::complex< T > > operator- (LinopMat< std::complex< T > > left, LinopMat< T > right)
 
template<class T >
LinopMat< std::complex< T > > operator- (LinopMat< T > left, LinopMat< std::complex< T > > right)
 
template<class T >
LinopMat< T > operator/ (LinopMat< T > left_, T right)
 
template<class T >
LinopMat< std::complex< T > > operator/ (LinopMat< std::complex< T > > left_, T right)
 
template<class T >
ChebfunMat< std::complex< T > > linSolve (const LinopMat< std::complex< T > > &Lmat_, const BcMat< std::complex< T > > &bcmat_, const ChebfunMat< std::complex< T > > &forc_)
 Linear equation solver. More...
 

Variables

int N = 31
 Specifies number of Chebyshev polynomials, default N = 31. More...
 
Eigen::Matrix< std::complex< SIS_TYPE >, Eigen::Dynamic, Eigen::Dynamic > ycEigen
 
Eigen::Matrix< SIS_TYPE, Eigen::Dynamic, Eigen::Dynamic > yEigen
 

Function Documentation

◆ conj() [1/4]

◆ conj() [2/4]

template<class T >
Chebfun<std::complex<T> > sis::conj ( Chebfun< std::complex< T > >  in)

Complex conjugate of a Chebfun.

Definition at line 1957 of file sis.hpp.

References conj().

◆ conj() [3/4]

template<class T >
sis::ChebfunMat<T> sis::conj ( sis::ChebfunMat< T >  in)

Complex Conjugate of a ChebfunMat. Not the conjugate transpose. See cTranspose() in ChebfunMat for complex conjugate transpose.

Definition at line 2532 of file sis.hpp.

References sis::ChebfunMat< T >::c, conj(), sis::ChebfunMat< T >::r, and sis::ChebfunMat< T >::resize().

◆ conj() [4/4]

◆ dct() [1/4]

template<class T >
std::valarray<T> sis::dct ( const std::valarray< T > &  x)

Definition at line 617 of file sis.hpp.

References fft(), half_shift(), std::real(), and y().

Referenced by dct().

◆ dct() [2/4]

template<class T >
std::valarray<T> sis::dct ( const std::slice_array< T > &  x)

Definition at line 634 of file sis.hpp.

References dct().

◆ dct() [3/4]

template<class T >
std::valarray<std::complex<T> > sis::dct ( const std::valarray< std::complex< T > > &  in)

Definition at line 666 of file sis.hpp.

References dct(), dou2com(), std::imag(), and std::real().

◆ dct() [4/4]

template<class T >
std::valarray<std::complex<T> > sis::dct ( const std::slice_array< std::complex< T > > &  in)

Definition at line 678 of file sis.hpp.

References dct().

◆ dealias_prod_2D()

template<class T >
std::valarray<std::complex<T> > sis::dealias_prod_2D ( std::valarray< std::complex< T > >  a,
std::valarray< std::complex< T > >  b,
int  Nx,
int  Nz 
)

dealias_prod_2D for a 2D matrix stored in the row-major format, Nx and Nz denote dimensions in x and z. Input valarrays of size (Nx x Nz / 2) of type complex double, which implicitly assumes conjugate symmetry and also that the values at the Nyquist frequency are zero. The return value again complex double returning the dealiased convolution according to 3/2 rule. For example: pad zeros: Example: For an 8 x 8 matrix :

  • * * * - * * *
  • * * * - * * *
  • * * * - * * *
  • * * * - * * *

  • * * * - * * *
  • * * * - * * *
  • * * * - * * * we pad as
  • * * * 0 0 + 0 - * * *
  • * * * 0 0 + 0 - * * *
  • * * * 0 0 + 0 - * * *
  • * * * 0 0 + 0 - * * * 0 0 0 0 0 0 + 0 0 0 0 0
  • + + + + + + + + + + + 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0
  • - - - 0 0 + 0 - - - -
  • * * * 0 0 + 0 - * * *
  • * * * 0 0 + 0 - * * *
  • * * * 0 0 + 0 - * * *

Definition at line 861 of file sis.hpp.

References fft2(), and ifft2_cs().

◆ diff() [1/5]

template<class T >
Eigen::Matrix<T, Eigen::Dynamic, 1> sis::diff ( const Eigen::Matrix< T, Eigen::Dynamic, 1 > &  u)

◆ diff() [2/5]

template<class T >
std::valarray<T> sis::diff ( const std::valarray< T > &  u)

Chebyshev differentiation operator for a vector of Chebyshev coefficients.

Definition at line 1007 of file sis.hpp.

◆ diff() [3/5]

template<class T >
Chebfun<T> sis::diff ( Chebfun< T >  in,
int  n 
)

Chebyshev differentiation operator, to differentiate n times.

Definition at line 1963 of file sis.hpp.

References sis::Chebfun< T >::c2p(), sis::Chebfun< T >::dct_flag, diff(), sis::Chebfun< T >::p2c(), SIS_PHYS_SPACE, and sis::Chebfun< T >::v.

◆ diff() [4/5]

template<class T >
ChebfunMat<T> sis::diff ( ChebfunMat< T >  in,
int  n 
)

Chebyshev differentiation operator, for a ChebfunMat, differeniates every Chebfun in the ChebfunMat n times.

Definition at line 2545 of file sis.hpp.

References sis::ChebfunMat< T >::c, diff(), sis::ChebfunMat< T >::r, and sis::ChebfunMat< T >::resize().

◆ diff() [5/5]

template<class T >
Linop<T> sis::diff ( Linop< T >  in,
int  n 
)

Differentiation operator for Linop, to differentiate n times.

Definition at line 3103 of file sis.hpp.

References sis::Linop< T >::coef, sis::Linop< T >::coefFun, diff(), sis::Linop< T >::n, sis::Linop< T >::NCC, and sis::Linop< T >::ncc().

◆ disp()

template<class T >
void sis::disp ( std::valarray< T >  in)

Prints a valarray to terminal.

Definition at line 912 of file sis.hpp.

◆ dou2com() [1/2]

template<class T >
Eigen::Array<std::complex<T>, Eigen::Dynamic, 1> sis::dou2com ( const Eigen::Array< T, Eigen::Dynamic, 1 > &  a,
const Eigen::Array< T, Eigen::Dynamic, 1 > &  b 
)

Use this to make a complex array out of two Eigen real valarrays.

Definition at line 1133 of file sis.hpp.

Referenced by sis::Chebfun< std::complex< T > >::c2p(), dct(), dou2com(), idct(), sis::Chebfun< std::complex< T > >::MultMat(), operator*(), operator+(), and sis::Chebfun< std::complex< T > >::p2c().

◆ dou2com() [2/2]

template<class T >
Linop<std::complex<T> > sis::dou2com ( Linop< T >  real,
Linop< T >  imag 
)

Converts real and imaginary parts of a Linop to a complex Linop.

Definition at line 12170 of file sis.hpp.

References sis::Linop< T >::coef, sis::Linop< T >::coefFun, dou2com(), std::imag(), N, sis::Linop< T >::ncc(), std::real(), and sis::Linop< T >::set().

◆ feval2D() [1/2]

template<class T >
Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> sis::feval2D ( std::valarray< ChebfunMat< T > >  Amat,
int  r,
int  c,
a 
)

]brief Evaluates all the Chebfuns in a 2D vector of ChebfunMats in the row major format at the point "a" in the domain. The size of the 2D vector specified through r and c.

Definition at line 9076 of file sis.hpp.

Referenced by sis::SingularValueDecomposition< T >::AdjointBc_analytical(), and sis::SingularValueDecomposition< std::complex< T > >::AdjointBc_analytical().

◆ feval2D() [2/2]

template<class T >
Eigen::Matrix<std::complex<T>, Eigen::Dynamic, Eigen::Dynamic> sis::feval2D ( std::valarray< ChebfunMat< std::complex< T > > >  Amat,
int  r,
int  c,
a 
)

]brief Evaluates all the Chebfuns in a 2D vector of ChebfunMats in the row major format at the point "a" in the domain. The size of the 2D vector specified through r and c.

Definition at line 9105 of file sis.hpp.

◆ fft() [1/2]

template<class T >
std::valarray<std::complex<T> > sis::fft ( std::valarray< T >  in1)

Definition at line 544 of file sis.hpp.

References conj().

Referenced by dct(), fft(), sis::Chebfun< T >::p2c(), and sis::Chebfun< std::complex< T > >::p2c().

◆ fft() [2/2]

template<class T >
std::valarray<std::complex<T> > sis::fft ( std::slice_array< T >  in1)

Definition at line 577 of file sis.hpp.

References fft().

◆ fft2() [1/2]

template<class T >
std::valarray<std::complex<T> > sis::fft2 ( std::valarray< T >  in1,
int  Nx,
int  Nz 
)

fft2 for a 2D matrix stored in the row-major format, Nx and Nz denote dimensions in x and z. The return value is of size Nx * Nz / 2 of complex type, which implicitly assumes conjugate symmetry and also that the values at the Nyquist frequency are zero.

Definition at line 708 of file sis.hpp.

Referenced by dealias_prod_2D(), and fft2().

◆ fft2() [2/2]

template<class T >
std::valarray<std::complex<T> > sis::fft2 ( std::slice_array< T >  in1,
int  Nx,
int  Nz 
)

Definition at line 818 of file sis.hpp.

References fft2().

◆ half_shift()

std::valarray<std::complex<SIS_TYPE> > sis::half_shift ( N 1)

◆ idct() [1/4]

template<class T >
std::valarray<T> sis::idct ( const std::valarray< T > &  u)

Definition at line 638 of file sis.hpp.

References ifft_cs(), and rev_half_shift().

Referenced by idct().

◆ idct() [2/4]

template<class T >
std::valarray<T> sis::idct ( const std::slice_array< T > &  u)

Definition at line 661 of file sis.hpp.

References idct().

◆ idct() [3/4]

template<class T >
std::valarray<std::complex<T> > sis::idct ( const std::valarray< std::complex< T > > &  in)

Definition at line 684 of file sis.hpp.

References dou2com(), idct(), std::imag(), and std::real().

◆ idct() [4/4]

template<class T >
std::valarray<std::complex<T> > sis::idct ( const std::slice_array< std::complex< T > > &  in)

Definition at line 697 of file sis.hpp.

References idct().

◆ ifft2_cs() [1/2]

template<class T >
std::valarray<T> sis::ifft2_cs ( std::valarray< std::complex< T > >  in1,
int  Nx,
int  Nz 
)

ifft2 for a 2D matrix stored in the row-major format, Nx and Nz denote dimensions in x and z. The input is of size (Nx x Nz / 2) of type complex double, which implicitly assumes conjugate symmetry and also that the values at the Nyquist frequency are zero. The return value is of size Nx * Nz of double type.

Definition at line 765 of file sis.hpp.

Referenced by dealias_prod_2D(), and ifft2_cs().

◆ ifft2_cs() [2/2]

template<class T >
std::valarray<T> sis::ifft2_cs ( std::slice_array< std::complex< T > >  in,
int  Nx,
int  Nz 
)

Definition at line 823 of file sis.hpp.

References ifft2_cs().

◆ ifft_cs() [1/2]

template<class T >
std::valarray<T> sis::ifft_cs ( std::valarray< std::complex< T > >  in)

Definition at line 582 of file sis.hpp.

References std::real().

Referenced by idct(), and ifft_cs().

◆ ifft_cs() [2/2]

template<class T >
std::valarray<T> sis::ifft_cs ( std::slice_array< std::complex< T > >  in)

Definition at line 614 of file sis.hpp.

References ifft_cs().

◆ integ() [1/3]

template<class T >
Eigen::Matrix<T, Eigen::Dynamic, 1> sis::integ ( const Eigen::Matrix< T, Eigen::Dynamic, 1 > &  u)

Chebyshev integration operator for a vector of Chebyshev coefficients.

Gives the indefinite integral.

Definition at line 1031 of file sis.hpp.

Referenced by sis::Chebfun< T >::cumsum(), sis::Chebfun< std::complex< T > >::cumsum(), sis::Chebfun< T >::L2norm(), and sis::Chebfun< std::complex< T > >::L2norm().

◆ integ() [2/3]

template<class T >
std::valarray<T> sis::integ ( const std::valarray< T > &  u)

Chebyshev integration operator for a vector of Chebyshev coefficients.

Gives the indefinite integral.

Definition at line 1066 of file sis.hpp.

◆ integ() [3/3]

template<class T >
Eigen::Array<T, Eigen::Dynamic, 1> sis::integ ( const Eigen::Array< T, Eigen::Dynamic, 1 > &  u)

Definition at line 1099 of file sis.hpp.

◆ linSolve()

template<class T >
ChebfunMat<std::complex<T> > sis::linSolve ( const LinopMat< std::complex< T > > &  Lmat_,
const BcMat< std::complex< T > > &  bcmat_,
const ChebfunMat< std::complex< T > > &  forc_ 
)

◆ operator*() [1/31]

template<class T >
Eigen::Array<T, Eigen::Dynamic, 1> sis::operator* ( std::valarray< T >  left,
const Eigen::Array< T, Eigen::Dynamic, 1 > &  right 
)

Definition at line 12544 of file sis.hpp.

◆ operator*() [2/31]

template<class T >
Linop<T> sis::operator* ( std::valarray< T >  left,
Linop< T >  right 
)

◆ operator*() [3/31]

template<class T >
Linop<std::complex<T> > sis::operator* ( std::valarray< std::complex< T > >  left,
Linop< T >  right 
)

Definition at line 12572 of file sis.hpp.

◆ operator*() [4/31]

template<class T >
Linop<std::complex<T> > sis::operator* ( std::valarray< T >  left,
Linop< std::complex< T > >  right 
)

Definition at line 12580 of file sis.hpp.

References dou2com().

◆ operator*() [5/31]

template<class T >
Linop<T> sis::operator* ( Chebfun< T >  left,
Linop< T >  right 
)

◆ operator*() [6/31]

template<class T >
Linop<std::complex<T> > sis::operator* ( Chebfun< std::complex< T > >  left,
Linop< T >  right 
)

Definition at line 12608 of file sis.hpp.

◆ operator*() [7/31]

template<class T >
Linop<std::complex<T> > sis::operator* ( Chebfun< T >  left,
Linop< std::complex< T > >  right 
)

Definition at line 12616 of file sis.hpp.

◆ operator*() [8/31]

template<class T >
Linop<T> sis::operator* ( left,
Linop< T >  right 
)

◆ operator*() [9/31]

template<class T >
Linop<std::complex<T> > sis::operator* ( std::complex< T >  left,
Linop< T >  right 
)

Definition at line 12641 of file sis.hpp.

◆ operator*() [10/31]

template<class T >
Linop<std::complex<T> > sis::operator* ( left,
Linop< std::complex< T > >  right 
)

Definition at line 12648 of file sis.hpp.

◆ operator*() [11/31]

template<class T >
Chebfun<T> sis::operator* ( a,
Chebfun< T >  b 
)

Multiplying Chebfun to a constant:

Definition at line 12747 of file sis.hpp.

References sis::Chebfun< T >::dct_flag, and sis::Chebfun< T >::v.

◆ operator*() [12/31]

template<class T >
Chebfun<T> sis::operator* ( Chebfun< T >  b,
a 
)

Multiplying Chebfun to a constant:

Definition at line 12755 of file sis.hpp.

References sis::Chebfun< T >::dct_flag, and sis::Chebfun< T >::v.

◆ operator*() [13/31]

template<class T >
Chebfun<std::complex<T> > sis::operator* ( Chebfun< std::complex< T > >  b,
a 
)

Multiplying Chebfun to a constant:

Definition at line 12764 of file sis.hpp.

References sis::Chebfun< T >::dct_flag, and sis::Chebfun< T >::v.

◆ operator*() [14/31]

template<class T >
Chebfun<std::complex<T> > sis::operator* ( a,
Chebfun< std::complex< T > >  b 
)

Multiplying Chebfun to a constant:

Definition at line 12774 of file sis.hpp.

References sis::Chebfun< T >::dct_flag, and sis::Chebfun< T >::v.

◆ operator*() [15/31]

template<class T >
ChebfunMat<T> sis::operator* ( a,
ChebfunMat< T >  in 
)

Multiplying ChebfunMat to a constant, all Chebfuns in the ChebfunMat is multiplied by the constant.

Definition at line 12783 of file sis.hpp.

References sis::ChebfunMat< T >::c, sis::ChebfunMat< T >::r, and sis::ChebfunMat< T >::resize().

◆ operator*() [16/31]

template<class T >
ChebfunMat<std::complex<T> > sis::operator* ( a,
ChebfunMat< std::complex< T > >  in 
)

Multiplying ChebfunMat to a constant, all Chebfuns in the ChebfunMat is multiplied by the constant.

Definition at line 12800 of file sis.hpp.

References sis::ChebfunMat< T >::resize().

◆ operator*() [17/31]

template<class T >
ChebfunMat<std::complex<T> > sis::operator* ( std::complex< T >  a,
ChebfunMat< T >  in 
)

Multiplying ChebfunMat to a constant, all Chebfuns in the ChebfunMat is multiplied by the constant.

Definition at line 12814 of file sis.hpp.

References sis::ChebfunMat< T >::c, sis::ChebfunMat< T >::r, and sis::ChebfunMat< T >::resize().

◆ operator*() [18/31]

template<class T >
std::valarray<ChebfunMat<T> > sis::operator* ( a,
std::valarray< ChebfunMat< T > >  in 
)

Multiplying a vector of ChebfunMats to a constant, all Chebfuns in all ChebfunMats are multiplied by the constant.

Definition at line 12829 of file sis.hpp.

◆ operator*() [19/31]

template<class T >
std::valarray<ChebfunMat<std::complex<T> > > sis::operator* ( std::complex< T >  a,
std::valarray< ChebfunMat< T > >  in 
)

Multiplying a vector of ChebfunMats to a constant, all Chebfuns in all ChebfunMats are multiplied by the constant.

Definition at line 12842 of file sis.hpp.

◆ operator*() [20/31]

template<class T >
std::valarray<ChebfunMat<T> > sis::operator* ( a,
std::valarray< ChebfunMat< std::complex< T > > >  in 
)

Multiplying a vector of ChebfunMats to a constant, all Chebfuns in all ChebfunMats are multiplied by the constant.

Definition at line 12855 of file sis.hpp.

◆ operator*() [21/31]

template<class T >
Chebfun<T> sis::operator* ( Chebfun< T >  a,
Chebfun< T >  b 
)

Multiplying two Chebfuns. If in same space, returns in same space, else defauts to SIS_PHYS_SPACE.

Definition at line 12867 of file sis.hpp.

References sis::Chebfun< T >::c2p(), sis::Chebfun< T >::dct_flag, sis::Chebfun< T >::p2c(), SIS_PHYS_SPACE, and sis::Chebfun< T >::v.

◆ operator*() [22/31]

template<class T >
Chebfun<std::complex<T> > sis::operator* ( Chebfun< T >  a,
Chebfun< std::complex< T > >  b 
)

Definition at line 12902 of file sis.hpp.

◆ operator*() [23/31]

template<class T >
Chebfun<std::complex<T> > sis::operator* ( Chebfun< std::complex< T > >  b,
Chebfun< T >  a 
)

Definition at line 12910 of file sis.hpp.

◆ operator*() [24/31]

template<class T >
Linop<std::complex<T> > sis::operator* ( Linop< std::complex< T > >  L1,
Linop< T >  L2 
)

◆ operator*() [25/31]

template<class T >
Linop<T> sis::operator* ( Linop< T >  L1,
Linop< std::complex< T > >  L2 
)

◆ operator*() [26/31]

template<class T >
LinopMat<T> sis::operator* ( a,
LinopMat< T >  right 
)

Multiplies all linops with the constant.

Definition at line 13114 of file sis.hpp.

◆ operator*() [27/31]

template<class T >
LinopMat<std::complex<T> > sis::operator* ( a,
LinopMat< std::complex< T > >  right 
)

Multiplies all linops with the constant.

Definition at line 13125 of file sis.hpp.

◆ operator*() [28/31]

template<class T >
LinopMat<std::complex<T> > sis::operator* ( std::complex< T >  a,
LinopMat< T >  right 
)

Multiplies all linops with the constant.

Definition at line 13136 of file sis.hpp.

◆ operator*() [29/31]

template<class T >
LinopMat<T> sis::operator* ( LinopMat< T >  left,
LinopMat< T >  right 
)

Multiplication of LinopMats.

Definition at line 13147 of file sis.hpp.

◆ operator*() [30/31]

template<class T >
LinopMat<std::complex<T> > sis::operator* ( LinopMat< std::complex< T > >  left,
LinopMat< T >  right 
)

Multiplication of LinopMats.

Definition at line 13166 of file sis.hpp.

◆ operator*() [31/31]

template<class T >
LinopMat<std::complex<T> > sis::operator* ( LinopMat< T >  left,
LinopMat< std::complex< T > >  right 
)

Multiplication of LinopMats.

Definition at line 13186 of file sis.hpp.

◆ operator+() [1/33]

template<class T >
ChebfunMat<T> sis::operator+ ( ChebfunMat< T >  a,
ChebfunMat< T >  b 
)

Defining addition of ChebfunMats.

Definition at line 11987 of file sis.hpp.

References sis::ChebfunMat< T >::c, sis::ChebfunMat< T >::r, and sis::ChebfunMat< T >::resize().

◆ operator+() [2/33]

template<class T >
std::vector<ChebfunMat<T> > sis::operator+ ( std::vector< sis::ChebfunMat< T > >  a,
std::vector< sis::ChebfunMat< T > >  b 
)

Defining addition of vector of ChebfunMats. Used for eigenvectors, Singular values, adjoints etc.

Definition at line 12014 of file sis.hpp.

◆ operator+() [3/33]

template<class T >
Linop<T> sis::operator+ ( Linop< T >  l_,
Linop< T >  r_ 
)

◆ operator+() [4/33]

template<class T >
Linop<std::complex<T> > sis::operator+ ( Linop< std::complex< T > >  l_,
Linop< T >  r_ 
)

Addition of two Linops, complex with real:

Definition at line 12282 of file sis.hpp.

References dou2com().

◆ operator+() [5/33]

template<class T >
Linop<std::complex<T> > sis::operator+ ( Linop< T >  l_,
Linop< std::complex< T > >  r_ 
)

Addition of two Linops, real with complex:

Definition at line 12293 of file sis.hpp.

References dou2com().

◆ operator+() [6/33]

template<class T >
Linop<T> sis::operator+ ( Linop< T >  l_,
Chebfun< T >  r_ 
)

Addition of Linop to Chebfun:

Definition at line 12303 of file sis.hpp.

◆ operator+() [7/33]

template<class T >
Linop<std::complex<T> > sis::operator+ ( Linop< std::complex< T > >  l_,
Chebfun< std::complex< T > >  r_ 
)

Addition of two Linop with Chebfun:

Definition at line 12311 of file sis.hpp.

◆ operator+() [8/33]

template<class T >
Linop<std::complex<T> > sis::operator+ ( Linop< T >  l_,
Chebfun< std::complex< T > >  r_ 
)

Addition of two Linop with Chebfun:

Definition at line 12320 of file sis.hpp.

References dou2com().

◆ operator+() [9/33]

template<class T >
Linop<std::complex<T> > sis::operator+ ( Linop< std::complex< T > >  l_,
Chebfun< T >  r_ 
)

Addition of Linop with Chebfun:

Definition at line 12330 of file sis.hpp.

References dou2com().

◆ operator+() [10/33]

template<class T >
Linop<T> sis::operator+ ( Chebfun< T >  l_,
Linop< T >  r_ 
)

Addition of Chebfun to Linop:

Definition at line 12338 of file sis.hpp.

◆ operator+() [11/33]

template<class T >
Linop<std::complex<T> > sis::operator+ ( Chebfun< std::complex< T > >  l_,
Linop< std::complex< T > >  r_ 
)

Addition of Chebfun to Linop:

Definition at line 12346 of file sis.hpp.

◆ operator+() [12/33]

template<class T >
Linop<std::complex<T> > sis::operator+ ( Chebfun< T >  l_,
Linop< std::complex< T > >  r_ 
)

Addition of Chebfun to Linop:

Definition at line 12355 of file sis.hpp.

References dou2com().

◆ operator+() [13/33]

template<class T >
Linop<std::complex<T> > sis::operator+ ( Chebfun< std::complex< T > >  l_,
Linop< T >  r_ 
)

Addition of Chebfun to Linop:

Definition at line 12363 of file sis.hpp.

References dou2com().

◆ operator+() [14/33]

template<class T >
Linop<T> sis::operator+ ( Linop< T >  l_,
std::valarray< T >  r_ 
)

Addition of Linop to Chebfun:

Definition at line 12371 of file sis.hpp.

◆ operator+() [15/33]

template<class T >
Linop<std::complex<T> > sis::operator+ ( Linop< std::complex< T > >  l_,
std::valarray< std::complex< T > >  r_ 
)

Addition of two Linop with Chebfun:

Definition at line 12379 of file sis.hpp.

◆ operator+() [16/33]

template<class T >
Linop<std::complex<T> > sis::operator+ ( Linop< T >  l_,
std::valarray< std::complex< T > >  r_ 
)

Addition of two Linop with Chebfun:

Definition at line 12388 of file sis.hpp.

◆ operator+() [17/33]

template<class T >
Linop<std::complex<T> > sis::operator+ ( Linop< std::complex< T > >  l_,
std::valarray< T >  r_ 
)

Addition of Linop with Chebfun:

Definition at line 12400 of file sis.hpp.

References dou2com().

◆ operator+() [18/33]

template<class T >
Linop<T> sis::operator+ ( std::valarray< T >  l_,
const Linop< T > &  r_ 
)

Addition of Chebfun to Linop:

Definition at line 12409 of file sis.hpp.

◆ operator+() [19/33]

template<class T >
Linop<std::complex<T> > sis::operator+ ( const std::valarray< std::complex< T > > &  l_,
const Linop< std::complex< T > > &  r_ 
)

Addition of Chebfun to Linop:

Definition at line 12417 of file sis.hpp.

◆ operator+() [20/33]

template<class T >
Linop<std::complex<T> > sis::operator+ ( std::valarray< T >  l_,
Linop< std::complex< T > >  r_ 
)

Addition of Chebfun to Linop:

Definition at line 12426 of file sis.hpp.

References dou2com().

◆ operator+() [21/33]

template<class T >
Linop<std::complex<T> > sis::operator+ ( std::valarray< std::complex< T > >  l_,
Linop< T >  r_ 
)

Addition of Chebfun to Linop:

Definition at line 12432 of file sis.hpp.

References dou2com(), std::imag(), and std::real().

◆ operator+() [22/33]

template<class T >
Linop<T> sis::operator+ ( const Linop< T > &  left,
right 
)

Adding scalar to Linop.

Definition at line 12654 of file sis.hpp.

◆ operator+() [23/33]

template<class T >
Linop<T> sis::operator+ ( left,
const Linop< T > &  right 
)

Adding Linop to scalar.

Definition at line 12661 of file sis.hpp.

◆ operator+() [24/33]

template<class T >
Linop<std::complex<T> > sis::operator+ ( const Linop< std::complex< T > > &  left,
right 
)

Adding scalar to Linop complex.

Definition at line 12669 of file sis.hpp.

◆ operator+() [25/33]

template<class T >
Linop<std::complex<T> > sis::operator+ ( std::complex< T >  left,
const Linop< T > &  right 
)

Adding Linop to scalar.

Definition at line 12678 of file sis.hpp.

◆ operator+() [26/33]

template<class T >
Linop<std::complex<T> > sis::operator+ ( const Linop< T > &  left,
std::complex< T >  right 
)

Adding scalar to Linop complex.

Definition at line 12686 of file sis.hpp.

◆ operator+() [27/33]

template<class T >
Linop<std::complex<T> > sis::operator+ ( left,
const Linop< std::complex< T > > &  right 
)

Adding Linop to scalar.

Definition at line 12694 of file sis.hpp.

◆ operator+() [28/33]

template<class T >
Chebfun<T> sis::operator+ ( Chebfun< T >  a,
Chebfun< T >  b 
)

Addition for two chebfuns. If both functions are not in same space, then default evaluation will be in physical space.

Definition at line 13015 of file sis.hpp.

References sis::Chebfun< T >::c2p(), sis::Chebfun< T >::dct_flag, sis::Chebfun< T >::p2c(), SIS_PHYS_SPACE, and sis::Chebfun< T >::v.

◆ operator+() [29/33]

template<class T >
Chebfun<std::complex<T> > sis::operator+ ( Chebfun< T >  a,
Chebfun< std::complex< T > >  b 
)

Definition at line 13039 of file sis.hpp.

◆ operator+() [30/33]

template<class T >
Chebfun<std::complex<T> > sis::operator+ ( Chebfun< std::complex< T > >  a,
Chebfun< T >  b 
)

Definition at line 13046 of file sis.hpp.

◆ operator+() [31/33]

template<class T >
LinopMat<T> sis::operator+ ( LinopMat< T >  left,
LinopMat< T >  right 
)

Definition at line 13064 of file sis.hpp.

◆ operator+() [32/33]

template<class T >
LinopMat<std::complex<T> > sis::operator+ ( LinopMat< std::complex< T > >  left,
LinopMat< T >  right 
)

Definition at line 13080 of file sis.hpp.

◆ operator+() [33/33]

template<class T >
LinopMat<std::complex<T> > sis::operator+ ( LinopMat< T >  left,
LinopMat< std::complex< T > >  right 
)

Definition at line 13097 of file sis.hpp.

◆ operator-() [1/28]

template<class T >
Linop<T> sis::operator- ( const Linop< T > &  in)

◆ operator-() [2/28]

template<class T >
Chebfun<T> sis::operator- ( const Chebfun< T > &  in)

Definition at line 12069 of file sis.hpp.

References sis::Chebfun< T >::v.

◆ operator-() [3/28]

template<class T >
Linop<T> sis::operator- ( Linop< T >  l_,
Linop< T >  r_ 
)

Subtraction for two Linop:

Definition at line 12441 of file sis.hpp.

◆ operator-() [4/28]

template<class T >
Linop<std::complex<T> > sis::operator- ( Linop< std::complex< T > >  l_,
Linop< T >  r_ 
)

Subtraction of two Linops, complex with real:

Definition at line 12447 of file sis.hpp.

◆ operator-() [5/28]

template<class T >
Linop<std::complex<T> > sis::operator- ( Linop< T >  l_,
Linop< std::complex< T > >  r_ 
)

Subtraction of two Linops, real with complex:

Definition at line 12453 of file sis.hpp.

◆ operator-() [6/28]

template<class T >
Linop<T> sis::operator- ( Linop< T >  l_,
Chebfun< T >  r_ 
)

Subtraction of Linop to Chebfun:

Definition at line 12458 of file sis.hpp.

◆ operator-() [7/28]

template<class T >
Linop<std::complex<T> > sis::operator- ( Linop< std::complex< T > >  l_,
Chebfun< std::complex< T > >  r_ 
)

Subtraction of two Linop with Chebfun:

Definition at line 12464 of file sis.hpp.

◆ operator-() [8/28]

template<class T >
Linop<std::complex<T> > sis::operator- ( Linop< T >  l_,
Chebfun< std::complex< T > >  r_ 
)

Subtraction of two Linop with Chebfun:

Definition at line 12471 of file sis.hpp.

◆ operator-() [9/28]

template<class T >
Linop<std::complex<T> > sis::operator- ( Linop< std::complex< T > >  l_,
Chebfun< T >  r_ 
)

Subtraction of Linop with Chebfun:

Definition at line 12477 of file sis.hpp.

◆ operator-() [10/28]

template<class T >
Linop<T> sis::operator- ( Chebfun< T >  l_,
Linop< T >  r_ 
)

Subtraction of Chebfun to Linop:

Definition at line 12482 of file sis.hpp.

◆ operator-() [11/28]

template<class T >
Linop<std::complex<T> > sis::operator- ( Chebfun< std::complex< T > >  l_,
Linop< std::complex< T > >  r_ 
)

Subtraction of Chebfun to Linop:

Definition at line 12488 of file sis.hpp.

◆ operator-() [12/28]

template<class T >
Linop<std::complex<T> > sis::operator- ( Chebfun< T >  l_,
Linop< std::complex< T > >  r_ 
)

Subtraction of Chebfun to Linop:

Definition at line 12495 of file sis.hpp.

◆ operator-() [13/28]

template<class T >
Linop<std::complex<T> > sis::operator- ( Chebfun< std::complex< T > >  l_,
Linop< T >  r_ 
)

Subtraction of Chebfun to Linop:

Definition at line 12500 of file sis.hpp.

◆ operator-() [14/28]

template<class T >
Linop<T> sis::operator- ( Linop< T >  l_,
std::valarray< T >  r_ 
)

Subtraction of Linop to Chebfun:

Definition at line 12505 of file sis.hpp.

◆ operator-() [15/28]

template<class T >
Linop<std::complex<T> > sis::operator- ( Linop< T >  l_,
std::valarray< std::complex< T > >  r_ 
)

Subtraction of two Linop with Chebfun:

Definition at line 12511 of file sis.hpp.

◆ operator-() [16/28]

template<class T >
Linop<std::complex<T> > sis::operator- ( Linop< std::complex< T > >  l_,
std::valarray< T >  r_ 
)

Subtraction of Linop with Chebfun:

Definition at line 12518 of file sis.hpp.

◆ operator-() [17/28]

template<class T >
Linop<T> sis::operator- ( const std::valarray< T > &  l_,
const Linop< T > &  r_ 
)

Subtraction of Chebfun to Linop:

Definition at line 12525 of file sis.hpp.

◆ operator-() [18/28]

template<class T >
Linop<std::complex<T> > sis::operator- ( std::valarray< T >  l_,
Linop< std::complex< T > >  r_ 
)

Subtraction of Chebfun to Linop:

Definition at line 12531 of file sis.hpp.

◆ operator-() [19/28]

template<class T >
Linop<std::complex<T> > sis::operator- ( std::valarray< std::complex< T > >  l_,
Linop< T >  r_ 
)

Subtraction of Chebfun to Linop:

Definition at line 12537 of file sis.hpp.

◆ operator-() [20/28]

template<class T >
Linop<T> sis::operator- ( const Linop< T > &  left,
right 
)

Subracting scalar from Linop.

Definition at line 12701 of file sis.hpp.

◆ operator-() [21/28]

template<class T >
Linop<T> sis::operator- ( left,
const Linop< T > &  right 
)

Adding Linop to scalar.

Definition at line 12708 of file sis.hpp.

◆ operator-() [22/28]

template<class T >
Linop<std::complex<T> > sis::operator- ( left,
const Linop< std::complex< T > > &  right 
)

Adding Linop to scallar.

Definition at line 12717 of file sis.hpp.

◆ operator-() [23/28]

template<class T >
Linop<std::complex<T> > sis::operator- ( std::complex< T >  left,
const Linop< T > &  right 
)

Definition at line 12725 of file sis.hpp.

◆ operator-() [24/28]

template<class T >
Linop<std::complex<T> > sis::operator- ( const Linop< std::complex< T > > &  left,
right 
)

Definition at line 12732 of file sis.hpp.

◆ operator-() [25/28]

template<class T >
Linop<std::complex<T> > sis::operator- ( const Linop< T > &  left,
std::complex< T >  right 
)

Definition at line 12740 of file sis.hpp.

◆ operator-() [26/28]

template<class T >
LinopMat<T> sis::operator- ( LinopMat< T >  left,
LinopMat< T >  right 
)

Subtraction of LinopMats.

Definition at line 13206 of file sis.hpp.

◆ operator-() [27/28]

template<class T >
LinopMat<std::complex<T> > sis::operator- ( LinopMat< std::complex< T > >  left,
LinopMat< T >  right 
)

Definition at line 13222 of file sis.hpp.

◆ operator-() [28/28]

template<class T >
LinopMat<std::complex<T> > sis::operator- ( LinopMat< T >  left,
LinopMat< std::complex< T > >  right 
)

Definition at line 13239 of file sis.hpp.

◆ operator/() [1/2]

template<class T >
LinopMat<T> sis::operator/ ( LinopMat< T >  left_,
right 
)

Definition at line 13255 of file sis.hpp.

◆ operator/() [2/2]

template<class T >
LinopMat<std::complex<T> > sis::operator/ ( LinopMat< std::complex< T > >  left_,
right 
)

Definition at line 13267 of file sis.hpp.

◆ operator<<() [1/3]

template<class T >
std::ostream& sis::operator<< ( std::ostream &  stream,
Chebfun< T >  a 
)

This function overloads the cout<< operator to display the chebfun.

Definition at line 1981 of file sis.hpp.

References N, PI, SIS_CHEB_SPACE, and y().

◆ operator<<() [2/3]

template<class T >
std::ostream& sis::operator<< ( std::ostream &  stream,
std::valarray< T >  a 
)

This function overloads std::cout<< to valarrays.

Definition at line 12037 of file sis.hpp.

◆ operator<<() [3/3]

template<class T >
std::ostream& sis::operator<< ( std::ostream &  stream,
std::vector< T >  a 
)

Definition at line 12046 of file sis.hpp.

◆ pow()

◆ rev_half_shift()

std::valarray<std::complex<SIS_TYPE> > sis::rev_half_shift ( N 1)

◆ setChebPts() [1/4]

template<class T >
void sis::setChebPts ( std::valarray< T > &  in)

This function sets points to evaluate a function so that a DCT will give represent the same function in a Chebyshev basis.

Definition at line 920 of file sis.hpp.

References N.

Referenced by sis::SingularValueDecomposition< std::complex< T > >::AdjointBc_analytical(), sis::Discretize< std::complex< T > >::ChebDiff(), main(), and sis_setup().

◆ setChebPts() [2/4]

template<class T >
void sis::setChebPts ( std::valarray< std::complex< T > > &  in)

This function sets points to evaluate a function so that a DCT will give represent the same function in a Chebyshev basis, overloaded to complex type.

Definition at line 929 of file sis.hpp.

References N, and PI.

◆ setChebPts() [3/4]

template<class T >
void sis::setChebPts ( Eigen::Array< T, Eigen::Dynamic, 1 > &  in)

This function sets points to evaluate a function so that a DCT will give represent the same function in a Chebyshev basis, overloaded to Eigen array class.

Definition at line 938 of file sis.hpp.

References N, and PI.

◆ setChebPts() [4/4]

template<class T >
void sis::setChebPts ( Eigen::Array< std::complex< T >, Eigen::Dynamic, 1 > &  in)

This function sets points to evaluate a function so that a DCT will give represent the same function in a Chebyshev basis, overloaded to complex Eigen array class.

Definition at line 948 of file sis.hpp.

References N, and PI.

◆ sis_setup()

void sis::sis_setup ( )

Definition at line 954 of file sis.hpp.

References half_shift(), ii(), N, rev_half_shift(), setChebPts(), y(), yc(), ycEigen, and yEigen.

Referenced by main().

◆ size() [1/2]

template<class T >
std::complex<T> sis::size ( const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > &  in)

This function is useful to see size of Eigen matrices. Returns a complex number, where the real part indicates the number of rows and imaginary part the number of columns.

Definition at line 901 of file sis.hpp.

Referenced by main().

◆ size() [2/2]

template<class T >
std::complex<T> sis::size ( const Eigen::Matrix< std::complex< T >, Eigen::Dynamic, Eigen::Dynamic > &  in)

Definition at line 907 of file sis.hpp.

◆ vtkExportCartesian2D3C()

void sis::vtkExportCartesian2D3C ( const std::string &  flnm,
const std::valarray< double > &  y,
const std::valarray< double > &  z,
const std::valarray< double > &  u,
const std::valarray< double > &  v,
const std::valarray< double > &  w,
const std::valarray< double > &  p 
)

Exports all data of 2D3C to a file. There are two dimensions, the wall-normal and the spanwise, while there are three components, u, v, w, and also pressure. vtk file can be directly exported into paraview, or into Python using meshio Supply filename without .vtk extension, that will be automatically added.

Definition at line 11806 of file sis.hpp.

References y().

◆ vtkExportCartesian3D()

void sis::vtkExportCartesian3D ( const std::string &  flnm,
const std::valarray< double > &  x,
const std::valarray< double > &  y,
const std::valarray< double > &  z,
const std::valarray< double > &  u,
const std::valarray< double > &  v,
const std::valarray< double > &  w,
const std::valarray< double > &  p 
)

Exports all data of 3D velocity to a file. VTK file can be directly exported into paraview, or into Python using meshio. Supply filename without .vtk extension, that will be automatically added.

Definition at line 11862 of file sis.hpp.

References y().

Referenced by main().

◆ vtkExportCartesianStress3D()

void sis::vtkExportCartesianStress3D ( const std::string &  flnm,
const std::valarray< double > &  x,
const std::valarray< double > &  y,
const std::valarray< double > &  z,
const std::valarray< double > &  t11,
const std::valarray< double > &  t12,
const std::valarray< double > &  t13,
const std::valarray< double > &  t22,
const std::valarray< double > &  t23,
const std::valarray< double > &  t33 
)

Exports stress data to a file. VTK file can be directly exported into paraview, or into Python using meshio. Supply filename without .vtk extension, that will be automatically added.

Definition at line 11923 of file sis.hpp.

References y().

◆ y()

◆ yc()

std::valarray<std::complex<SIS_TYPE> > sis::yc ( N 1)

Referenced by main(), and sis_setup().

Variable Documentation

◆ N

int sis::N = 31

Specifies number of Chebyshev polynomials, default N = 31.

Definition at line 472 of file sis.hpp.

Referenced by sis::SingularValueDecomposition< std::complex< T > >::AdjointBc_analytical(), sis::Discretize< std::complex< T > >::ChebDiff(), sis::Chebfun< T >::Chebfun(), sis::Chebfun< std::complex< T > >::Chebfun(), sis::ChebfunMat< T >::ChebfunMat2EigenMat(), sis::ChebfunMat< std::complex< T > >::ChebfunMat2EigenMat(), OrdQz::compute(), sis::EigenSorter< T >::compute(), sis::GeneralizedEigenSolver< T >::compute(), sis::GeneralizedEigenSolver< std::complex< T > >::compute(), sis::MatGen< T >::compute(), sis::MatGen< std::complex< T > >::compute(), sis::SingularValueDecomposition< std::complex< T > >::compute(), sis::GeneralizedEigenSolver< T >::compute_with_constraints(), sis::GeneralizedEigenSolver< std::complex< T > >::computeAppend(), dlyap(), dou2com(), intWts(), sis::Chebfun< T >::isMachinePrecision(), sis::Chebfun< T >::isMachinePrecisionHalf(), linSolve(), lyap(), main(), sis::Discretize< std::complex< T > >::MatAppend(), sis::Chebfun< T >::MultMat(), sis::Chebfun< std::complex< T > >::MultMat(), sis::Chebfun< T >::operator()(), sis::Chebfun< std::complex< T > >::operator()(), sis::BcMat< T >::operator()(), sis::BcMat< std::complex< T > >::operator()(), sis::Discretize< T >::operator()(), sis::Discretize< std::complex< T > >::operator()(), sis::ChebfunMat< T >::operator,(), sis::ChebfunMat< std::complex< T > >::operator,(), operator<<(), sis::ChebfunMat< T >::operator<<(), sis::ChebfunMat< std::complex< T > >::operator<<(), sis::Chebfun< T >::operator=(), sis::ChebfunMat< T >::operator=(), sis::ChebfunMat< std::complex< T > >::operator=(), setChebPts(), sis_setup(), sis::Chebfun< T >::trunc(), and sis::Chebfun< std::complex< T > >::trunc().

◆ ycEigen

Eigen::Matrix<std::complex<SIS_TYPE>, Eigen::Dynamic, Eigen::Dynamic> sis::ycEigen

Definition at line 541 of file sis.hpp.

Referenced by sis_setup().

◆ yEigen

Eigen::Matrix<SIS_TYPE, Eigen::Dynamic, Eigen::Dynamic> sis::yEigen

Definition at line 542 of file sis.hpp.

Referenced by main(), and sis_setup().