: figure out if convergence has been reached
More...
Go to the source code of this file.
: figure out if convergence has been reached
Definition in file convergence.cpp.
◆ convergence()
Definition at line 9 of file convergence.cpp.
42 if (xIsNan<IssmDouble>(res)){
43 _printf0_(
"norm nf = " << nF <<
"f and norm kuold = " << nKUoldF <<
"f\n");
44 _error_(
"mechanical equilibrium convergence criterion is NaN!");
53 if(
VerboseConvergence())
_printf0_(setw(50)<<left<<
" mechanical equilibrium convergence criterion"<<res*100<<
" < "<<eps_res*100<<
" %\n");
57 if(
VerboseConvergence())
_printf0_(setw(50)<<left<<
" mechanical equilibrium convergence criterion"<<res*100<<
" > "<<eps_res*100<<
" %\n");
68 if (xIsNan<IssmDouble>(ndu) || xIsNan<IssmDouble>(nu))
_error_(
"convergence criterion is NaN!");
74 if (!xIsNan<IssmDouble>(eps_rel)){
76 if(
VerboseConvergence())
_printf0_(setw(50) << left <<
" Convergence criterion: norm(du)/norm(u)" << ndu/nu*100 <<
" < " << eps_rel*100 <<
" %\n");
79 if(
VerboseConvergence())
_printf0_(setw(50) << left <<
" Convergence criterion: norm(du)/norm(u)" << ndu/nu*100 <<
" > " << eps_rel*100 <<
" %\n");
83 else _printf0_(setw(50) << left <<
" Convergence criterion: norm(du)/norm(u)" << ndu/nu*100 <<
" %\n");
93 if (xIsNan<IssmDouble>(ndu) || xIsNan<IssmDouble>(nu))
_error_(
"convergence criterion is NaN!");
99 if (!xIsNan<IssmDouble>(eps_abs)){
100 if ((nduinf)<eps_abs){
108 else _printf0_(setw(50) << left <<
" Convergence criterion: max(du)" << nduinf <<
"\n");
113 *pconverged=converged;