feat(nonlinear-static-newton-raphson): step 11 - equilibrium-projection-and-reference-gate

This commit is contained in:
KOKO\Mimi
2026-08-28 09:22:33 +09:00
parent 65b56b1755
commit 6dbf1b2bcf
30 changed files with 13122 additions and 728 deletions
@@ -534,6 +534,31 @@ TEST(NonlinearHdf5ResultsWriter, ProjectsRotationalReactionToSpatialMoment) {
EXPECT_GT(quadratic, 0.0);
}
// NSNR-HDF5-014.
TEST(NonlinearHdf5ResultsWriter, WritesSchemaV1GlobalBalanceErrorLocation) {
TempDirectory directory{"global-balance-location"};
auto fixture = MakeFixture(directory.Path() / "global-balance.inp");
const auto output = directory.Path() / "global-balance_results.h5";
fesa::NonlinearHdf5ResultsWriter writer;
ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, {}).IsOk());
const auto file = OpenFile(output);
const auto equilibrium = OpenDataset(
file.Get(), "/steps/Step-1/frames/1/global/equilibrium");
EXPECT_EQ(DatasetDimensions(file.Get(),
"/steps/Step-1/frames/1/global/equilibrium"),
std::vector<hsize_t>({6U}));
EXPECT_EQ(ReadStringAttribute(equilibrium.Get(), "component_names"),
"FORCE_1,FORCE_2,FORCE_3,MOMENT_1,MOMENT_2,MOMENT_3");
EXPECT_EQ(ReadStringAttribute(equilibrium.Get(), "location"),
"global-balance-error");
Hdf5Handle metadata{H5Gopen2(file.Get(), "/metadata", H5P_DEFAULT),
H5Gclose};
ASSERT_GE(metadata.Get(), 0);
EXPECT_EQ(ReadUint64Attribute(metadata.Get(), "schema_version"), 1U);
}
// NSNR-HDF5-012 and NSNR-HDF5-013.
TEST(NonlinearHdf5ResultsWriter, StoresSortedDiagnosticsThroughBackendNeutralBoundary) {
static_assert(std::is_base_of_v<fesa::NonlinearResultsWriter,