SPI
SLEPc PETSc Interface is used for rapid development and intuitive matrix operations similar to MatLab or NumPy style of operations
Data Structures | Namespaces | Enumerations | Functions
SPIgrid.hpp File Reference
#include "SPIVec.hpp"
#include "SPIMat.hpp"
#include "SPIprint.hpp"
#include <string>

Go to the source code of this file.

Data Structures

struct  SPI::SPIgrid1D
 Class to contain various grid parameters. More...
 
struct  SPI::SPIgrid2D
 

Namespaces

 SPI
 

Enumerations

enum  SPI::gridtype {
  SPI::FD, SPI::FDperiodic, SPI::Fourier, SPI::Chebyshev,
  SPI::UltraS
}
 enumeration of grid types More...
 

Functions

PetscInt SPI::factorial (PetscInt n)
 compute the factorial of n. This is needed for get_D_Coeffs function More...
 
SPIVec SPI::get_D_Coeffs (SPIVec &s, PetscInt d)
 get the coefficients of the given stencil. More...
 
SPIMat SPI::map_D (SPIMat D, SPIVec y, PetscInt d, PetscInt order)
 map the derivative operator to the proper y grid More...
 
SPIMat SPI::set_D (SPIVec &y, PetscInt d, PetscInt order, PetscBool uniform)
 set the derivative operator for the proper y grid if uniform=false. Uses map_D function More...
 
SPIMat SPI::set_D_periodic (SPIVec &y, PetscInt d, PetscInt order)
 set the derivative operator for the proper periodic grid assuming uniform discretization. More...
 
SPIVec SPI::set_FD_stretched_y (PetscScalar y_max, PetscInt ny, PetscScalar delta)
 set stretched grid from [0,y_max] using tanh stretching for use with finite difference operators More...
 
SPIMat SPI::set_D_Chebyshev (SPIVec &x, PetscInt d, PetscBool need_map)
 set a Chebyshev collocated operator acting with respect to the collocated grid More...
 
SPIMat SPI::map_D_Chebyshev (SPIVec &x, PetscInt d)
 map a Chebyshev collocated operator acting with respect to the stretched collocated grid More...
 
SPIVec SPI::set_Cheby_stretched_y (PetscScalar y_max, PetscInt ny, PetscScalar yi)
 create a stretched Chebyshev grid from [0,y_max] with yi being the midpoint location for the number of points More...
 
SPIVec SPI::set_Cheby_mapped_y (PetscScalar a, PetscScalar b, PetscInt ny)
 create a stretched Chebyshev grid from [a,b] using default Chebfun like mapping More...
 
SPIVec SPI::set_Cheby_y (PetscInt ny)
 create a Chebyshev grid from [-1,1] More...
 
SPIVec SPI::set_Fourier_t (PetscScalar T, PetscInt nt)
 create a Fourier grid from [0,T] More...
 
SPIMat SPI::set_D_Fourier (SPIVec t, PetscInt d)
 create a Fourier derivative operator acting on grid t More...
 
std::tuple< SPIMat, SPIMat > SPI::set_D_UltraS (SPIVec &x, PetscInt d)
 set a UltraSpherical operator acting with respect to the collocated grid (keeps everything in UltraSpherical space), take in Chebyshev coefficients and outputs coefficients in C(d) coefficient space More...
 
std::tuple< SPIMat, SPIMat > SPI::set_T_That (PetscInt n)
 set a T and That operators acting with respect to the Chebyshev collocated grid, That: physical -> Chebyshev coefficient, T: Chebyshev coefficient -> physical More...
 
SPIVec SPI::SPIVec1Dto2D (SPIgrid2D &grid2D, SPIVec &u)
 expand a 1D vector to a 2D vector copying data along time dimension More...
 
PetscScalar SPI::integrate (const SPIVec &a, SPIgrid1D &grid)
 integrate a vector of chebyshev Coefficients on a physical grid More...
 
PetscScalar SPI::integrate (const SPIVec &a, SPIgrid2D &grid)
 integrate a vector of chebyshev Coefficients on a physical grid More...
 
SPIVec SPI::proj (SPIVec &u, SPIVec &v, SPIgrid1D &grid)
 
SPIVec SPI::proj (SPIVec &u, SPIVec &v, SPIgrid2D &grid)
 
std::vector< SPIVec > SPI::orthogonalize (std::vector< SPIVec > &x, SPIgrid1D &grid)
 
std::vector< SPIVec > SPI::orthogonalize (std::vector< SPIVec > &x, SPIgrid2D &grid)
 
SPIMat SPI::interp1D_Mat (SPIgrid1D &grid1, SPIgrid1D &grid2)
 
SPIMat SPI::interp1D_Mat (SPIVec &y1, SPIVec &y2)
 
SPIMat SPI::dft (PetscInt nt)
 
std::tuple< SPIMat, SPIMat, SPIMat, SPIMat > SPI::dft_dftinv_Ihalf_Ihalfn (PetscInt nt)