Changeset 23387
- Timestamp:
- 10/05/18 07:12:10 (6 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp
r23377 r23387 607 607 /*centered*/ 608 608 //thickness[i] = old_thickness[i]*(1.0+opening-closing)/(1.0-opening+closing); 609 610 //if(element->nodes[i]->Sid()==2299){611 // printf("for node %i \n",element->nodes[i]->Sid());612 // printf(" old thickness is %g \n",old_thickness[i]);613 // printf(" new thickness is %g \n",thickness[i]);614 //}615 609 /*Take care of otherthikening*/ 616 610 if(thickness[i]>max_thick){ … … 709 703 if(old_active[i]>0.){ 710 704 vec_mask->SetValue(basalelement->nodes[i]->Sid(),1.,INS_VAL); 711 /* If epl thickness gets under colapse thickness, close the layer */ 712 if(epl_thickness[i]<colapse_thick){ 713 //if(element->nodes[i]->Sid()==2299){ 714 //printf("masking node %i with thickness %f\n",element->nodes[i]->Sid(),epl_thickness[i]);} 705 /* If epl thickness gets under colapse thickness, close the layer if there is no residual*/ 706 if(epl_thickness[i]<colapse_thick && residual[i]<=0.){ 715 707 vec_mask->SetValue(basalelement->nodes[i]->Sid(),0.,INS_VAL); 716 708 recurence->SetValue(basalelement->nodes[i]->Sid(),1.,INS_VAL); 717 709 } 718 710 } 719 /*If node is now closed bring its thickness back to initial*/720 711 if (old_active[i]==0.){ 721 epl_thickness[i]=init_thick;722 712 /*Activate if we have a residual from sediment*/ 723 713 if(residual[i]>0.){ 724 714 vec_mask->SetValue(basalelement->nodes[i]->Sid(),1.,INS_VAL); 725 if(old_active[i]==0.){ 726 recurence->SetValue(basalelement->nodes[i]->Sid(),1.,INS_VAL); 727 } 715 recurence->SetValue(basalelement->nodes[i]->Sid(),1.,INS_VAL); 716 } 717 else{ 718 /*If node is now closed bring its thickness back to initial*/ 719 epl_thickness[i]=init_thick; 720 vec_mask->SetValue(basalelement->nodes[i]->Sid(),0.,INS_VAL); 728 721 } 729 722 } -
issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp
r23377 r23387 28 28 29 29 /*retrieve some parameters: */ 30 30 bool issmb; 31 31 iomodel->FindConstant(&issmb,"md.transient.issmb"); 32 32 iomodel->FindConstant(&hydrology_model,"md.hydrology.model"); … … 374 374 } 375 375 if(smb_model==SMBgradientscomponentsEnum){ 376 surface_runoff_input = basalelement->GetInput(SmbRunoffEnum); _assert_(surface_runoff_input); 376 surface_runoff_input = basalelement->GetInput(SmbRunoffEnum); _assert_(surface_runoff_input); 377 377 } 378 378 … … 518 518 /*Use the dof list to index into the solution vector: */ 519 519 520 /*need to introduce thawed test herre*/521 520 for(int i=0;i<numnodes;i++){ 522 521 values[i] =solution[doflist[i]]; … … 546 545 kappa=kmax*pow(10.,penalty_factor); 547 546 547 548 Input* thawed_element_input = basalelement->GetInput(HydrologydcMaskThawedEltEnum); _assert_(thawed_element_input); 549 thawed_element_input->GetInputValue(&thawed_element); 550 548 551 for(int i=0;i<numnodes;i++){ 552 /*frozen elements heads are set to base elevation*/ 553 if(!thawed_element){ 554 values[i]=base[i]; 555 } 549 556 GetHydrologyDCInefficientHmax(&h_max,basalelement,basalelement->GetNode(i)); 550 557 if(values[i]>h_max) { … … 555 562 residual[i] = 0.; 556 563 } 557 //adding base in min to take into account heads under bed wich don't change N558 //pressure[i]=(rho_ice*g*thickness[i])-(rho_freshwater*g*(max((min(h_max,values[i])-base[i]),0.0)));559 564 pressure[i]=(rho_ice*g*thickness[i])-(rho_freshwater*g*(values[i]-base[i])); 565 560 566 } 561 567 xDelete<IssmDouble>(thickness); -
issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp
r22902 r23387 190 190 Reduceloadx(pf,Kfs,ys); delete Kfs; 191 191 delete uf_epl; 192 192 193 femmodel->profiler->Start(SOLVER); 193 194 Solverx(&uf_epl,Kff,pf,uf_epl_sub_iter,df,femmodel->parameters); 194 195 femmodel->profiler->Stop(SOLVER); 196 195 197 delete Kff; delete pf; delete df; 196 198 delete uf_epl_sub_iter; 197 uf_epl_sub_iter=uf_epl->Duplicate(); 199 uf_epl_sub_iter=uf_epl->Duplicate();_assert_(uf_epl_sub_iter); 198 200 uf_epl->Copy(uf_epl_sub_iter); 199 201 delete ug_epl; … … 215 217 _error_(" maximum number of EPL iterations (" << hydro_maxiter << ") exceeded"); 216 218 } 217 //If there is some colapse go through sediment again218 /* if(ThickCount<L2Count)eplconverged=true; */219 219 eplcount++; 220 220
Note:
See TracChangeset
for help on using the changeset viewer.