#pragma once #include #include #include #include #include #include namespace fesa { struct ReducedSystem final { SymmetricCsr stiffness; std::vector force; }; struct ConstraintResult final { std::optional reduced_system; std::vector diagnostics; }; [[nodiscard]] ConstraintResult eliminate_essential_bcs( const EquationSystem& original, const DofManager& dofs); [[nodiscard]] std::vector recover_reaction( const EquationSystem& original, std::span full_displacement); } // namespace fesa