Snapshot optimized solver and audit diagnostics before numerical experiments
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user