Template Class Observable

Class Documentation

template<typename SourceFieldType, typename Operation>
class Observable

A typed FE expression: a Field, a deal.II view operation, and metadata.

The expression’s value type is the result of invoking its operation on the source Field’s deal.II FEValues view. This keeps FE tensor typing and operation support in deal.II rather than maintaining a parallel algebra in ImmersX.

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 Observable(const SourceFieldType &source)
template<typename VectorType>
inline Observable(const SourceFieldType &source, const VectorType &frozen_values)
template<typename OtherOperation>
inline Observable(const Observable<SourceFieldType, OtherOperation> &other)
inline const std::vector<FieldId> &dependencies() const
inline FieldId source_field() const
inline const SourceFieldType &source() const
inline const SourceFieldType &source_for(const FieldId field) const
inline Observable with_id(const FieldId id) const
inline Operation operation() const
inline bool is_frozen() const
template<typename VectorType>
inline const VectorType &frozen_values() const
inline double scale() const
template<typename Evaluator>
inline value_type evaluate_point(const dealii::Point<spacedim()> &point, const double time, Evaluator &&evaluator) const
template<typename DerivativeEvaluator>
inline value_type linearize_point(const FieldId field, const dealii::Point<spacedim()> &point, const double time, DerivativeEvaluator &&derivative_evaluator) const
inline Observable scaled(const double coefficient) 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()