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
......@@ -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;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment