Jet  v1.3.3
scalar_field2.h
Go to the documentation of this file.
1 // Copyright (c) 2018 Doyub Kim
2 //
3 // I am making my contributions/submissions to this project solely in my
4 // personal capacity and am not conveying any rights to any intellectual
5 // property of any third parties.
6 
7 #ifndef INCLUDE_JET_SCALAR_FIELD2_H_
8 #define INCLUDE_JET_SCALAR_FIELD2_H_
9 
10 #include <jet/field2.h>
11 #include <jet/vector2.h>
12 #include <functional>
13 #include <memory>
14 
15 namespace jet {
16 
18 class ScalarField2 : public Field2 {
19  public:
22 
24  virtual ~ScalarField2();
25 
27  virtual double sample(const Vector2D& x) const = 0;
28 
30  virtual Vector2D gradient(const Vector2D& x) const;
31 
33  virtual double laplacian(const Vector2D& x) const;
34 
36  virtual std::function<double(const Vector2D&)> sampler() const;
37 };
38 
40 typedef std::shared_ptr<ScalarField2> ScalarField2Ptr;
41 
42 } // namespace jet
43 
44 #endif // INCLUDE_JET_SCALAR_FIELD2_H_
field2.h
jet::ScalarField2::~ScalarField2
virtual ~ScalarField2()
Default destructor.
jet::ScalarField2
Abstract base class for 2-D scalar field.
Definition: scalar_field2.h:18
jet
Definition: advection_solver2.h:18
jet::ScalarField2Ptr
std::shared_ptr< ScalarField2 > ScalarField2Ptr
Shared pointer for the ScalarField2 type.
Definition: scalar_field2.h:40
vector2.h
jet::Vector< T, 2 >
2-D vector class.
Definition: vector2.h:24
jet::ScalarField2::sampler
virtual std::function< double(const Vector2D &)> sampler() const
Returns sampler function object.
jet::ScalarField2::sample
virtual double sample(const Vector2D &x) const =0
Returns sampled value at given position x.
jet::ScalarField2::gradient
virtual Vector2D gradient(const Vector2D &x) const
Returns gradient vector at given position x.
jet::ScalarField2::laplacian
virtual double laplacian(const Vector2D &x) const
Returns Laplacian at given position x.
jet::Field2
Abstract base class for 2-D fields.
Definition: field2.h:15
jet::ScalarField2::ScalarField2
ScalarField2()
Default constructor.