Snapshot optimized solver and audit diagnostics before numerical experiments

This commit is contained in:
2026-09-16 14:34:06 -04:00
parent 75cc638739
commit 80cc3d83d7
64 changed files with 11969 additions and 267 deletions

View File

@@ -198,6 +198,16 @@ TEST_CASE(
CHECK(statistics.applications == 3);
CHECK(centeredDifferenceError < 2.0e-7);
CHECK(linearityError < 5.0e-12);
int stellarElements = 0;
preparedOperator.VisitMappedGeometryRules([&](int, const mfem::IntegrationRule &) { ++stellarElements; });
CHECK(preparedOperator.GetFastDisplacementElementCount() == stellarElements);
mfem::Vector preparedReference;
preparedOperator.ApplyDisplacementJacobianActionReference(firstVariation, preparedReference);
CHECK(prepared_hydrostatic_displacement_test_utils::relative_error(
firstAction, preparedReference, f.mesh->GetComm()) < 2.0e-11);
preparedOperator.ApplyDisplacementJacobianActionReference(secondVariation, preparedReference);
CHECK(prepared_hydrostatic_displacement_test_utils::relative_error(
secondAction, preparedReference, f.mesh->GetComm()) < 2.0e-11);
}
TEST_CASE(
@@ -344,4 +354,13 @@ TEST_CASE(
CHECK(displacementStatistics.applications == 4);
CHECK(geometryReferenceError < 2.0e-7);
CHECK(geometryEffect > 1.0e-8);
mfem::Vector preparedReference;
preparedOperator.ApplyDisplacementJacobianActionReference(displacementVariation, preparedReference);
CHECK(prepared_hydrostatic_displacement_test_utils::relative_error(
geometryUpdatedAction, preparedReference, f.mesh->GetComm()) < 2.0e-11);
preparedOperator.ApplyDisplacementJacobianActionCachedReference(displacementVariation, preparedReference);
CHECK(prepared_hydrostatic_displacement_test_utils::relative_error(
geometryUpdatedAction, preparedReference, f.mesh->GetComm()) < 2.0e-11);
CHECK(preparedOperator.GetTensorDisplacementElementCount() > 0);
CHECK(preparedOperator.GetDisplacementJacobianStatistics().applications == 4);
}