Changeset 15020
- Timestamp:
- 05/13/13 16:45:14 (12 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r15015 r15020 2078 2078 name==SedimentHeadOldEnum || 2079 2079 name==SedimentHeadEnum || 2080 name==WaterTransferEnum || 2080 2081 name==BasisIntegralEnum || 2081 2082 name==QmuVxEnum || … … 6150 6151 IssmDouble xyz_list[NUMVERTICES][3]; 6151 6152 IssmDouble dt,scalar,water_head; 6152 IssmDouble water_load ;6153 IssmDouble water_load,transfer; 6153 6154 IssmDouble sediment_storing; 6154 6155 IssmDouble basis[numdof]; … … 6163 6164 this->parameters->FindParam(&dt,TimesteppingTimeStepEnum); 6164 6165 Input* water_input=inputs->GetInput(BasalforcingsMeltingRateEnum); _assert_(water_input); 6166 Input* transfer_input=inputs->GetInput(WaterTransferEnum); _assert_(transfer_input); 6165 6167 Input* old_wh_input=NULL; 6166 6168 … … 6181 6183 /*Loading term*/ 6182 6184 water_input->GetInputValue(&water_load,gauss); 6183 scalar = Jdet*gauss->weight*water_load; 6185 transfer_input->GetInputValue(&transfer,gauss); 6186 scalar = Jdet*gauss->weight*(water_load-transfer); 6184 6187 if(reCast<bool,IssmDouble>(dt)) scalar = scalar*dt; 6185 6188 for(int i=0;i<numdof;i++) pe->values[i]+=scalar*basis[i]; … … 6207 6210 IssmDouble xyz_list[NUMVERTICES][3]; 6208 6211 IssmDouble dt,scalar,water_head; 6209 IssmDouble residual_load ;6212 IssmDouble residual_load,transfer; 6210 6213 IssmDouble epl_storing; 6211 6214 IssmDouble basis[numdof]; … … 6220 6223 this->parameters->FindParam(&dt,TimesteppingTimeStepEnum); 6221 6224 Input* residual_input=inputs->GetInput(SedimentHeadResidualEnum); _assert_(residual_input); 6225 Input* transfer_input=inputs->GetInput(WaterTransferEnum); _assert_(transfer_input); 6222 6226 Input* old_wh_input=NULL; 6223 6227 … … 6237 6241 /*Loading term*/ 6238 6242 residual_input->GetInputValue(&residual_load,gauss); 6239 scalar = Jdet*gauss->weight*residual_load; 6243 transfer_input->GetInputValue(&transfer,gauss); 6244 scalar = Jdet*gauss->weight*(residual_load+transfer); 6240 6245 if(reCast<bool,IssmDouble>(dt)) scalar = scalar*dt; 6241 6246 for(int i=0;i<numdof;i++) pe->values[i]+=scalar*basis[i]; … … 6350 6355 for(int i=0;i<NUMVERTICES;i++){ 6351 6356 this->GetHydrologyDCInefficientHmax(&h_max,nodes[i]); 6352 if(values[i]>h_max) 6353 residual[i]=kappa*(values[i]-h_max)/(dt*intbasis[i]); 6357 if(values[i]>h_max){ 6358 residual[i]=kappa*(values[i]-h_max)/intbasis[i]; 6359 if(reCast<bool,IssmDouble>(dt))residual[i]=residual[i]/dt; 6360 } 6354 6361 else 6355 6362 residual[i]=0.0; 6356 6363 } 6357 } 6358 6364 } 6359 6365 /*Add input to the element: */ 6360 6366 … … 6516 6522 } 6517 6523 } 6524 break; 6518 6525 default: 6519 6526 _error_("no case higher than 1 for the Transfer method"); -
issm/trunk-jpl/src/c/classes/Loads/Pengrid.cpp
r15012 r15020 703 703 element->GetInputValue(&h,node,SedimentHeadEnum); 704 704 element->GetHydrologyDCInefficientHmax(&h_max,node); 705 706 705 if (h>h_max) 707 706 new_active=1; -
issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/CreateParametersHydrologyDCInefficient.cpp
r15000 r15020 13 13 int hydrology_model; 14 14 int sedimentlimit_flag; 15 int transfer_flag; 15 16 bool isefficientlayer; 16 17 IssmDouble sedimentlimit; 17 18 IssmDouble penalty_factor; 19 IssmDouble leakagefactor; 18 20 19 21 /*Get parameters: */ … … 31 33 iomodel->FetchData(&isefficientlayer,HydrologydcIsefficientlayerEnum); 32 34 iomodel->FetchData(&sedimentlimit_flag,HydrologydcSedimentlimitFlagEnum); 35 iomodel->FetchData(&transfer_flag,HydrologydcTransferFlagEnum); 33 36 iomodel->FetchData(&penalty_factor,HydrologydcPenaltyFactorEnum); 34 37 … … 38 41 } 39 42 43 if(transfer_flag==1){ 44 iomodel->FetchData(&leakagefactor,HydrologydcLeakageFactorEnum); 45 parameters->AddObject(new DoubleParam(HydrologydcLeakageFactorEnum,leakagefactor)); 46 } 47 40 48 parameters->AddObject(new DoubleParam(HydrologydcPenaltyFactorEnum,penalty_factor)); 41 49 parameters->AddObject(new IntParam(HydrologyModelEnum,hydrology_model)); 42 50 parameters->AddObject(new BoolParam(HydrologydcIsefficientlayerEnum,isefficientlayer)); 43 51 parameters->AddObject(new IntParam(HydrologydcSedimentlimitFlagEnum,sedimentlimit_flag)); 52 parameters->AddObject(new IntParam(HydrologydcTransferFlagEnum,transfer_flag)); 44 53 45 54 /*Assign output pointer: */ -
issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp
r15006 r15020 45 45 femmodel->UpdateConstraintsx(); 46 46 femmodel->parameters->SetParam(HydrologySedimentEnum,HydrologyLayerEnum); 47 femmodel->HydrologyTransferx(); 47 48 for(;;){ 48 49
Note:
See TracChangeset
for help on using the changeset viewer.