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