Template Class LiftedObservable¶
Defined in File observable_lift.h
Class Documentation¶
-
template<typename SourceObservable, int reduced_dim, int surface_dim, int spacedim, int n_components = 1>
class LiftedObservable¶ An Observable sampled on a tensor-product lift.
This is deliberately a small value-space adapter. It retains the source FE field and its stencils, while the coupling backend owns point search and redistribution when the quantity is paired with a target field.
Public Types
-
using source_field_type = typename SourceObservable::source_field_type¶
-
using value_type = std::conditional_t<vector_lift, std::vector<dealii::Tensor<1, spacedim>>, ImmersXLA::MPI::Vector>¶
-
using point_value_type = std::conditional_t<vector_lift, dealii::Tensor<1, spacedim>, double>¶
-
using state_type = ImmersXLA::MPI::Vector¶
-
using Point = detail::CouplingPoint<spacedim, double>¶
-
using Lift = TensorProductLift<reduced_dim, surface_dim, spacedim, n_components>¶
-
using Support = TensorProductLiftSupport<reduced_dim, surface_dim, spacedim, n_components>¶
-
using Operator = dealii::LinearOperator<value_type, state_type>¶
Public Functions
-
inline LiftedObservable(SourceObservable source, const Lift &lift)¶
-
inline LiftedObservable(SourceObservable source, const Lift &lift, SourceThicknessEvaluator<spacedim> thickness_evaluator)¶
-
inline const source_field_type &source() const¶
-
inline const source_field_type &source_for(const FieldId field) const¶
-
inline bool is_frozen() const¶
-
template<typename VectorType>
inline const VectorType &frozen_values() const¶
-
inline double scale() const¶
-
inline LiftedObservable with_id(const FieldId id) const¶
-
inline const std::vector<Point> &locally_owned_quadrature_points(const dealii::Quadrature<surface_dim>&) const¶
-
inline const dealii::IndexSet &locally_owned_points() const¶
-
inline const dealii::IndexSet &locally_relevant_points() const¶
-
inline dealii::types::global_dof_index point_index(const std::size_t local_point) const¶
-
inline MPI_Comm mpi_communicator() const¶
-
template<typename Context>
inline value_type evaluate(const Context &context) const¶
-
template<typename Context>
inline point_value_type evaluate_point(const Context &context, const std::size_t point) const¶
-
template<typename Context>
inline point_value_type linearize_point(const Context &context, const FieldId field, const std::size_t point, const unsigned int basis) const¶
Public Static Functions
-
static inline constexpr unsigned int dimension()¶
-
static inline constexpr unsigned int spacedimension()¶
-
static inline constexpr bool is_linear()¶
Public Static Attributes
-
static constexpr unsigned int support_dimension = surface_dim¶
-
static constexpr unsigned int representative_dimension = reduced_dim¶
-
static constexpr bool vector_lift = n_components == spacedim && n_components > 1¶
-
using source_field_type = typename SourceObservable::source_field_type¶