Go to the documentation of this file.
7 #ifndef INCLUDE_JET_CUSTOM_VECTOR_FIELD2_H_
8 #define INCLUDE_JET_CUSTOM_VECTOR_FIELD2_H_
29 double derivativeResolution = 1e-3);
41 const std::function<
double(
const Vector2D&)>& customDivergenceFunction,
42 double derivativeResolution = 1e-3);
47 const std::function<
double(
const Vector2D&)>& customDivergenceFunction,
48 const std::function<
double(
const Vector2D&)>& customCurlFunction);
67 std::function<double(
const Vector2D&)> _customDivergenceFunction;
68 std::function<double(
const Vector2D&)> _customCurlFunction;
69 double _resolution = 1e-3;
87 const std::function<
double(
const Vector2D&)>& func);
91 const std::function<
double(
const Vector2D&)>& func);
103 double _resolution = 1e-3;
105 std::function<double(
const Vector2D&)> _customDivergenceFunction;
106 std::function<double(
const Vector2D&)> _customCurlFunction;
111 #endif // INCLUDE_JET_CUSTOM_VECTOR_FIELD2_H_
Front-end to create CustomVectorField2 objects step by step.
Definition: custom_vector_field2.h:79
Builder & withCurlFunction(const std::function< double(const Vector2D &)> &func)
Returns builder with curl function.
std::function< Vector2D(const Vector2D &)> sampler() const override
Returns the sampler function.
Vector2< double > Vector2D
Double-type 2D vector.
Definition: vector2.h:340
CustomVectorField2 build() const
Builds CustomVectorField2.
static Builder builder()
Returns builder fox CustomVectorField2.
std::shared_ptr< CustomVectorField2 > CustomVectorField2Ptr
Shared pointer type for the CustomVectorField2.
Definition: custom_vector_field2.h:73
double curl(const Vector2D &x) const override
Returns the curl at given position x.
Vector2D sample(const Vector2D &x) const override
Returns the sampled value at given position x.
Builder & withDivergenceFunction(const std::function< double(const Vector2D &)> &func)
Returns builder with divergence function.
Definition: advection_solver2.h:18
2-D vector class.
Definition: vector2.h:24
Builder & withFunction(const std::function< Vector2D(const Vector2D &)> &func)
Returns builder with field function.
double divergence(const Vector2D &x) const override
Returns the divergence at given position x.
CustomVectorField2(const std::function< Vector2D(const Vector2D &)> &customFunction, const std::function< double(const Vector2D &)> &customDivergenceFunction, const std::function< double(const Vector2D &)> &customCurlFunction)
Constructs a field with given field, gradient, and Laplacian function.
CustomVectorField2(const std::function< Vector2D(const Vector2D &)> &customFunction, double derivativeResolution=1e-3)
Constructs a field with given function.
Builder & withDerivativeResolution(double resolution)
Returns builder with derivative resolution.
CustomVectorField2Ptr makeShared() const
Builds shared pointer of CustomVectorField2 instance.
CustomVectorField2(const std::function< Vector2D(const Vector2D &)> &customFunction, const std::function< double(const Vector2D &)> &customDivergenceFunction, double derivativeResolution=1e-3)
Constructs a field with given field and gradient function.
Abstract base class for 2-D vector field.
Definition: vector_field2.h:18
2-D vector field with custom field function.
Definition: custom_vector_field2.h:15