Changeset 15409
- Timestamp:
- 07/03/13 11:26:45 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp
r15407 r15409 40 40 41 41 /*Recover parameters: */ 42 femmodel->SetCurrentConfiguration(HydrologyDCInefficientAnalysisEnum); //FIXME42 femmodel->SetCurrentConfiguration(HydrologyDCInefficientAnalysisEnum); 43 43 femmodel->parameters->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum); 44 44 femmodel->parameters->FindParam(&eps_hyd,HydrologydcRelTolEnum); … … 46 46 hydro_maxiter=150; 47 47 hydrocount=1; 48 49 /*Iteration on the two layers*/ 50 femmodel->SetCurrentConfiguration(HydrologyDCInefficientAnalysisEnum); 48 hydroconverged=false; 49 50 /*Retrieve inputs as the initial state for the non linear iteration*/ 51 //femmodel->SetCurrentConfiguration(HydrologyDCInefficientAnalysisEnum); 51 52 GetSolutionFromInputsx(&ug_sed, femmodel->elements, femmodel->nodes, femmodel->vertices,femmodel->loads, femmodel->materials, femmodel->parameters); 52 53 Reducevectorgtofx(&uf_sed, ug_sed, femmodel->nodes,femmodel->parameters); 54 53 55 if(isefficientlayer) { 54 56 femmodel->SetCurrentConfiguration(HydrologyDCEfficientAnalysisEnum); 55 57 GetSolutionFromInputsx(&ug_epl, femmodel->elements, femmodel->nodes, femmodel->vertices,femmodel->loads, femmodel->materials, femmodel->parameters); 56 Reducevectorgtofx(&uf_epl, ug_epl, femmodel->nodes,femmodel->parameters);58 Reducevectorgtofx(&uf_epl, ug_epl, femmodel->nodes,femmodel->parameters); 57 59 } 58 60 59 hydroconverged=false;61 /*Iteration on the two layers*/ 60 62 for(;;){ 61 63 sedcount=1; 62 64 eplcount=1; 63 65 //save pointer to old velocity 64 delete ug_sed_main_iter;65 66 delete uf_sed_sub_iter; 66 67 ug_sed_main_iter=ug_sed; 67 68 uf_sed_sub_iter=uf_sed; 68 69 if(isefficientlayer){ 69 delete ug_epl_main_iter; 70 delete uf_sed_sub_iter; 70 delete uf_epl_sub_iter; 71 71 ug_epl_main_iter=ug_epl; 72 uf_ sed_sub_iter=uf_epl;72 uf_epl_sub_iter=uf_epl; 73 73 } 74 74 … … 88 88 if(sedcount>1)delete uf_sed; 89 89 Solverx(&uf_sed,Kff,pf,uf_sed_sub_iter,df,femmodel->parameters); 90 delete uf_sed_sub_iter;90 delete Kff; delete pf; delete uf_sed_sub_iter; delete df; 91 91 uf_sed_sub_iter=uf_sed->Duplicate(); 92 92 uf_sed->Copy(uf_sed_sub_iter); 93 93 if(sedcount>1)delete ug_sed; /*Not on first time to avoid deleting ug_sed_main_iter*/ 94 delete Kff; delete pf; delete df;95 96 94 Mergesolutionfromftogx(&ug_sed,uf_sed,ys,femmodel->nodes,femmodel->parameters); delete ys; 97 95 InputUpdateFromSolutionx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,ug_sed); … … 123 121 femmodel->HydrologyEPLupdateDomainx(); 124 122 femmodel->parameters->SetParam(HydrologyEfficientEnum,HydrologyLayerEnum); 123 124 /*Iteration on the EPL layer*/ 125 125 eplconverged = false; 126 /*Iteration on the EPL layer*/127 126 for(;;){ 128 127 femmodel->HydrologyTransferx(); … … 130 129 CreateNodalConstraintsx(&ys,femmodel->nodes,HydrologyDCEfficientAnalysisEnum); 131 130 Reduceloadx(pf,Kfs,ys); delete Kfs; 132 if( eplcount>1) delete uf_epl;131 if(sedcount>1) delete uf_epl; 133 132 Solverx(&uf_epl,Kff,pf,uf_epl_sub_iter,df,femmodel->parameters); 134 delete uf_epl_sub_iter;133 delete Kff; delete pf; delete uf_epl_sub_iter; delete df; 135 134 uf_epl_sub_iter=uf_epl->Duplicate(); 136 135 uf_epl->Copy(uf_epl_sub_iter); 137 136 if(eplcount>1) delete ug_epl; 138 delete Kff;delete pf;139 delete df;140 137 Mergesolutionfromftogx(&ug_epl,uf_epl,ys,femmodel->nodes,femmodel->parameters); delete ys; 141 138 InputUpdateFromSolutionx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,ug_epl); … … 207 204 if(hydroconverged)break; 208 205 } 206 209 207 InputUpdateFromSolutionx(femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,ug_sed); 210 208 if(isefficientlayer)InputUpdateFromSolutionx(femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,ug_epl); … … 214 212 delete ug_sed; 215 213 delete uf_sed; 216 //delete uf_epl;214 delete uf_epl; 217 215 delete uf_sed_sub_iter; 218 216 delete uf_epl_sub_iter; 219 delete ug_sed_main_iter;220 delete ug_epl_main_iter;221 217 delete dug; 222 218 }
Note:
See TracChangeset
for help on using the changeset viewer.