Changeset 62


Ignore:
Timestamp:
04/27/09 10:48:39 (16 years ago)
Author:
Mathieu Morlighem
Message:

Added absolute convergence criterion on CIELO serial

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/m/solutions/cielo/diagnostic_core_nonlinear.m

    r1 r62  
    6666        %   Figure out if convergence is reached.
    6767                if(count>=3),
    68                         dug=soln(count).u_g-soln(count-1).u_g; ndu=norm(dug,2); nu=norm(soln(count-1).u_g,2);
     68                        dug=soln(count).u_g-soln(count-1).u_g; nduinf=norm(dug,inf)*m.parameters.yts; ndu=norm(dug,2); nu=norm(soln(count-1).u_g,2);
    6969                        if (ndu/nu<=m.parameters.eps_rel),
    70                                 if constraints_converged,
    71                                         converged=1;
     70                                if (isnan(m.parameters.eps_abs) | nduinf<=m.parameters.eps_abs),
     71                                        if constraints_converged,
     72                                                converged=1;
     73                                        end
    7274                                end
    7375                        end
     
    7577                        if m.parameters.debug,
    7678                                disp(sprintf('%s %g %s %g','      convergence criterion: norm(du)/norm(u)=',ndu/nu,' > ',m.parameters.eps_rel));
     79                                if ~isnan(m.parameters.eps_abs)
     80                                        disp(sprintf('%s %g %s %g','      convergence criterion: max(du)=',nduinf,' > ',m.parameters.eps_abs));
     81                                end
    7782                                disp(sprintf('%s %i','      number of unstable constraints=',num_unstable_constraints));
    7883                        end
Note: See TracChangeset for help on using the changeset viewer.