forwardKolmogorovEq.hpp
1 #ifndef MARIAN_FORWARDKOLMOGOROVEQ_HPP
2 #define MARIAN_FORWARDKOLMOGOROVEQ_HPP
3 
4 #include <utils/smartPointer.hpp>
5 #include <diffusion/convectionDiffusionProcess.hpp>
6 #include <FDM/tridiagonalSolver.hpp>
7 #include <FDM/schemes/fdScheme.hpp>
8 #include <FDM/boundaryConditions/boundaryCondition.hpp>
9 
10 namespace marian {
11 
26  public:
30  process_(process) {}
31 
32  std::vector<double> solve(SmartPointer<FDScheme> scheme,
33  std::vector<double> init,
34  std::vector<SmartPointer<BoundaryCondition> > bcs,
35  std::vector<double> spatial_grid,
36  std::vector<double> time_grid);
37 
38  std::vector<double> solveAndSave(SmartPointer<FDScheme> scheme,
39  std::vector<double> init,
40  std::vector<SmartPointer<BoundaryCondition> > bcs,
41  std::vector<double> spatial_grid,
42  std::vector<double> time_grid,
43  std::string file_name);
44 
45  TridiagonalOperator getOperator(const std::vector<double>& sgrid);
46  private:
48  };
49 
50 } // namespace marian
51 
52 #endif /* MARIAN_FORWARDKOLMOGOROVEQ_HPP */
ConvectionDiffusion process_
Stochastic process.
Definition: forwardKolmogorovEq.hpp:47
Data structure holding the parameters of diffusion-convection equation.
Definition: convectionDiffusionProcess.hpp:13
Class implements Forward Kolmogorow Equation.
Definition: forwardKolmogorovEq.hpp:25
std::vector< double > solveAndSave(SmartPointer< FDScheme > scheme, std::vector< double > init, std::vector< SmartPointer< BoundaryCondition > > bcs, std::vector< double > spatial_grid, std::vector< double > time_grid, std::string file_name)
Solves equation and save it to CSV file.
Definition: forwardKolmogorovEq.cpp:35
TridiagonalOperator getOperator(const std::vector< double > &sgrid)
Constructs the discretized linear operator for Forward Kolmogorow Equation in form of Tridiagonal ope...
Definition: forwardKolmogorovEq.cpp:51
ForwardKolmogorowEquation(ConvectionDiffusion process)
constructor
Definition: forwardKolmogorovEq.hpp:29
Template of deep-coping smart pointer.
Definition: smartPointer.hpp:9
Definition: backwardKolmogorovEq.cpp:5
TridiagonalOperator is used to define differentiating operator for PDE being solved.
Definition: tridiagonalOperator.hpp:35
std::vector< double > solve(SmartPointer< FDScheme > scheme, std::vector< double > init, std::vector< SmartPointer< BoundaryCondition > > bcs, std::vector< double > spatial_grid, std::vector< double > time_grid)
Solves forward equation.
Definition: forwardKolmogorovEq.cpp:16