Changeset 14928
- Timestamp:
- 05/06/13 13:02:15 (12 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h ¶
r14898 r14928 90 90 HydrologydcEnum, 91 91 SedimentHeadEnum, 92 SedimentHeadResidualEnum, 92 93 EplHeadEnum, 93 94 HydrologydcSpcsedimentHeadEnum, -
TabularUnified issm/trunk-jpl/src/c/classes/objects/Elements/Tria.cpp ¶
r14923 r14928 2052 2052 name==GradientEnum || 2053 2053 name==OldGradientEnum || 2054 name==ConvergedEnum || 2054 2055 name==QmuVxEnum || 2055 2056 name==QmuVyEnum || … … 6201 6202 IssmDouble xyz_list[NUMVERTICES][3]; 6202 6203 IssmDouble dt,scalar,water_head; 6203 IssmDouble water_load;6204 IssmDouble residual_load; 6204 6205 IssmDouble epl_storing; 6205 6206 IssmDouble basis[numdof]; … … 6213 6214 GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); 6214 6215 this->parameters->FindParam(&dt,TimesteppingTimeStepEnum); 6215 Input* water_input=inputs->GetInput(BasalforcingsMeltingRateEnum); _assert_(water_input);6216 Input* residual_input=inputs->GetInput(SedimentHeadResidualEnum); _assert_(residual_input); 6216 6217 Input* old_wh_input=NULL; 6217 6218 … … 6230 6231 6231 6232 /*Loading term*/ 6232 water_input->GetInputValue(&water_load,gauss);6233 scalar = Jdet*gauss->weight* water_load;6233 residual_input->GetInputValue(&residual_load,gauss); 6234 scalar = Jdet*gauss->weight*residual_load; 6234 6235 if(reCast<bool,IssmDouble>(dt)) scalar = scalar*dt; 6235 6236 for(int i=0;i<numdof;i++) pe->values[i]+=scalar*basis[i]; … … 6315 6316 const int numdof = NDOF1 *NUMVERTICES; 6316 6317 int *doflist = NULL; 6318 bool converged; 6317 6319 IssmDouble values[numdof]; 6320 IssmDouble residual[numdof]; 6321 IssmDouble sediment_storing; 6322 IssmDouble penalty_factor; 6323 IssmDouble kmax, kappa, h_max; 6318 6324 6319 6325 /*Get dof list: */ 6320 6326 GetDofList(&doflist,NoneApproximationEnum,GsetEnum); 6327 6321 6328 6322 6329 /*Use the dof list to index into the solution vector: */ … … 6326 6333 } 6327 6334 6335 /*If converged keep the residual in mind*/ 6336 this->inputs->GetInputValue(&converged,ConvergedEnum); 6337 if(converged){ 6338 this->parameters->FindParam(&kmax,HydrologySedimentKmaxEnum); 6339 this->parameters->FindParam(&penalty_factor,HydrologydcPenaltyFactorEnum); 6340 sediment_storing=matpar->GetSedimentStoring(); 6341 kappa=kmax*pow(10.,penalty_factor); 6342 6343 for(int i=0;i<NUMVERTICES;i++){ 6344 this->GetHydrologyDCInefficientHmax(&h_max,nodes[i]); 6345 if(values[i]>h_max) 6346 residual[i]=kappa*(values[i]-h_max)*sediment_storing; 6347 else 6348 residual[i]=0.0; 6349 } 6350 } 6351 6328 6352 /*Add input to the element: */ 6329 6353 this->inputs->AddInput(new TriaP1Input(SedimentHeadEnum,values)); 6354 this->inputs->AddInput(new TriaP1Input(SedimentHeadResidualEnum,residual)); 6330 6355 6331 6356 /*Free ressources:*/ -
TabularUnified issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp ¶
r14917 r14928 94 94 case HydrologydcEnum : return "Hydrologydc"; 95 95 case SedimentHeadEnum : return "SedimentHead"; 96 case SedimentHeadResidualEnum : return "SedimentHeadResidual"; 96 97 case EplHeadEnum : return "EplHead"; 97 98 case HydrologydcSpcsedimentHeadEnum : return "HydrologydcSpcsedimentHead"; -
TabularUnified issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp ¶
r14917 r14928 95 95 else if (strcmp(name,"Hydrologydc")==0) return HydrologydcEnum; 96 96 else if (strcmp(name,"SedimentHead")==0) return SedimentHeadEnum; 97 else if (strcmp(name,"SedimentHeadResidual")==0) return SedimentHeadResidualEnum; 97 98 else if (strcmp(name,"EplHead")==0) return EplHeadEnum; 98 99 else if (strcmp(name,"HydrologydcSpcsedimentHead")==0) return HydrologydcSpcsedimentHeadEnum; … … 136 137 else if (strcmp(name,"InversionVxObs")==0) return InversionVxObsEnum; 137 138 else if (strcmp(name,"InversionVyObs")==0) return InversionVyObsEnum; 138 else if (strcmp(name,"InversionVzObs")==0) return InversionVzObsEnum;139 139 else stage=2; 140 140 } 141 141 if(stage==2){ 142 if (strcmp(name,"MaskElementonfloatingice")==0) return MaskElementonfloatingiceEnum; 142 if (strcmp(name,"InversionVzObs")==0) return InversionVzObsEnum; 143 else if (strcmp(name,"MaskElementonfloatingice")==0) return MaskElementonfloatingiceEnum; 143 144 else if (strcmp(name,"MaskElementongroundedice")==0) return MaskElementongroundediceEnum; 144 145 else if (strcmp(name,"MaskElementonwater")==0) return MaskElementonwaterEnum; … … 259 260 else if (strcmp(name,"TransientIsprognostic")==0) return TransientIsprognosticEnum; 260 261 else if (strcmp(name,"TransientIsthermal")==0) return TransientIsthermalEnum; 261 else if (strcmp(name,"TransientIsgia")==0) return TransientIsgiaEnum;262 262 else stage=3; 263 263 } 264 264 if(stage==3){ 265 if (strcmp(name,"TransientNumRequestedOutputs")==0) return TransientNumRequestedOutputsEnum; 265 if (strcmp(name,"TransientIsgia")==0) return TransientIsgiaEnum; 266 else if (strcmp(name,"TransientNumRequestedOutputs")==0) return TransientNumRequestedOutputsEnum; 266 267 else if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum; 267 268 else if (strcmp(name,"SolutionType")==0) return SolutionTypeEnum; … … 382 383 else if (strcmp(name,"Vertex")==0) return VertexEnum; 383 384 else if (strcmp(name,"Air")==0) return AirEnum; 384 else if (strcmp(name,"Ice")==0) return IceEnum;385 385 else stage=4; 386 386 } 387 387 if(stage==4){ 388 if (strcmp(name,"Melange")==0) return MelangeEnum; 388 if (strcmp(name,"Ice")==0) return IceEnum; 389 else if (strcmp(name,"Melange")==0) return MelangeEnum; 389 390 else if (strcmp(name,"Water")==0) return WaterEnum; 390 391 else if (strcmp(name,"Closed")==0) return ClosedEnum; … … 505 506 else if (strcmp(name,"MaxVel")==0) return MaxVelEnum; 506 507 else if (strcmp(name,"MinVx")==0) return MinVxEnum; 507 else if (strcmp(name,"MaxVx")==0) return MaxVxEnum;508 508 else stage=5; 509 509 } 510 510 if(stage==5){ 511 if (strcmp(name,"MaxAbsVx")==0) return MaxAbsVxEnum; 511 if (strcmp(name,"MaxVx")==0) return MaxVxEnum; 512 else if (strcmp(name,"MaxAbsVx")==0) return MaxAbsVxEnum; 512 513 else if (strcmp(name,"MinVy")==0) return MinVyEnum; 513 514 else if (strcmp(name,"MaxVy")==0) return MaxVyEnum; -
TabularUnified issm/trunk-jpl/src/c/solutions/hydrology_core.cpp ¶
r14917 r14928 84 84 if(VerboseSolution()) _pprintLine_(" saving results "); 85 85 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,SedimentHeadEnum); 86 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,SedimentHeadResidualEnum); 86 87 87 88 /*unload results*/ -
TabularUnified issm/trunk-jpl/src/c/solvers/solver_hydro_nonlinear.cpp ¶
r14891 r14928 67 67 68 68 if(converged){ 69 femmodel->parameters->SetParam(sediment_kmax,HydrologySedimentKmaxEnum); 70 69 71 InputUpdateFromConstantx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,converged,ConvergedEnum); 70 InputUpdateFromConstantx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,sediment_kmax,HydrologySedimentKmaxEnum);71 72 InputUpdateFromSolutionx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,ug); 73 /*InputUpdateFromConstantx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,sediment_kmax,HydrologySedimentKmaxEnum);*/ 72 74 break; 73 75 }
Note:
See TracChangeset
for help on using the changeset viewer.