SG++-Doxygen-Documentation
sgpp::pde::ParabolicPDESolver Class Referenceabstract

This class extends the PDESolver with functions that are needed to solve parabolic PDEs. More...

#include <ParabolicPDESolver.hpp>

Inheritance diagram for sgpp::pde::ParabolicPDESolver:
sgpp::pde::PDESolver sgpp::pde::HeatEquationSolver sgpp::pde::HeatEquationSolverWithStretching

Public Member Functions

 ParabolicPDESolver ()
 the size of one timestep More...
 
virtual void solveCrankNicolson (size_t numTimesteps, double timestepsize, size_t maxCGIterations, double epsilonCG, sgpp::base::DataVector &alpha, size_t NumImEul=0)=0
 Call this routine to use the Crank Nicolson algorithm to solve the parabolic PDE. More...
 
virtual void solveExplicitEuler (size_t numTimesteps, double timestepsize, size_t maxCGIterations, double epsilonCG, sgpp::base::DataVector &alpha, bool verbose=false, bool generateAnimation=false)=0
 Call this routine to use an explicit Euler algorithm to solve the parabolic PDE. More...
 
virtual void solveImplicitEuler (size_t numTimesteps, double timestepsize, size_t maxCGIterations, double epsilonCG, sgpp::base::DataVector &alpha, bool verbose=false, bool generateAnimation=false)=0
 Call this routine to use an explicit Euler algorithm to solve the parabolic PDE. More...
 
virtual ~ParabolicPDESolver ()
 Std-Destructor of the solver. More...
 
- Public Member Functions inherited from sgpp::pde::PDESolver
void coarsenInitialGridSurplus (sgpp::base::DataVector &alpha, double dThreshold)
 Coarsens a grid by taking the grid's coefficients into account. More...
 
virtual void constructGrid (sgpp::base::BoundingBox &myBoundingBox, size_t level)=0
 Use this routine the construct a regular grid to solve a PDE. More...
 
void deleteGrid ()
 deletes the grid created within that solver More...
 
void evaluateCuboid (sgpp::base::DataVector &alpha, sgpp::base::DataVector &FunctionValues, sgpp::base::DataMatrix &EvaluationPoints)
 Evaluates the sparse grid's function given by the stored grid and the alpha coefficients. More...
 
double evaluatePoint (sgpp::base::DataVector &evalPoint, sgpp::base::DataVector &alpha)
 Determines the value of the function in the d-dimensional space. More...
 
std::string getGrid () const
 gets the a string the describes the grid which is currently used to solve More...
 
size_t getNumberDimensions () const
 use this the determine the number of dimensions that are currently used in the solver. More...
 
size_t getNumberGridPoints () const
 use this to determine the number of grid points, used to solve the current problem More...
 
size_t getNumberInnerGridPoints () const
 use this to determine the number of inner grid points, used to solve the current problem More...
 
 PDESolver ()
 Std-Constructor of the solver. More...
 
virtual void printGrid (sgpp::base::DataVector &alpha, size_t PointesPerDimension, std::string tfilename) const
 This is some kind of debug functionality. More...
 
virtual void printGridDomain (sgpp::base::DataVector &alpha, size_t PointesPerDimension, sgpp::base::BoundingBox &GridArea, std::string tfilename) const
 This is some kind of debug functionality. More...
 
virtual void printLevelIndexGrid (std::string tfilename) const
 Prints the level,index pairs of the grid for each Gridpoint to a file. More...
 
virtual void printSparseGrid (sgpp::base::DataVector &alpha, std::string tfilename, bool bSurplus) const
 Prints the sgpp::base::Grid Points of the Sparse sgpp::base::Grid either with their node basis value or their hierarchical surplus. More...
 
virtual void printSparseGridExpTransform (sgpp::base::DataVector &alpha, std::string tfilename, bool bSurplus) const
 Prints the sgpp::base::Grid Points of the Sparse sgpp::base::Grid either with their node basis value or their hierarchical surplus. More...
 
void refineInitialGridSurplus (sgpp::base::DataVector &alpha, int numRefinePoints, double dThreshold)
 Refines a grid by taking the grid's coefficients into account. More...
 
void refineInitialGridSurplusSubDomain (sgpp::base::DataVector &alpha, int numRefinePoints, double dThreshold, std::vector< double > &norm_mu, std::vector< double > &norm_sigma)
 Refines a grid by taking the grid's coefficients into account. More...
 
void refineInitialGridSurplusToMaxLevel (sgpp::base::DataVector &alpha, double dThreshold, sgpp::base::level_t maxLevel)
 Refines a grid by taking the grid's coefficients into account. More...
 
