explicitScheme.hpp
1 #ifndef MARIAN_EXPLICITSCHEME_HPP
2 #define MARIAN_EXPLICITSCHEME_HPP
3 
4 #include <FDM/schemes/fdScheme.hpp>
5 
6 namespace marian {
22  class ExplicitScheme : public DCFDScheme<ExplicitScheme> {
23  public:
24  ExplicitScheme(){};
31  }
32 
41  std::vector<double> solve(std::vector<double> f,
42  const std::vector<SmartPointer<BoundaryCondition> >& bcs,
43  const std::vector<double>& time_grid,
44  const TridiagonalOperator& L) override;
45 
56  std::vector<double> solveAndSave(std::vector<double> f,
57  const std::vector<SmartPointer<BoundaryCondition> >& bcs,
58  const std::vector<double>& spatial_grid,
59  const std::vector<double>& time_grid,
60  const TridiagonalOperator& L,
61  const std::string file_name) override;
62 
65  std::string info() const override {
66  return "explicit";
67  }
68  };
69 } // namespace marian
70 
71 
72 #endif /* MARIAN_EXPLICITSCHEME_HPP */
Deeply copyable BoundaryCondition.
Definition: fdScheme.hpp:94
std::vector< double > solve(std::vector< double > f, const std::vector< SmartPointer< BoundaryCondition > > &bcs, const std::vector< double > &time_grid, const TridiagonalOperator &L) override
Solves PDE defined by provided linear operator L and initial and boundary conditions.
Definition: explicitScheme.cpp:13
Class implements implicit schemes.
Definition: explicitScheme.hpp:22
Template of deep-coping smart pointer.
Definition: smartPointer.hpp:9
Definition: backwardKolmogorovEq.cpp:5
void setSolver(const SmartPointer< TridiagonalSolver > &) override
Provides a solver used in implicit scheme.
Definition: explicitScheme.hpp:30
std::string info() const override
Returns scheme name.
Definition: explicitScheme.hpp:65
TridiagonalOperator is used to define differentiating operator for PDE being solved.
Definition: tridiagonalOperator.hpp:35
std::vector< double > solveAndSave(std::vector< double > f, const std::vector< SmartPointer< BoundaryCondition > > &bcs, const std::vector< double > &spatial_grid, const std::vector< double > &time_grid, const TridiagonalOperator &L, const std::string file_name) override
Solves PDE defined by provided linear operator L and initial and boundary conditions. Additionally saves solution to CSV file.
Definition: explicitScheme.cpp:41