Changeset 27168
- Timestamp:
- 08/01/22 06:41:15 (3 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/modules/Reducevectorgtofx/Reducevectorgtofx.cpp
r25554 r27168 16 16 /*If fsize is 0, return NULL vector*/ 17 17 if(fsize==0){ 18 *puf=NULL; 18 Vector<IssmDouble>* uf=new Vector<IssmDouble>(0); 19 *puf=uf; 20 //*puf=NULL; 19 21 return; 20 22 } -
issm/trunk-jpl/src/c/solutionsequences/convergence.cpp
r26787 r27168 1 1 /*!\file: convergence.cpp 2 2 * \brief: figure out if convergence has been reached 3 */ 3 */ 4 4 5 5 #include "../classes/classes.h" … … 24 24 if(VerboseModule()) _printf0_(" checking convergence\n"); 25 25 26 /*If uf is NULL in input, f-set is nil, model is fully constrained, therefore converged from 26 /*If uf is NULL in input, f-set is nil, model is fully constrained, therefore converged from 27 27 * the get go: */ 28 28 if(uf->IsEmpty()){ … … 39 39 nKUoldF=KUoldF->Norm(NORM_TWO); 40 40 nF=pf->Norm(NORM_TWO); 41 nF+=1.0e14; 41 42 res=nKUoldF/nF; 42 43 if (xIsNan<IssmDouble>(res)){ … … 54 55 converged=true; 55 56 } 56 else{ 57 else{ 57 58 if(VerboseConvergence()) _printf0_(setw(50)<<left<<" mechanical equilibrium convergence criterion"<<res*100<<" > "<<eps_res*100<<" %\n"); 58 59 converged=false; … … 65 66 duf=old_uf->Duplicate(); old_uf->Copy(duf); duf->AYPX(uf,-1.0); 66 67 ndu=duf->Norm(NORM_TWO); nu=old_uf->Norm(NORM_TWO); 67 68 68 if (xIsNan<IssmDouble>(ndu) || xIsNan<IssmDouble>(nu)) _error_("convergence criterion is NaN!"); 69 69 … … 76 76 if(VerboseConvergence()) _printf0_(setw(50) << left << " Convergence criterion: norm(du)/norm(u)" << ndu/nu*100 << " < " << eps_rel*100 << " %\n"); 77 77 } 78 else{ 78 else{ 79 79 if(VerboseConvergence()) _printf0_(setw(50) << left << " Convergence criterion: norm(du)/norm(u)" << ndu/nu*100 << " > " << eps_rel*100 << " %\n"); 80 80 converged=false;
Note:
See TracChangeset
for help on using the changeset viewer.