Changeset 18641
- Timestamp:
- 10/14/14 15:09:05 (10 years ago)
- Location:
- issm/trunk-jpl/src/c/analyses
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp
r18633 r18641 352 352 active_element_input->GetInputValue(&active_element); 353 353 354 /* if(!active_element){ */ 355 /* /\*Keeping thickness to initial value if EPL is not active*\/ */ 356 /* for(i=0;i<numnodes;i++){ */ 357 /* eplHeads[i]=sedhead[i]; */ 358 /* } */ 359 /* } */ 360 /* else{ */ 361 /*Use the dof list to index into the solution vector: */ 354 /*Use the dof list to index into the solution vector: */ 362 355 for(i=0;i<numnodes;i++){ 363 356 eplHeads[i]=solution[doflist[i]]; 364 357 if(xIsNan<IssmDouble>(eplHeads[i])) _error_("NaN found in solution vector"); 365 358 } 366 // }367 359 /*Add input to the element: */ 368 360 element->AddBasalInput(EplHeadEnum,eplHeads,P1Enum); … … 439 431 _error_("no case higher than 1 for the Transfer method"); 440 432 } 441 if(element->Id()==42){442 printf("Transferefficient Kmat %e, %e, %e, %i \n",transfer,sediment_head,epl_head,element->Id());443 }433 /* if(element->Id()==42){ */ 434 /* printf("Transferefficient Kmat %e, %e, %e, %e \n",transfer,sediment_head,epl_head,sed_residual); */ 435 /* } */ 444 436 return transfer; 445 437 }/*}}}*/ … … 485 477 _error_("no case higher than 1 for the Transfer method"); 486 478 } 487 if(element->Id()==42){488 printf("Transferefficient Pvec %e, %e, %e\n",transfer,sediment_head,epl_head);489 }479 /* if(element->Id()==42){ */ 480 /* printf("Transferefficient Pvec %e, %e, %e, %e\n",transfer,sediment_head,epl_head,sed_residual); */ 481 /* } */ 490 482 return transfer; 491 483 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp
r18633 r18641 197 197 basalelement ->FindParam(&dt,TimesteppingTimeStepEnum); 198 198 basalelement ->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum); 199 Input* SedTrans_input = basalelement->GetInput(HydrologydcSedimentTransmitivityEnum); _assert_(SedTrans_input); 200 Input* sed_head_input = basalelement->GetInput(SedimentHeadEnum); 201 Input* epl_head_input = basalelement->GetInput(EplHeadEnum); 202 Input* residual_input = basalelement->GetInput(SedimentHeadResidualEnum); 199 Input* SedTrans_input = basalelement->GetInput(HydrologydcSedimentTransmitivityEnum); _assert_(SedTrans_input); 200 Input* sed_head_input = basalelement->GetInput(SedimentHeadEnum); 201 Input* epl_head_input = basalelement->GetInput(EplHeadEnum); 202 Input* base_input = basalelement->GetInput(BaseEnum); 203 Input* thick_input = basalelement->GetInput(ThicknessEnum); 203 204 204 205 IssmDouble sediment_storing = SedimentStoring(basalelement); … … 238 239 active_element_input->GetInputValue(&active_element); 239 240 if(active_element){ 240 transfer=GetHydrologyKMatrixTransfer(basalelement,gauss,sed_head_input,epl_head_input, residual_input);241 transfer=GetHydrologyKMatrixTransfer(basalelement,gauss,sed_head_input,epl_head_input,thick_input,base_input); 241 242 basalelement->NodalFunctions(&basis[0],gauss); 242 243 D_scalar=transfer*gauss->weight*Jdet*dt; … … 300 301 basalelement->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum); 301 302 302 Input* sed_head_input = basalelement->GetInput(SedimentHeadEnum); 303 Input* epl_head_input = basalelement->GetInput(EplHeadEnum); 304 Input* water_input = basalelement->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(water_input); 305 Input* residual_input = basalelement->GetInput(SedimentHeadResidualEnum); 303 Input* sed_head_input = basalelement->GetInput(SedimentHeadEnum); 304 Input* epl_head_input = basalelement->GetInput(EplHeadEnum); 305 Input* water_input = basalelement->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(water_input); 306 Input* base_input = basalelement->GetInput(BaseEnum); 307 Input* thick_input = basalelement->GetInput(ThicknessEnum); 306 308 if(dt!= 0.){old_wh_input = basalelement->GetInput(SedimentHeadOldEnum); _assert_(old_wh_input);} 307 309 … … 338 340 active_element_input->GetInputValue(&active_element); 339 341 if(active_element){ 340 transfer=GetHydrologyPVectorTransfer(basalelement,gauss,sed_head_input,epl_head_input, residual_input);342 transfer=GetHydrologyPVectorTransfer(basalelement,gauss,sed_head_input,epl_head_input,thick_input,base_input); 341 343 } 342 344 else{ … … 568 570 /*}}}*/ 569 571 570 IssmDouble HydrologyDCInefficientAnalysis::GetHydrologyKMatrixTransfer(Element* element, Gauss* gauss, Input* sed_head_input, Input* epl_head_input, Input* residual_input){/*{{{*/572 IssmDouble HydrologyDCInefficientAnalysis::GetHydrologyKMatrixTransfer(Element* element, Gauss* gauss, Input* sed_head_input, Input* epl_head_input, Input* thick_input, Input* base_input){/*{{{*/ 571 573 572 574 int transfermethod; 573 IssmDouble sed_residual;575 IssmDouble hmax; 574 576 IssmDouble epl_head,sediment_head; 575 577 IssmDouble leakage,transfer; … … 586 588 _assert_(sed_head_input); 587 589 _assert_(epl_head_input); 588 _assert_(residual_input);589 590 590 591 sed_head_input->GetInputValue(&sediment_head,gauss); 591 592 epl_head_input->GetInputValue(&epl_head,gauss); 592 residual_input->GetInputValue(&sed_residual,gauss);593 593 element->FindParam(&leakage,HydrologydcLeakageFactorEnum); 594 595 hmax=GetHydrologyDCInefficientHmax(element, gauss, thick_input, base_input); 594 596 595 597 if(epl_head>sediment_head){ 596 if(sediment_head>= 400.0){598 if(sediment_head>=hmax){ 597 599 transfer=0.0; 600 } 601 else if{ 602 transfer=(leakage); 598 603 } 599 604 else{ … … 608 613 _error_("no case higher than 1 for the Transfer method"); 609 614 } 610 if(element->Id()==42){611 printf("TransferInfficient Kmat %e, %e, %e, %i\n",transfer,sediment_head,epl_head,element->Id());612 }615 /* if(element->Id()==42){ */ 616 /* printf("TransferInfficient Kmat %e, %e, %e\n",transfer,sediment_head,epl_head); */ 617 /* } */ 613 618 return transfer; 614 619 }/*}}}*/ 615 620 616 IssmDouble HydrologyDCInefficientAnalysis::GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input* sed_head_input, Input* epl_head_input, Input* residual_input){/*{{{*/621 IssmDouble HydrologyDCInefficientAnalysis::GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input* sed_head_input, Input* epl_head_input, Input* thick_input, Input* base_input){/*{{{*/ 617 622 618 623 int transfermethod; 619 IssmDouble sed_residual;624 IssmDouble hmax; 620 625 IssmDouble epl_head,sediment_head; 621 626 IssmDouble leakage,transfer; … … 632 637 _assert_(sed_head_input); 633 638 _assert_(epl_head_input); 634 _assert_(residual_input);635 639 636 640 sed_head_input->GetInputValue(&sediment_head,gauss); 637 641 epl_head_input->GetInputValue(&epl_head,gauss); 638 residual_input->GetInputValue(&sed_residual,gauss);639 642 element->FindParam(&leakage,HydrologydcLeakageFactorEnum); 640 643 641 if(epl_head>sediment_head){ 642 if(sediment_head>=400.0){ 644 hmax=GetHydrologyDCInefficientHmax(element, gauss, thick_input, base_input); 645 646 if(epl_head>sediment_head){ 647 if(sediment_head>=hmax){ 643 648 transfer=0.0; 644 649 } … … 654 659 _error_("no case higher than 1 for the Transfer method"); 655 660 } 656 if(element->Id()==42){657 printf("TransferInfficient Pvec %e, %e, %e, %i\n",transfer,sediment_head,epl_head,element->Id());658 }661 /* if(element->Id()==42){ */ 662 /* printf("TransferInfficient Pvec %e, %e, %e\n",transfer,sediment_head,epl_head); */ 663 /* } */ 659 664 return transfer; 660 665 }/*}}}*/ -
issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.h
r18633 r18641 38 38 IssmDouble GetHydrologyDCInefficientHmax(Element* element, Gauss* gauss, Input* thickness_input, Input* base_input); 39 39 void GetHydrologyDCInefficientHmax(IssmDouble* ph_max,Element* element, Node* innode); 40 IssmDouble GetHydrologyKMatrixTransfer(Element* element, Gauss* gauss, Input* sed_head_input, Input* epl_head_input, Input* residual_input);41 IssmDouble GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input* sed_head_input, Input* epl_head_input, Input* residual_input);40 IssmDouble GetHydrologyKMatrixTransfer(Element* element, Gauss* gauss, Input* sed_head_input, Input* epl_head_input, Input* thick_input, Input* base_input); 41 IssmDouble GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input* sed_head_input, Input* epl_head_input, Input* thick_input, Input* base_input); 42 42 void ElementizeEplMask(FemModel* femmodel); 43 43 };
Note:
See TracChangeset
for help on using the changeset viewer.