gridBuilder.hpp
1 #ifndef MARIAN_GRIDBUILDER_HPP
2 #define MARIAN_GRIDBUILDER_HPP
3 
4 #include <vector>
5 
6 namespace marian {
7 
14  class GridBuilder {
15  public:
24  virtual std::vector<double> buildGrid(double low, double upp, int N, double concentration) const = 0;
25 
28  virtual GridBuilder* clone() const;
29 
32  virtual ~GridBuilder(){};
33  };
34 
47  template<typename T>
48  class DCGridBuilder : public GridBuilder {
49  public:
52  virtual GridBuilder* clone() const {
53  return new T(static_cast<const T&>(*this));
54  }
55  };
56 
57 } // namespace marian
58 
59 
60 #endif /* MARIAN_GRIDBUILDER_HPP */
virtual GridBuilder * clone() const
virtual copy constructor
Definition: backwardKolmogorovEq.cpp:5
Deeply copyable GridBuilder.
Definition: gridBuilder.hpp:48
virtual std::vector< double > buildGrid(double low, double upp, int N, double concentration) const =0
Discretize the interval.
Interface for classes building grids.
Definition: gridBuilder.hpp:14
virtual GridBuilder * clone() const
Virtual copy constructor.
Definition: gridBuilder.hpp:52
virtual ~GridBuilder()
destructor
Definition: gridBuilder.hpp:32