Go to the documentation of this file.
7 #ifndef INCLUDE_JET_CUSTOM_SCALAR_FIELD2_H_
8 #define INCLUDE_JET_CUSTOM_SCALAR_FIELD2_H_
28 const std::function<
double(
const Vector2D&)>& customFunction,
29 double derivativeResolution = 1e-3);
40 const std::function<
double(
const Vector2D&)>& customFunction,
42 double derivativeResolution = 1e-3);
46 const std::function<
double(
const Vector2D&)>& customFunction,
48 const std::function<
double(
const Vector2D&)>& customLaplacianFunction);
66 std::function<double(
const Vector2D&)> _customFunction;
68 std::function<double(
const Vector2D&)> _customLaplacianFunction;
69 double _resolution = 1e-3;
83 const std::function<
double(
const Vector2D&)>& func);
91 const std::function<
double(
const Vector2D&)>& func);
103 double _resolution = 1e-3;
104 std::function<double(
const Vector2D&)> _customFunction;
106 std::function<double(
const Vector2D&)> _customLaplacianFunction;
111 #endif // INCLUDE_JET_CUSTOM_SCALAR_FIELD2_H_
CustomScalarField2Ptr makeShared() const
Builds shared pointer of CustomScalarField2 instance.
Builder & withLaplacianFunction(const std::function< double(const Vector2D &)> &func)
Returns builder with curl function.
CustomScalarField2(const std::function< double(const Vector2D &)> &customFunction, const std::function< Vector2D(const Vector2D &)> &customGradientFunction, const std::function< double(const Vector2D &)> &customLaplacianFunction)
Constructs a field with given field, gradient, and Laplacian function.
Vector2< double > Vector2D
Double-type 2D vector.
Definition: vector2.h:340
Builder & withDerivativeResolution(double resolution)
Returns builder with derivative resolution.
Vector2D gradient(const Vector2D &x) const override
Returns the gradient vector at given position x.
Abstract base class for 2-D scalar field.
Definition: scalar_field2.h:18
CustomScalarField2(const std::function< double(const Vector2D &)> &customFunction, double derivativeResolution=1e-3)
Constructs a field with given function.
CustomScalarField2(const std::function< double(const Vector2D &)> &customFunction, const std::function< Vector2D(const Vector2D &)> &customGradientFunction, double derivativeResolution=1e-3)
Constructs a field with given field and gradient function.
std::shared_ptr< CustomScalarField2 > CustomScalarField2Ptr
Shared pointer type for the CustomScalarField2.
Definition: custom_scalar_field2.h:73
Definition: advection_solver2.h:18
2-D vector class.
Definition: vector2.h:24
double laplacian(const Vector2D &x) const override
Returns the Laplacian at given position x.
double sample(const Vector2D &x) const override
Returns the sampled value at given position x.
CustomScalarField2 build() const
Builds CustomScalarField2.
static Builder builder()
Returns builder fox CustomScalarField2.
Builder & withFunction(const std::function< double(const Vector2D &)> &func)
Returns builder with field function.
std::function< double(const Vector2D &)> sampler() const override
Returns the sampler function.
2-D scalar field with custom field function.
Definition: custom_scalar_field2.h:15
Builder & withGradientFunction(const std::function< Vector2D(const Vector2D &)> &func)
Returns builder with divergence function.
Front-end to create CustomScalarField2 objects step by step.
Definition: custom_scalar_field2.h:79