Ignore:
Timestamp:
07/11/19 11:37:13 (6 years ago)
Author:
Mathieu Morlighem
Message:

NEW: added md.toolkits.RecoveryAnalysis, which is a recovery mode when default solver fails

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/solutionsequences/convergence.cpp

    r24080 r24082  
    1313
    1414        /*intermediary*/
    15         Vector<IssmDouble>* KU=NULL;
    16         Vector<IssmDouble>* KUF=NULL;
    1715        Vector<IssmDouble>* KUold=NULL;
    1816        Vector<IssmDouble>* KUoldF=NULL;
    1917        Vector<IssmDouble>* duf=NULL;
    2018        IssmDouble ndu,nduinf,nu;
    21         IssmDouble nKUF;
    2219        IssmDouble nKUoldF;
    2320        IssmDouble nF;
    24         IssmDouble solver_residue,res;
     21        IssmDouble res;
    2522        int analysis_type;
    2623
     
    3229                *pconverged=true;
    3330                return;
    34         }
    35 
    36 
    37         /*Display solver caracteristics*/
    38         if (VerboseConvergence()){
    39 
    40        
    41 
    42                 /*compute KUF = KU - F = K*U - F*/
    43                 KU=uf->Duplicate(); Kff->MatMult(uf,KU);
    44                 KUF=KU->Duplicate(); KU->Copy(KUF); KUF->AYPX(pf,-1.0);
    45 
    46                 /*compute norm(KUF), norm(F) and residue*/
    47                 nKUF=KUF->Norm(NORM_TWO);
    48                 nF=pf->Norm(NORM_TWO);
    49                 solver_residue=nKUF/nF;
    50                 _printf0_("\n" << "   solver residue: norm(KU-F)/norm(F)=" << solver_residue << "\n");
    51                 if(xIsNan<IssmDouble>(solver_residue)){
    52                         //Kff->Echo();
    53                 }
    54 
    55                 /*clean up*/
    56                 delete KU;
    57                 delete KUF;
    5831        }
    5932
Note: See TracChangeset for help on using the changeset viewer.