|
| | PreparedPointBorder (EquationT equation, const RowBinding &row, const BorderBinding &border) |
| | Borrow one carrier point and one global scalar border on the same mesh.
|
| |
| template<typename StateT> |
| std::expected< void, PreparationRejection > | try_prepare (const StateT &state, const PreparationMode mode=PreparationMode::rebuild) |
| | Freeze both the point condition and its border coefficient.
|
| |
| template<typename StateT> |
| void | prepare (const StateT &state, const PreparationMode mode=PreparationMode::rebuild) |
| | Prepare or translate numerical rejection into a caller-visible exception.
|
| |
| void | invalidate () noexcept |
| | Invalidate both the point preparation and its work report.
|
| |
| const PreparationReport & | preparation_report () const noexcept |
| | Report independent refreshes of the carrier point and global border.
|
| |
| void | add_residual (::mfem::Vector &carrier, ::mfem::Vector &phase) const |
| | Add the border to the carrier residual and set the scalar phase residual.
|
| |
| template<typename StateT> |
| void | apply_jacobian (const StateT &direction, ::mfem::Vector &carrier, ::mfem::Vector &phase) const |
| | Apply the two off-diagonal blocks of the affine point border.
|
| |
| void | apply_jacobian_transpose (const ::mfem::Vector &carrier_dual, const ::mfem::Vector &phase_dual, ::mfem::Vector &carrier_result, ::mfem::Vector &border_result) const |
| | Add the coordinate transpose of both border blocks to coefficient duals.
|
| |
|
| int | point_dof () const noexcept |
| | Retrieve the unique carrier coordinate selected during construction.
|
| |
| void | validate_outputs (const ::mfem::Vector &carrier, const ::mfem::Vector &phase) const |
| | Validate preparation, carrier size, and the single scalar output.
|
| |
| | PreparedPointConstraint (EquationT equation, const RowBinding &row) |
| | The equation specifies a point in the fixed computational mesh.
|
| |
| | PreparedNodalConstraint (EquationT equation, const RowBinding &row, discretization::backend::mfem::DofSelection rows) |
| | Borrow selected nodal rows; vector selections contain exactly one point in component order.
|
| |
| template<typename StateT> |
| std::expected< void, PreparationRejection > | try_prepare (const StateT &state, const PreparationMode mode=PreparationMode::rebuild) |
| | Freeze the local equation and derivative; rejection invalidates the previous preparation.
|
| |
| template<typename StateT> |
| void | prepare (const StateT &state, const PreparationMode mode=PreparationMode::rebuild) |
| | Prepare or translate a numerical rejection to a caller-visible exception.
|
| |
| void | apply_residual_rows (::mfem::Vector &result) const |
| | Replace the selected entries of an assembled residual.
|
| |
| template<typename StateT> |
| void | apply_jacobian_rows (const StateT &direction, ::mfem::Vector &result) const |
| | Replace complete row actions, removing every unconstrained coupling at these rows.
|
| |
| void | apply_jacobian_rows (const ::mfem::Vector &direction, ::mfem::Vector &result) const |
| | Apply the same row replacement to a coefficient vector without a state wrapper.
|
| |
| void | mask_residual_dual (const ::mfem::Vector &dual, ::mfem::Vector &volume_dual) const |
| | Remove constrained rows BEFORE applying the volume Jacobian transpose.
|
| |
| void | add_jacobian_transpose_rows (const ::mfem::Vector &dual, ::mfem::Vector &result) const |
| | Add the nodal transpose AFTER the volume transpose of the masked residual dual.
|
| |
| void | invalidate () noexcept |
| | Invalidate frozen residuals and derivatives.
|
| |
| bool | is_prepared () const noexcept |
| | Report whether a complete preparation exists.
|
| |
| std::size_t | preparation_count () const noexcept |
| | Count successful preparations.
|
| |
| const PreparationReport & | preparation_report () const noexcept |
| | Report whether the selected nodal equations were reevaluated.
|
| |
| const discretization::backend::mfem::DofSelection & | rows () const noexcept |
| | Return the selected supported coefficient indices.
|
| |
| const EquationT & | equation () const noexcept |
| | Expose immutable physics metadata to constraint diagnostics.
|
| |
| void | validate_result (const ::mfem::Vector &result) const |
| | Reject missing preparation, stale selection, and incorrect output sizes.
|
| |
| const NodalData & | prepared_data () const |
| | Read frozen nodal values shared by row replacement and point borders.
|
| |
template<NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT>
requires (
discretization::blocks::SpatialTermTraits<typename EquationT::Test>::rank == 0 && discretization::blocks::GlobalScalarTerm<typename EquationT::Border> && EquationT::affine)
class serif::operators::backend::mfem::PreparedPointBorder< EquationT, SchemaT >
An affine scalar point condition F(u_c)=0 with border R_u += lambda dF/du_c. The coordinate functional and its transpose share the same selected DOF.