Template Class ModalLiftedObservable

Class Documentation

template<typename FieldType>
class ModalLiftedObservable

Scalar surface quantity whose representative FE components are modal coefficients, not ambient vector components.

Geometry is fixed during a solve. Rebuild this value after changing either mesh or the radius field.

Public Types

using source_field_type = FieldType
using Point = detail::CouplingPoint<3, double>
using value_type = double
using Lift = TensorProductLift<1, 2, 3>
using Radius = std::function<double(const dealii::CellId&, const dealii::Point<3>&)>

Public Functions

inline ModalLiftedObservable(FieldType field, const Lift &lift, Radius radius = {})
inline const FieldType &source() const
inline FieldId source_field() const
inline const std::vector<FieldId> &dependencies() const
inline bool is_frozen() const
inline const std::vector<Point> &lifted_points() const
inline ModalLiftedObservable with_id(FieldId id) const
inline const auto &support() const
template<typename Context>
inline double evaluate_point(const Context &context, std::size_t q) const
template<typename BulkField, typename VectorType>
inline void write_lifted_output(const BulkField &bulk, const VectorType &coefficients, const std::string &filename) const
template<typename Support>
inline auto assemble_overlap(const ModalDataEvaluator &data, const Support &overlap) const
template<typename VectorType, typename MatrixType>
inline std::shared_ptr<dealii::SparsityPattern> assemble_representative(MatrixType &metric, VectorType &rhs, const ModalDataEvaluator &data) const

Production modal data are coefficients of the projected trace.

Their load uses the section measure, not the integral of each transverse mode.

Public Static Functions

static inline constexpr unsigned int dimension()
static inline constexpr unsigned int spacedimension()

Public Static Attributes

static constexpr unsigned int support_dimension = 2
static constexpr unsigned int ambient_dimension = 3
static constexpr unsigned int representative_dimension = 1