![]() |
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.