- Timestamp:
- 11/01/19 12:01:57 (5 years ago)
- Location:
- issm/trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk
-
issm/trunk/src
- Property svn:mergeinfo changed
-
issm/trunk/src/c
- Property svn:ignore
-
issm/trunk/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp
r23394 r24313 57 57 if(!isefficientlayer) hydroconverged=true; 58 58 59 /* Retrieve inputs as the initial state for the non linear iteration*/59 /*{{{*//*Retrieve inputs as the initial state for the non linear iteration*/ 60 60 GetSolutionFromInputsx(&ug_sed,femmodel); 61 61 Reducevectorgtofx(&uf_sed, ug_sed, femmodel->nodes,femmodel->parameters); … … 65 65 femmodel->SetCurrentConfiguration(HydrologyDCEfficientAnalysisEnum); 66 66 GetSolutionFromInputsx(&ug_epl,femmodel); 67 /*Initialize the element mask*/67 /*Initialize the EPL element mask*/ 68 68 inefanalysis->ElementizeEplMask(femmodel); 69 69 effanalysis->InitZigZagCounter(femmodel); 70 /*Initialize the IDS element mask*/ 71 femmodel->SetCurrentConfiguration(HydrologyDCInefficientAnalysisEnum); 72 inefanalysis->ElementizeIdsMask(femmodel); 70 73 } 74 /*}}}*/ 71 75 /*The real computation starts here, outermost loop is on the two layer system*/ 72 76 for(;;){ … … 84 88 /*Loop on sediment layer to deal with transfer and head value*/ 85 89 femmodel->SetCurrentConfiguration(HydrologyDCInefficientAnalysisEnum); 86 InputUpdateFromConstantx(femmodel,true,ResetPenaltiesEnum);90 ResetZigzagCounterx(femmodel); 87 91 InputUpdateFromConstantx(femmodel,false,ConvergedEnum); 88 92 femmodel->UpdateConstraintsx(); … … 98 102 /*{{{*//*Loop on the sediment layer to deal with the penalization*/ 99 103 for(;;){ 100 /*{{{*/ 104 /*{{{*//*Core of the computation*/ 101 105 if(VerboseSolution()) _printf0_("Building Sediment Matrix...\n"); 102 106 SystemMatricesx(&Kff,&Kfs,&pf,&df,&sediment_kmax,femmodel); 103 CreateNodalConstraintsx(&ys,femmodel->nodes ,HydrologyDCInefficientAnalysisEnum);107 CreateNodalConstraintsx(&ys,femmodel->nodes); 104 108 Reduceloadx(pf,Kfs,ys); delete Kfs; 105 109 delete uf_sed; … … 130 134 sedconverged=false; 131 135 132 /*Checking conve gence on the value of the sediment head*/136 /*Checking convergence on the value of the sediment head*/ 133 137 duf=uf_sed_sub_iter->Duplicate();_assert_(duf); 134 138 uf_sed_sub_iter->Copy(duf); … … 160 164 if(VerboseSolution()) _printf0_("==updating mask...\n"); 161 165 femmodel->HydrologyEPLupdateDomainx(&ThickCount); 162 inefanalysis->ElementizeEplMask(femmodel); 163 InputUpdateFromConstantx(femmodel,true,ResetPenaltiesEnum); 166 ResetZigzagCounterx(femmodel); 164 167 InputUpdateFromConstantx(femmodel,false,ConvergedEnum); 165 168 … … 172 175 femmodel->SetCurrentConfiguration(L2ProjectionEPLAnalysisEnum); 173 176 femmodel->UpdateConstraintsL2ProjectionEPLx(&L2Count); 174 inefanalysis->ElementizeEplMask(femmodel);175 177 femmodel->parameters->SetParam(EplHeadSlopeXEnum,InputToL2ProjectEnum); 176 178 solutionsequence_linear(femmodel); … … 182 184 //updating mask after the computation of the epl thickness (Allow to close too thin EPL) 183 185 femmodel->HydrologyEPLupdateDomainx(&ThickCount); 184 inefanalysis->ElementizeEplMask(femmodel);185 186 /*}}}*/ 186 187 187 188 if(VerboseSolution()) _printf0_("Building EPL Matrix...\n"); 188 189 SystemMatricesx(&Kff,&Kfs,&pf,&df,NULL,femmodel); 189 CreateNodalConstraintsx(&ys,femmodel->nodes ,HydrologyDCEfficientAnalysisEnum);190 CreateNodalConstraintsx(&ys,femmodel->nodes); 190 191 Reduceloadx(pf,Kfs,ys); delete Kfs; 191 192 delete uf_epl; … … 229 230 } 230 231 } 231 /*}}}*/ /*End of the global EPL loop*/ 232 233 /*{{{*/ /*Now dealing with the convergence of the whole system*/ 232 /*}}}*//*End of the global EPL loop*/ 233 /*{{{*//*Now dealing with the convergence of the whole system*/ 234 234 if(!hydroconverged){ 235 235 //compute norm(du)/norm(u)
Note:
See TracChangeset
for help on using the changeset viewer.