Snapshot optimized solver and audit diagnostics before numerical experiments
This commit is contained in:
@@ -551,6 +551,19 @@ TEST_CASE(
|
||||
CHECK(rotationReport.preparedResidual);
|
||||
CHECK(preparedOperator.GetResidualPreparationCount() == 3);
|
||||
CHECK(preparedOperator.GetResidualApplicationCount() == 1);
|
||||
mfem::Vector updatedResidual, referenceResidual;
|
||||
preparedOperator.BuildResidual(updatedResidual);
|
||||
CHECK(preparedOperator.PrepareReference(
|
||||
{.density = density, .displacement = displacement}, dependencies, rotation).DidAnyWork());
|
||||
preparedOperator.BuildResidual(referenceResidual);
|
||||
CHECK(rotational_displacement_force_test_utils::relative_difference(
|
||||
updatedResidual, referenceResidual, f.mesh->GetComm()) < 2.0e-12);
|
||||
CHECK_FALSE(preparedOperator.PrepareReference(
|
||||
{.density = density, .displacement = displacement}, dependencies, rotation).DidAnyWork());
|
||||
CHECK(preparedOperator.Prepare(
|
||||
{.density = density, .displacement = displacement}, dependencies, rotation).DidAnyWork());
|
||||
CHECK_FALSE(preparedOperator.Prepare(
|
||||
{.density = density, .displacement = displacement}, dependencies, rotation).DidAnyWork());
|
||||
}
|
||||
|
||||
TEST_CASE(
|
||||
@@ -598,6 +611,16 @@ TEST_CASE(
|
||||
|
||||
preparedOperator.ApplyCompleteJacobianAction(densityDirection, displacementDirection, completeAction);
|
||||
|
||||
mfem::Vector retainedAction;
|
||||
preparedOperator.ApplyCompleteJacobianActionReference(densityDirection, displacementDirection, retainedAction);
|
||||
CHECK(preparedOperator.GetFastElementCount() > 0);
|
||||
CHECK(preparedOperator.GetTensorElementCount() == preparedOperator.GetFastElementCount());
|
||||
CHECK(rotational_displacement_force_test_utils::relative_difference(
|
||||
completeAction, retainedAction, f.mesh->GetComm()) < 2.0e-12);
|
||||
preparedOperator.ApplyCompleteJacobianActionCachedReference(densityDirection, displacementDirection, retainedAction);
|
||||
CHECK(rotational_displacement_force_test_utils::relative_difference(
|
||||
completeAction, retainedAction, f.mesh->GetComm()) < 2.0e-12);
|
||||
|
||||
mfem::Vector summedColumns(densityAction);
|
||||
summedColumns += displacementAction;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user