feat: add eigen2 frequency pipeline and fail-closed validation

Implement MITC4 mass, constrained whitening, MKL FEAST, modal HDF5, and deterministic Value comparison. MSVC Debug builds; 394 of 395 tests pass. Original-model all-c residual and the documented S3 static contract conflict remain unresolved; this is an implementation checkpoint, not feature acceptance.
This commit is contained in:
KOKO\Mimi
2026-09-09 03:14:30 +09:00
parent e74ac247db
commit 22c9d4435c
39 changed files with 7240 additions and 541 deletions
+13
View File
@@ -98,6 +98,14 @@ struct Mitc4Stiffness {
double drilling_stiffness;
};
/// @brief Stores consistent scalar moments and their derived MITC4 masses.
struct Mitc4Mass {
std::array<Matrix, 3> consistent_moments;
Matrix consistent_global24;
Matrix lumped_global24;
std::array<std::array<double, 3>, 4> nodal_moments;
};
/// @brief Stores physical shell recovery at one midsurface Gauss location.
struct Mitc4PhysicalRecoveryPoint {
std::array<double, 2> natural_coordinates;
@@ -187,6 +195,11 @@ class Mitc4Shell final : public Element {
/// @return Finite stiffness matrices or a structured model failure.
[[nodiscard]] Result<Mitc4Stiffness> Stiffness() const;
/// @brief Computes consistent and scalar-row-sum lumped MITC4 mass.
/// @param density Constant material density in mass per volume.
/// @return Finite mass matrices or a structured model failure.
[[nodiscard]] Result<Mitc4Mass> Mass(double density) const;
/// @brief Recovers physical shell quantities without drilling results.
/// @param global_element_displacement24 Global element DOFs in node order.
/// @return Physical recovery rows or a structured model failure.