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

@@ -601,6 +601,15 @@ TEST_CASE(
CHECK(preparedOperator.IsPrepared());
CHECK(preparedOperator.GetResidualPreparationCount() == 2);
CHECK(preparedOperator.GetResidualApplicationCount() == 1);
mfem::Vector updatedResidual, referenceResidual;
preparedOperator.BuildResidual(updatedResidual);
CHECK(preparedOperator.PrepareReference().DidAnyWork());
preparedOperator.BuildResidual(referenceResidual);
CHECK(gravity_displacement_force_test_utils::relative_difference(
updatedResidual, referenceResidual, f.mesh->GetComm()) < 2.0e-12);
CHECK_FALSE(preparedOperator.PrepareReference().DidAnyWork());
CHECK(preparedOperator.Prepare().DidAnyWork());
CHECK_FALSE(preparedOperator.Prepare().DidAnyWork());
}
TEST_CASE(
@@ -665,6 +674,19 @@ TEST_CASE(
densityDirectionReduced, displacementDirectionReduced, gravityGradientDirectionReduced, completeAction
);
mfem::Vector retainedAction;
preparedOperator.ApplyCompleteJacobianActionReference(
densityDirectionReduced, displacementDirectionReduced, gravityGradientDirectionReduced, retainedAction);
CHECK(preparedOperator.GetFastElementCount() > 0);
CHECK(preparedOperator.GetTensorElementCount() == preparedOperator.GetFastElementCount());
CHECK(gravity_displacement_force_test_utils::relative_difference(
completeAction, retainedAction, f.mesh->GetComm()) < 2.0e-12);
preparedOperator.ApplyCompleteJacobianActionCachedReference(
densityDirectionReduced, displacementDirectionReduced, gravityGradientDirectionReduced, retainedAction);
CHECK(gravity_displacement_force_test_utils::relative_difference(
completeAction, retainedAction, f.mesh->GetComm()) < 2.0e-12);
mfem::Vector summedColumns(densityAction);
summedColumns += gravityAction;
summedColumns += displacementAction;