Expose cached gravity target for prepared trial verification
This commit is contained in:
@@ -341,7 +341,7 @@ TEST_CASE(
|
||||
operation, inverse, solver::GravityBlockPartition(2, 2, {1}, {0}), MPI_COMM_WORLD
|
||||
);
|
||||
solver::PreparedGravityCurvatureCorrection correction(subsystem);
|
||||
mfem::Vector baseResidual(2), direction(2), trialResidual(2), gravityStep(1);
|
||||
mfem::Vector baseResidual(2), direction(2), trialResidual(2), gravityStep(1), prediction(1);
|
||||
baseResidual(0) = 0.75;
|
||||
baseResidual(1) = 0.75;
|
||||
direction(0) = 0.125;
|
||||
@@ -352,8 +352,10 @@ TEST_CASE(
|
||||
operation.Prepare(jacobian);
|
||||
inverse.Refresh();
|
||||
subsystem.Refresh();
|
||||
trialResidual(0) = 0.75 + alpha * 1.75;
|
||||
trialResidual(1) = 0.75 + alpha * 0.625;
|
||||
trialResidual(0) = 0.75 + alpha * 1.75;
|
||||
trialResidual(1) = 0.75 + alpha * 0.625;
|
||||
correction.BuildLinearPrediction(alpha, prediction);
|
||||
CHECK(prediction(0) == trialResidual(0));
|
||||
const auto report = correction.SolveCorrection(alpha, trialResidual, gravityStep, {});
|
||||
REQUIRE(report.Converged());
|
||||
CHECK(report.rightHandSideNorm == 0.0);
|
||||
@@ -362,6 +364,7 @@ TEST_CASE(
|
||||
}
|
||||
correction.Invalidate();
|
||||
CHECK_FALSE(correction.HasBase());
|
||||
CHECK_THROWS_AS(correction.BuildLinearPrediction(1.0, prediction), std::logic_error);
|
||||
CHECK_THROWS_AS(correction.SolveCorrection(1.0, trialResidual, gravityStep, {}), std::logic_error);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user