Skip to content
Snippets Groups Projects
Commit 7135961b authored by Backofen, Rainer's avatar Backofen, Rainer
Browse files

exit for not convergent iterative solver only if relative AND absolute tolerance not reached

parent ddbd29fe
No related branches found
No related tags found
No related merge requests found
......@@ -136,14 +136,14 @@ namespace AMDiS {
}
// test for absolute tolerance
TEST_EXIT((isNumber(residual) && (residual < 0.0 || tolerance < 1.e-30 || residual <= tolerance))
|| !breakTolNotReached)
("Tolerance tol = %e could not be reached!\n Set tolerance by '->solver->tolerance:' \n", tolerance);
bool isAbsTolReached=(isNumber(residual) && (residual < 0.0 || tolerance < 1.e-30 || residual <= tolerance));
// TEST_EXIT(isAbsTolReached || !breakTolNotReached);
// ("Tolerance tol = %e could not be reached!\n Set tolerance by '->solver->tolerance:' \n", tolerance);
// test for relative tolerance
TEST_EXIT((isNumber(rel_residual) && (rel_residual < 0.0 || relative < 1.e-30 || rel_residual <= relative))
|| (residual < 1.e-30) || !breakTolNotReached)
("Relative tolerance rtol = %e could not be reached!\n Set tolerance by '->solver->relative tolerance:' \n", relative);
bool isRelTolReached=(isNumber(rel_residual) && (rel_residual < 0.0 || relative < 1.e-30 || rel_residual <= relative)) || (residual < 1.e-30);
TEST_EXIT(isAbsTolReached || isRelTolReached ||!breakTolNotReached )
("Relative tolerance rtol = %e could not be reached!\n tolerance tol = %e could not be reached!\n Set tolerance by '->solver->relative tolerance:' \n Set tolerance by '->solver->tolerance:' \n", relative, tolerance);
}
return error_code;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment