}
+ template <int dim, typename ExpressionType, typename ValueType>
+ std::vector<std::pair<ExpressionType, ValueType>>
+ tensor_substitution_map(
+ const Tensor<0, dim, ExpressionType> &symbol_tensor,
+ const Tensor<0, dim, ValueType> & value_tensor)
+ {
+ const ExpressionType &expression = symbol_tensor;
+ const ValueType & value = value_tensor;
+ return {std::make_pair(expression, value)};
+ }
+
+
template <int dim, typename ExpressionType, typename ValueType>
std::vector<std::pair<ExpressionType, ValueType>>
tensor_substitution_map(
}
+ template <int dim>
+ Tensor<0, dim, Expression>
+ tensor_substitute(const Tensor<0, dim, Expression> &expression_tensor,
+ const types::substitution_map & substitution_map)
+ {
+ const Expression &expression = expression_tensor;
+ return substitute(expression, substitution_map);
+ }
+
+
template <int dim>
SymmetricTensor<4, dim, Expression>
tensor_substitute(
}
+ template <typename ValueType, int dim>
+ Tensor<0, dim, ValueType>
+ tensor_substitute_evaluate(
+ const Tensor<0, dim, Expression> &expression_tensor,
+ const types::substitution_map & substitution_map)
+ {
+ const Expression &expression = expression_tensor;
+ return substitute_and_evaluate<ValueType>(expression, substitution_map);
+ }
+
+
template <typename ValueType, int dim>
SymmetricTensor<4, dim, ValueType>
tensor_substitute_evaluate(