#pragma once #include #include #include #include #include #include #include #include namespace fesa { struct Beam3D2Input final { std::array coordinates; IsotropicElastic material; BeamSection section; }; struct Beam3D2Contribution final { Matrix12 local_stiffness; Matrix12 global_stiffness; BeamFrame frame; }; struct BeamKernelResult final { std::optional contribution; std::vector diagnostics; }; [[nodiscard]] BeamKernelResult compute_beam3d2( const Beam3D2Input& input); } // namespace fesa