Select one material point, then use the same nodal equation and row actions as a boundary.
More...
|
| | 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.
|
| |
template<NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT>
requires requires { EquationT::reference_position; }
class serif::operators::backend::mfem::PreparedPointConstraint< EquationT, SchemaT >
Select one material point, then use the same nodal equation and row actions as a boundary.