template<class V, class ... Values>
Rodin::Variational::VectorFunction<V, Values...> class final

Represents a vector function which may be constructed from values which can be converted to objects of type RealFunction.

Template parameters
V Type of first value
Values Parameter pack of remaining values

In general one may construct any VectorFunction by specifying its values in a uniform initialization manner. For example, to construct a VectorFunction with constant entries (1, 2, 3) : auto v = VectorFunction{1, 2, 3}; Alternatively, we may construct instances of VectorFunction from any type which is convertible to specializations of RealFunction:

auto s = RealFunction(3.1416);
auto v = VectorFunction{Dx(s), 42, s};

Base classes

template<class Scalar, class Derived>
class VectorFunctionBase<Real, VectorFunction<V, Values...>>
Base class for vector-valued functions defined on a mesh.

Constructors, destructors, conversion operators

VectorFunction(const V& v, const Values&... values)
Constructs a vector with the given values.

Public functions

auto copy() const -> VectorFunction* override noexcept
Copies the object and returns a non-owning pointer to the copied object.

Function documentation

template<class V, class ... Values>
Rodin::Variational::VectorFunction<V, Values...><V, Values>::VectorFunction(const V& v, const Values&... values)

Constructs a vector with the given values.

Parameters
v
values in Parameter pack of values

Each value passed must be convertible to any specialization of RealFunction.

template<class V, class ... Values>
VectorFunction* Rodin::Variational::VectorFunction<V, Values...><V, Values>::copy() const override noexcept

Copies the object and returns a non-owning pointer to the copied object.

Returns Non-owning pointer to the copied object.