Template Class TestExpression

Class Documentation

template<typename SourceFieldType, typename Operation>
class TestExpression

A state-independent FE expression representing a residual test row.

Test expressions deliberately expose the same native deal.II operation and source field as an Observable, but have no state dependencies. This keeps the trial/state side and the residual/test side distinct in the weak-term API while allowing the same FEValuesViews operations on both.

Public Types

using source_field_type = SourceFieldType
using operation_type = Operation
using view_type = typename SourceFieldType::view_type
using value_type = std::decay_t<decltype(std::declval<Operation>()(std::declval<const view_type&>(), 0u, 0u))>

Public Functions

inline explicit TestExpression(const SourceFieldType &source)
template<typename OtherOperation>
inline TestExpression(const TestExpression<SourceFieldType, OtherOperation> &other)
TestExpression(const TestExpression&) = default
TestExpression(TestExpression&&) = default
TestExpression &operator=(const TestExpression&) = default
TestExpression &operator=(TestExpression&&) = default
inline const SourceFieldType &source() const
inline const SourceFieldType &source_for(const FieldId field) const
inline FieldId source_field() const
inline const std::vector<FieldId> &dependencies() const
inline Operation operation() const
inline bool is_frozen() const
inline double scale() const
inline TestExpression scaled(const double coefficient) const
inline TestExpression with_id(const FieldId id) const

Public Static Functions

static inline constexpr unsigned int dimension()
static inline constexpr unsigned int space_dimension()
static inline constexpr unsigned int spacedimension()
static inline constexpr unsigned int spacedim()
static inline constexpr dealii::UpdateFlags update_flags()
static inline constexpr bool is_linear()