Template Class WeakTerm

Nested Relationships

Nested Types

Class Documentation

template<typename TrialExpression, typename TestExpression, typename Support = InferredIntegrationSupport>
class WeakTerm

A solver-neutral FE weak term contributed to a residual row.

Public Types

using target_type = TestExpression
using trial_field_type = typename TrialExpression::source_field_type

Public Functions

inline WeakTerm(TrialExpression observable, TestExpression target)
inline WeakTerm(TrialExpression observable, TestExpression target, Support support)
template<int support_dim, int support_spacedim>
inline auto on(IntegrationSupport<support_dim, support_spacedim> support) const
template<int support_dim, int support_spacedim>
inline auto on(BoundaryIntegrationSupport<support_dim, support_spacedim> support) const
template<typename PhysicalSupport, std::enable_if_t<is_physical_quadrature_support<std::decay_t<PhysicalSupport>>::value, int> = 0>
inline auto on(PhysicalSupport support) const
inline WeakTerm on_boundary(const dealii::types::boundary_id id) const
inline WeakTerm on_boundary(const std::set<dealii::types::boundary_id> &boundary_ids) const
inline WeakTerm in_volume() const
inline const Support &integration_support() const
inline WeakTerm with_cached_assembly() const

Retain a linear pairing after its first assembly.

Meshes, mappings, lifted reference geometry, integration support, FE spaces and homogeneous constraint coefficients must stay fixed while this term is used. State values and affine constraint offsets may change. Rebuild the term after changing any fixed data. Nonlinear trials are rejected; the default keeps assembling the current pairing on demand.

template<typename VectorType, typename MatrixType>
inline FieldId add(SemidiscreteBuilder<VectorType, MatrixType> &builder) const
template<typename VectorType, typename MatrixType>
inline void add_constraint_terms(SemidiscreteBuilder<VectorType, MatrixType> &builder, const FieldId multiplier, const double sign, const std::size_t index) const

Add both rows of this term to a multiplier constraint.

template<typename VectorType, typename MatrixType>
inline FieldId operator()(SemidiscreteBuilder<VectorType, MatrixType> &builder) const
template<typename Callback>
inline WeakTerm with_context_update(Callback callback) const

Return this term with a callback run before each evaluation context.

inline const TrialExpression &observable() const
inline const TestExpression &target() const