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