SG++-Doxygen-Documentation
|
Defines a System that is used to solve parabolic partial differential equations. More...
#include <OperationParabolicPDESolverSystemFreeBoundaries.hpp>
Public Member Functions | |
virtual sgpp::base::DataVector * | generateRHS () |
generates the right hand side of the system More... | |
virtual sgpp::base::DataVector * | getGridCoefficientsForCG () |
gets a pointer to the sparse grids coefficients used in the CG method to solve one timestep. More... | |
virtual void | mult (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result) |
Multiplicates a vector with the matrix. More... | |
OperationParabolicPDESolverSystemFreeBoundaries () | |
Constructor. More... | |
virtual | ~OperationParabolicPDESolverSystemFreeBoundaries () |
Destructor. More... | |
Public Member Functions inherited from sgpp::solver::OperationParabolicPDESolverSystem | |
void | abortTimestep () |
aborts the current timestep execution More... | |
virtual void | coarsenAndRefine (bool isLastTimestep=false)=0 |
virtual void | finishTimestep ()=0 |
performs some action that might be needed after a timestep has be finished in the ODE Solver, e.g. More... | |
sgpp::base::Grid * | getGrid () |
get the pointer to the underlying grid object More... | |
sgpp::base::DataVector * | getGridCoefficients () |
gets a pointer to the sparse grids coefficients with evtl. More... | |
void | getGridCoefficientsForSC (sgpp::base::DataVector &Values) |
stores the values of the (dehierarchized) grid in the sgpp::base::DataVector Values used by time step size control methods More... | |
sgpp::base::GridStorage * | getGridStorage () |
std::string | getODESolver () |
Returns the specified ODE solver for this instance. More... | |
sgpp::base::GridStorage * | getOldGridStorage () |
sgpp::base::GridStorage * | getSecondGridStorage () |
size_t | getSumGridPointsComplete () |
Returns the number of average grid points for the complete grid. More... | |
size_t | getSumGridPointsInner () |
Returns the number of average grid points for the inner grid. More... | |
OperationParabolicPDESolverSystem () | |
Constructor. More... | |
void | saveAlpha () |
stores the current alpha_complete into alpha_complete_old to be available in the next timestep More... | |
void | setODESolver (std::string ode) |
defines the used ODE Solver for this instance, this is important because the implementation of mult and generateRHS depends on the used ODE solver More... | |
void | setTimestepSize (double newTimestepSize) |
set the size of the new timestep More... | |
virtual void | startTimestep ()=0 |
Implements some start jobs of every timestep, e.g.discounting boundaries. More... | |
virtual | ~OperationParabolicPDESolverSystem () |
Destructor. More... | |
Public Member Functions inherited from sgpp::base::OperationMatrix | |
OperationMatrix () | |
Constructor. More... | |
virtual | ~OperationMatrix () |
Destructor. More... | |
Protected Member Functions | |
virtual void | applyLOperator (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result)=0 |
applies the PDE's system matrix, on complete grid - with boundaries More... | |
virtual void | applyMassMatrix (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result)=0 |
applies the PDE's mass matrix, on complete grid - with boundaries More... | |
Additional Inherited Members | |
Protected Attributes inherited from sgpp::solver::OperationParabolicPDESolverSystem | |
sgpp::base::DataVector * | alpha_complete |
Pointer to the alphas (ansatzfunctions' coefficients) More... | |
sgpp::base::DataVector * | alpha_complete_old |
Pointer to the alphas from the last timestep, needed when using variable timestep sizes. More... | |
sgpp::base::DataVector * | alpha_complete_tmp |
Pointer to temporary alphas, needed when using variable timestep sizes. More... | |
bool | bnewODESolver |
checks whether a new ODE solver has been selected after creation More... | |
sgpp::base::Grid * | BoundGrid |
Pointer to the grid object. More... | |
size_t | numSumGridpointsComplete |
Stores number of average gridpoints, complete grid. More... | |
size_t | numSumGridpointsInner |
Stores number of average gridpoints, inner grid. More... | |
sgpp::base::GridStorage * | oldGridStorage |
Pointer to the grid from the last iteration. More... | |
sgpp::base::DataVector * | rhs |
sgpp::base::GridStorage * | secondGridStorage |
Pointer to the grid from the last aborted iteration. More... | |
double | TimestepSize |
the size of one timestep used in the ODE Solver More... | |
double | TimestepSize_old |
the size of the last timestep More... | |
std::string | tOperationMode |
specifies in which solver this matrix is used, valid values are: ExEul for explicit Euler ImEul for implicit Euler CrNic for Crank Nicolson solver More... | |
Defines a System that is used to solve parabolic partial differential equations.
So an instance of this class has to pass to any ODE Solver used in SGpp.
\(A \dot{u} = L \vec{u}\)
A: mass matrix L: space discretization (L-Operator)
This class defines an elliptic problem in every timestep which is solved using an iterative SLE solver, that solving step is integrated in the ODE Solver.
sgpp::pde::OperationParabolicPDESolverSystemFreeBoundaries::OperationParabolicPDESolverSystemFreeBoundaries | ( | ) |
|
virtual |
Destructor.
Referenced by OperationParabolicPDESolverSystemFreeBoundaries().
|
protectedpure virtual |
applies the PDE's system matrix, on complete grid - with boundaries
alpha | the coefficients of the sparse grid's ansatzfunctions |
result | reference to the sgpp::base::DataVector into which the result is written |
Referenced by generateRHS(), and mult().
|
protectedpure virtual |
applies the PDE's mass matrix, on complete grid - with boundaries
alpha | the coefficients of the sparse grid's ansatzfunctions |
result | reference to the sgpp::base::DataVector into which the result is written |
Referenced by generateRHS(), and mult().
|
virtual |
generates the right hand side of the system
Implements sgpp::solver::OperationParabolicPDESolverSystem.
References sgpp::solver::OperationParabolicPDESolverSystem::alpha_complete, sgpp::solver::OperationParabolicPDESolverSystem::alpha_complete_old, applyLOperator(), applyMassMatrix(), sgpp::base::DataVector::getSize(), sgpp::solver::OperationParabolicPDESolverSystem::rhs, sgpp::base::DataVector::setAll(), sgpp::solver::OperationParabolicPDESolverSystem::startTimestep(), sgpp::solver::OperationParabolicPDESolverSystem::TimestepSize, sgpp::solver::OperationParabolicPDESolverSystem::TimestepSize_old, and sgpp::solver::OperationParabolicPDESolverSystem::tOperationMode.
|
virtual |
gets a pointer to the sparse grids coefficients used in the CG method to solve one timestep.
This is useful because (direchlet) boundaries can be skipped when solving the system.
Implements sgpp::solver::OperationParabolicPDESolverSystem.
References sgpp::solver::OperationParabolicPDESolverSystem::alpha_complete.
|
virtual |
Multiplicates a vector with the matrix.
alpha | sgpp::base::DataVector that contains the ansatzfunctions' coefficients |
result | sgpp::base::DataVector into which the result of the space discretization operation is stored |
Implements sgpp::solver::OperationParabolicPDESolverSystem.
References sgpp::base::DataVector::add(), applyLOperator(), applyMassMatrix(), sgpp::base::DataVector::axpy(), sgpp::base::DataVector::getSize(), sgpp::base::DataVector::mult(), sgpp::base::DataVector::setAll(), sgpp::solver::OperationParabolicPDESolverSystem::TimestepSize, sgpp::solver::OperationParabolicPDESolverSystem::TimestepSize_old, and sgpp::solver::OperationParabolicPDESolverSystem::tOperationMode.