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