Jet  v1.3.3
scalar_field3.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_FIELD3_H_
8 #define INCLUDE_JET_SCALAR_FIELD3_H_
9 
10 #include <jet/field3.h>
11 #include <jet/vector3.h>
12 #include <functional>
13 #include <memory>
14 
15 namespace jet {
16 
18 class ScalarField3 : public Field3 {
19  public:
22 
24  virtual ~ScalarField3();
25 
27  virtual double sample(const Vector3D& x) const = 0;
28 
30  virtual Vector3D gradient(const Vector3D& x) const;
31 
33  virtual double laplacian(const Vector3D& x) const;
34 
36  virtual std::function<double(const Vector3D&)> sampler() const;
37 };
38 
40 typedef std::shared_ptr<ScalarField3> ScalarField3Ptr;
41 
42 } // namespace jet
43 
44 #endif // INCLUDE_JET_SCALAR_FIELD3_H_
jet::ScalarField3
Abstract base class for 3-D scalar field.
Definition: scalar_field3.h:18
jet::ScalarField3::sampler
virtual std::function< double(const Vector3D &)> sampler() const
Returns sampler function object.
jet::ScalarField3::ScalarField3
ScalarField3()
Default constructor.
jet::Field3
Abstract base class for 3-D fields.
Definition: field3.h:15
jet::ScalarField3::~ScalarField3
virtual ~ScalarField3()
Default destructor.
jet
Definition: advection_solver2.h:18
field3.h
jet::ScalarField3Ptr
std::shared_ptr< ScalarField3 > ScalarField3Ptr
Shared pointer for the ScalarField3 type.
Definition: scalar_field3.h:40
vector3.h
jet::ScalarField3::gradient
virtual Vector3D gradient(const Vector3D &x) const
Returns gradient vector at given position x.
jet::ScalarField3::laplacian
virtual double laplacian(const Vector3D &x) const
Returns Laplacian at given position x.
jet::Vector< T, 3 >
3-D vector class.
Definition: vector3.h:25
jet::ScalarField3::sample
virtual double sample(const Vector3D &x) const =0
Returns sampled value at given position x.