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:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user