-
Notifications
You must be signed in to change notification settings - Fork 233
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix stokes residual postprocessor for purely expensive solves #1848
Fix stokes residual postprocessor for purely expensive solves #1848
Conversation
@@ -106,7 +107,8 @@ namespace aspect | |||
|
|||
// If there were expensive iterations add them after a signalling -1. | |||
if ((solver_control_cheap.last_check() == dealii::SolverControl::failure) | |||
&& (solver_control_cheap.last_step() == solver_control_cheap.max_steps())) | |||
&& (solver_control_cheap.last_step() == solver_control_cheap.max_steps()) | |||
&& (solver_control_expensive.max_steps() > 0)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would we not get into the same kind of trouble is the cheap solver did not run?
ee421cc
to
3099ad8
Compare
I do not quite understand your comment. The additional check makes sure we only run |
3099ad8
to
5f6c386
Compare
Rene, how does your change interact with the overriden |
Ah, I misunderstood the code. Thanks for fixing this issue! |
@tjhei: I have not tested 9.0 extensively, but the |
One more question: is this somehow related to this bugfix: I don't remember why I did that. This is part of #1600 and not merged yet. |
Yes, with this PR you will no longer need the resize. We considered doing the resize when I fixed the history_data in deal.II, but decided against it, because a user might think |
SolverControl::get_history_data
throws an exception if asked for non-existent history data (like if we do not make any cheap Stokes solver steps). Make sure there is history data for the postprocessor to use before calling that function. The new test fails with current master, but succeeds with the patch. Still need to update the test results.