Class template Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>¶
Inherits from Dune::XT::Functions::FunctionInterface.
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
class Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField> : public FunctionInterface<d, r, rC, RangeField>¶ Note
This is the matrix valued version, see below for scalar- and vectorvalued case.
Note
We have a specialization for the other case on purpose, disabling all ctors and using helpers got too complicated!
Method Dune::XT::Functions::ExpressionFunction::static_id¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
static std::string Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::static_id()¶ No documentation provided.
Method Dune::XT::Functions::ExpressionFunction::defaults¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
static Common::Configuration Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::defaults()¶ No documentation provided.
Method Dune::XT::Functions::ExpressionFunction::matrix_to_vector¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
static Common::FieldVector<std::string, r * rC> Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::matrix_to_vector(const Common::FieldMatrix<std::string, r, rC> &mat)¶ No documentation provided.
Method Dune::XT::Functions::ExpressionFunction::copy_as_function_impl¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
ThisType *Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::copy_as_function_impl() const override¶ No documentation provided.
Method Dune::XT::Functions::ExpressionFunction::copy_as_function¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
std::unique_ptr<ThisType> Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::copy_as_function() const¶ No documentation provided.
Method Dune::XT::Functions::ExpressionFunction::name¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
std::string Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::name() const final¶ No documentation provided.
Method Dune::XT::Functions::ExpressionFunction::order¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
int Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::order(const Common::Parameter& = {}) const final¶ No documentation provided.
Method Dune::XT::Functions::ExpressionFunction::evaluate¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
RangeReturnType Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::evaluate(const DomainType &point_in_global_coordinates, const Common::Parameter& = {}) const final¶ No documentation provided.
Method Dune::XT::Functions::ExpressionFunction::jacobian¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
DerivativeRangeReturnType Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::jacobian(const DomainType &point_in_global_coordinates, const Common::Parameter& = {}) const final¶ No documentation provided.
Constructor Dune::XT::Functions::ExpressionFunction::ExpressionFunction¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::ExpressionFunction(const std::string &variable, const Common::FieldMatrix<std::string, r, rC> &expressions, const Common::FieldVector<Common::FieldMatrix<std::string, rC, d>, r> &gradient_expressions, const size_t ord, std::string nm = static_id())¶ Creates an Expression function
For this example the correct constructor call is FunctionType function(“x”, , , }, 3);
:param variable: variable of the Expression function, e.g. “x” :param expressions: FieldMatrix with size r x rC for the range of the Expression function range, e.g. [1 sin(x[0]); 2 x[1]] with r = rC = 2 :param gradient_expressions: FieldVector
, vector of the jacobian matrices, where the vector has the size of r and the inner Matrix the size rC x d, e.g. [[0 0 ; cos(x[0]) 0] , [0 0 ; 0 1]] would be the gradient_expression corresponding to the expression above (if d = r = rC = 2) Note: it is optional to provide a gradient if you do not want to use jacobian(). :param ord: order of the Expression function :param nm: name of the Expression function
Constructor Dune::XT::Functions::ExpressionFunction::ExpressionFunction¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::ExpressionFunction(const std::string &variable, const Common::FieldMatrix<std::string, r, rC> &expressions, const size_t ord, std::string nm = static_id())¶ ExpressionFunction without given gradient
Constructor Dune::XT::Functions::ExpressionFunction::ExpressionFunction¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::ExpressionFunction(const ThisType &other)¶ No documentation provided.
Constructor Dune::XT::Functions::ExpressionFunction::ExpressionFunction¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::ExpressionFunction(ThisType&&) noexcept = default¶ No documentation provided.
Field Dune::XT::Functions::ExpressionFunction::function_¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
MathExpressionFunctionType Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::function_¶ No documentation provided.
Field Dune::XT::Functions::ExpressionFunction::order_¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
size_t Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::order_¶ No documentation provided.
Field Dune::XT::Functions::ExpressionFunction::name_¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
std::string Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::name_¶ No documentation provided.
Field Dune::XT::Functions::ExpressionFunction::gradients_¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
std::vector<std::vector<MathExpressionGradientType>> Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::gradients_¶ No documentation provided.
Type alias Dune::XT::Functions::ExpressionFunction::BaseType¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
using Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::BaseType = FunctionInterface<d, r, rC, RangeField>¶ No documentation provided.
Type alias Dune::XT::Functions::ExpressionFunction::ThisType¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
using Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::ThisType = ExpressionFunction<d, r, rC, RangeField>¶ No documentation provided.
Type alias Dune::XT::Functions::ExpressionFunction::MathExpressionFunctionType¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
using Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::MathExpressionFunctionType = MathExpressionBase<DomainFieldType, d, RangeField, r * rC>¶ No documentation provided.
Type alias Dune::XT::Functions::ExpressionFunction::MathExpressionGradientType¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
using Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::MathExpressionGradientType = MathExpressionBase<DomainFieldType, d, RangeField, d>¶ No documentation provided.
Type alias Dune::XT::Functions::ExpressionFunction::DerivativeRangeReturnType¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
using Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::DerivativeRangeReturnType = typename BaseType::DerivativeRangeReturnType¶ No documentation provided.
Type alias Dune::XT::Functions::ExpressionFunction::DomainType¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
using Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::DomainType = typename BaseType::DomainType¶ No documentation provided.
Type alias Dune::XT::Functions::ExpressionFunction::RangeFieldType¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
using Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::RangeFieldType = typename BaseType::RangeFieldType¶ No documentation provided.
Type alias Dune::XT::Functions::ExpressionFunction::SingleDerivativeRangeReturnType¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
using Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::SingleDerivativeRangeReturnType = typename BaseType::SingleDerivativeRangeReturnType¶ No documentation provided.
Function template Dune::XT::Functions::ExpressionFunction::check_value¶
-
template<size_t d, size_t r = 1, size_t rC = 1, class RangeField = double>
template<class V>
void Dune::XT::Functions::ExpressionFunction<d, r, rC, RangeField>::check_value(const DomainType &point_in_global_coordinates, const V &value) const¶ No documentation provided.