Jet  v1.3.3
vector_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_VECTOR_FIELD3_H_
8 #define INCLUDE_JET_VECTOR_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 VectorField3 : public Field3 {
19  public:
22 
24  virtual ~VectorField3();
25 
27  virtual Vector3D sample(const Vector3D& x) const = 0;
28 
30  virtual double divergence(const Vector3D& x) const;
31 
33  virtual Vector3D curl(const Vector3D& x) const;
34 
36  virtual std::function<Vector3D(const Vector3D&)> sampler() const;
37 };
38 
40 typedef std::shared_ptr<VectorField3> VectorField3Ptr;
41 
42 } // namespace jet
43 
44 #endif // INCLUDE_JET_VECTOR_FIELD3_H_
jet::VectorField3::VectorField3
VectorField3()
Default constructor.
jet::Field3
Abstract base class for 3-D fields.
Definition: field3.h:15
jet::VectorField3::curl
virtual Vector3D curl(const Vector3D &x) const
Returns curl at given position x.
jet
Definition: advection_solver2.h:18
jet::VectorField3::~VectorField3
virtual ~VectorField3()
Default destructor.
jet::VectorField3
Abstract base class for 3-D vector field.
Definition: vector_field3.h:18
jet::VectorField3::divergence
virtual double divergence(const Vector3D &x) const
Returns divergence at given position x.
field3.h
jet::VectorField3::sampler
virtual std::function< Vector3D(const Vector3D &)> sampler() const
Returns sampler function object.
vector3.h
jet::VectorField3::sample
virtual Vector3D sample(const Vector3D &x) const =0
Returns sampled value at given position x.
jet::Vector3D
Vector3< double > Vector3D
Double-type 3D vector.
Definition: vector3.h:349
jet::Vector< T, 3 >
3-D vector class.
Definition: vector3.h:25
jet::VectorField3Ptr
std::shared_ptr< VectorField3 > VectorField3Ptr
Shared pointer for the VectorField3 type.
Definition: vector_field3.h:40