Changeset 1224
- Timestamp:
- 07/02/09 16:36:30 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/parallel/diagnostic_core_nonlinear.cpp
r667 r1224 16 16 /*solution : */ 17 17 Vec ug=NULL; 18 Vec uf=NULL; 18 19 Vec old_ug=NULL; 19 20 Vec old_uf=NULL; 20 Vec uf=NULL;21 21 DataSet* loads=NULL; 22 Vec residue=NULL; 23 Vec KU=NULL; 22 24 23 25 /*intermediary: */ … … 35 37 Vec dug=NULL; 36 38 double ndu,nduinf,nu; 39 double nresidue; 37 40 38 41 /*parameters:*/ … … 45 48 /*Recover parameters: */ 46 49 kflag=1; pflag=1; 47 48 49 50 50 51 fem->parameters->FindParam((void*)&connectivity,"connectivity"); … … 81 82 VecFree(&old_uf);old_uf=uf; 82 83 83 84 84 /*Update parameters: */ 85 85 UpdateFromInputsx(fem->elements,fem->nodes,loads, fem->materials,inputs); … … 111 111 if (debug) _printf_(" solving\n"); 112 112 Solverx(&uf, Kff, pf, old_uf, solver_string); 113 114 /*Compute residue*/ 115 VecDuplicate(uf,&KU); MatMultPatch(Kff,uf,KU); 116 VecDuplicate(KU,&residue);VecCopy(KU,residue); VecAYPX(residue,-1.0,pf); 117 VecNorm(residue,NORM_2,&nresidue); VecFree(&residue); 113 118 114 119 //no need for Kff and pf anymore 115 120 MatFree(&Kff);VecFree(&pf); 116 117 121 118 122 if (debug) _printf_(" merging solution from f to g set\n"); … … 130 134 VecDuplicate(old_ug,&dug);VecCopy(old_ug,dug); VecAYPX(dug,-1.0,ug); 131 135 VecNorm(dug,NORM_2,&ndu);VecNorm(old_ug,NORM_2,&nu);VecNorm(dug,NORM_INFINITY,&nduinf); VecFree(&dug); 136 137 //residue 138 if (debug) _printf_("%s%g\n"," Convergence criterion: norm(residue)=",nresidue); 132 139 133 140 //relative criterion
Note:
See TracChangeset
for help on using the changeset viewer.