void refineInitialGridSurplusToMaxLevelSubDomain (sgpp::base::DataVector &alpha, double dThreshold, sgpp::base::level_t maxLevel, std::vector< double > &norm_mu, std::vector< double > &norm_sigma)
 Refines a grid by taking the grid's coefficients into account. More...
 
void setGrid (const std::string &serializedGrid)
 Sets the grid used in this BlackScholes Solver by an given serialized string of the grid. More...
 
virtual ~PDESolver ()
 Std-Destructor of the solver. More...
 

Additional Inherited Members

- Protected Member Functions inherited from sgpp::pde::PDESolver
virtual void getGridNormalDistribution (sgpp::base::DataVector &alpha, std::vector< double > &norm_mu, std::vector< double > &norm_sigma)
 This function calculates for every grid point the value of a normal distribution given by norm_mu and norm_sigma. More...
 
- Protected Attributes inherited from sgpp::pde::PDESolver
bool bGridConstructed
 stores if the grid was created inside the solver More...
 
size_t dim
 the dimension of the grid More...
 
int levels
 the number of levels used for an regular grid More...
 
sgpp::base::BoundingBoxmyBoundingBox
 Stores Pointer to the sgpp::base::Grid's Bounding Box. More...
 
sgpp::base::GridmyGrid
 The Sparse sgpp::base::Grid needed in this classificator. More...
 
sgpp::base::GridStoragemyGridStorage
 Stores Pointer to the Girs's Storage. More...
 

Detailed Description

This class extends the PDESolver with functions that are needed to solve parabolic PDEs.

Constructor & Destructor Documentation

◆ ParabolicPDESolver()

sgpp::pde::ParabolicPDESolver::ParabolicPDESolver ( )

the size of one timestep

The number of timesteps that are executed during solving Std-Constructor of the solver

◆ ~ParabolicPDESolver()

sgpp::pde::ParabolicPDESolver::~ParabolicPDESolver ( )
virtual

Std-Destructor of the solver.

Member Function Documentation

◆ solveCrankNicolson()

virtual void sgpp::pde::ParabolicPDESolver::solveCrankNicolson ( size_t  numTimesteps,
double  timestepsize,
size_t  maxCGIterations,
double  epsilonCG,
sgpp::base::DataVector alpha,
size_t  NumImEul = 0 
)
pure virtual

Call this routine to use the Crank Nicolson algorithm to solve the parabolic PDE.

Parameters
numTimestepsthe number of timesteps that should be executed
timestepsizethe size of the interval one timestep moves forward
maxCGIterationsthe maximum of interation in the CG solver
epsilonCGthe epsilon used in the CG
alphathe coefficients of the Sparse Gird's basis functions
NumImEulspecifies how many ImEul steps should be executed before CrNic is used, default is 0

Implemented in sgpp::pde::HeatEquationSolverWithStretching, and sgpp::pde::HeatEquationSolver.

◆ solveExplicitEuler()

virtual void sgpp::pde::ParabolicPDESolver::solveExplicitEuler ( size_t  numTimesteps,
double  timestepsize,
size_t  maxCGIterations,
double  epsilonCG,
sgpp::base::DataVector alpha,
bool  verbose = false,
bool  generateAnimation = false 
)
pure virtual

Call this routine to use an explicit Euler algorithm to solve the parabolic PDE.

Parameters
numTimestepsthe number of timesteps that should be executed
timestepsizethe size of the interval one timestep moves forward
maxCGIterationsthe maximum of interation in the CG solver
epsilonCGthe epsilon used in the CG
alphathe coefficients of the Sparse Gird's basis functions
verboseenables verbose output during solving
generateAnimationset this to true, if you want to generate a grid output in every timestep

Implemented in sgpp::pde::HeatEquationSolverWithStretching, and sgpp::pde::HeatEquationSolver.

◆ solveImplicitEuler()

virtual void sgpp::pde::ParabolicPDESolver::solveImplicitEuler ( size_t  numTimesteps,
double  timestepsize,
size_t  maxCGIterations,
double  epsilonCG,
sgpp::base::DataVector alpha,
bool  verbose = false,
bool  generateAnimation = false 
)
pure virtual

Call this routine to use an explicit Euler algorithm to solve the parabolic PDE.

Parameters
numTimestepsthe number of timesteps that should be executed
timestepsizethe size of the interval one timestep moves forward
maxCGIterationsthe maximum of interation in the CG solver
epsilonCGthe epsilon used in the CG
alphathe coefficients of the Sparse Gird's basis functions
verboseenables verbose output during solving
generateAnimationset this to true, if you want to generate a grid output in every timestep

Implemented in sgpp::pde::HeatEquationSolverWithStretching, and sgpp::pde::HeatEquationSolver.


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