- Timestamp:
- 08/11/20 19:43:31 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp
r25317 r25379 5 5 #include "../shared/shared.h" 6 6 #include "../modules/modules.h" 7 #include "../classes/Inputs 2/TransientInput2.h"7 #include "../classes/Inputs/TransientInput.h" 8 8 9 9 /*Model processing*/ … … 79 79 iomodel->DeleteData(&requestedoutputs,numoutputs,"md.hydrology.requested_outputs"); 80 80 }/*}}}*/ 81 void HydrologyDCInefficientAnalysis::UpdateElements(Elements* elements,Inputs 2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/81 void HydrologyDCInefficientAnalysis::UpdateElements(Elements* elements,Inputs* inputs,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 82 82 83 83 bool isefficientlayer; … … 98 98 if(iomodel->my_elements[i]){ 99 99 Element* element=(Element*)elements->GetObjectByOffset(counter); 100 element->Update(inputs 2,i,iomodel,analysis_counter,analysis_type,P1Enum);100 element->Update(inputs,i,iomodel,analysis_counter,analysis_type,P1Enum); 101 101 counter++; 102 102 } 103 103 } 104 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.thickness",ThicknessEnum);105 iomodel->FetchDataToInput(inputs 2,elements,"md.geometry.base",BaseEnum);106 iomodel->FetchDataToInput(inputs 2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);107 iomodel->FetchDataToInput(inputs 2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);108 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.basal_moulin_input",HydrologydcBasalMoulinInputEnum);109 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.sediment_head",SedimentHeadSubstepEnum);110 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.sediment_transmitivity",HydrologydcSedimentTransmitivityEnum);111 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.mask_thawed_node",HydrologydcMaskThawedNodeEnum);104 iomodel->FetchDataToInput(inputs,elements,"md.geometry.thickness",ThicknessEnum); 105 iomodel->FetchDataToInput(inputs,elements,"md.geometry.base",BaseEnum); 106 iomodel->FetchDataToInput(inputs,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 107 iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum); 108 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.basal_moulin_input",HydrologydcBasalMoulinInputEnum); 109 iomodel->FetchDataToInput(inputs,elements,"md.initialization.sediment_head",SedimentHeadSubstepEnum); 110 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.sediment_transmitivity",HydrologydcSedimentTransmitivityEnum); 111 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.mask_thawed_node",HydrologydcMaskThawedNodeEnum); 112 112 if(iomodel->domaintype!=Domain2DhorizontalEnum){ 113 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);114 iomodel->FetchDataToInput(inputs 2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);113 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 114 iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum); 115 115 } 116 116 if(isefficientlayer){ 117 iomodel->FetchDataToInput(inputs 2,elements,"md.hydrology.mask_eplactive_node",HydrologydcMaskEplactiveNodeEnum);118 iomodel->FetchDataToInput(inputs 2,elements,"md.initialization.epl_head",EplHeadSubstepEnum);117 iomodel->FetchDataToInput(inputs,elements,"md.hydrology.mask_eplactive_node",HydrologydcMaskEplactiveNodeEnum); 118 iomodel->FetchDataToInput(inputs,elements,"md.initialization.epl_head",EplHeadSubstepEnum); 119 119 } 120 120 … … 205 205 } 206 206 207 basalelement->GetInput 2Value(&thawed_element,HydrologydcMaskThawedEltEnum);207 basalelement->GetInputValue(&thawed_element,HydrologydcMaskThawedEltEnum); 208 208 209 209 /*Check that all nodes are active, else return empty matrix*/ … … 235 235 basalelement ->FindParam(&dt,TimesteppingTimeStepEnum); 236 236 basalelement ->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum); 237 Input 2* SedTrans_input = basalelement->GetInput2(HydrologydcSedimentTransmitivityEnum); _assert_(SedTrans_input);238 Input 2* sed_head_input = basalelement->GetInput2(SedimentHeadSubstepEnum);239 Input 2* base_input = basalelement->GetInput2(BaseEnum);237 Input* SedTrans_input = basalelement->GetInput(HydrologydcSedimentTransmitivityEnum); _assert_(SedTrans_input); 238 Input* sed_head_input = basalelement->GetInput(SedimentHeadSubstepEnum); 239 Input* base_input = basalelement->GetInput(BaseEnum); 240 240 241 241 /*Transfer related Inputs*/ 242 242 if(isefficientlayer){ 243 basalelement->GetInput 2Value(&active_element,HydrologydcMaskEplactiveEltEnum);243 basalelement->GetInputValue(&active_element,HydrologydcMaskEplactiveEltEnum); 244 244 } 245 245 /* Start looping on the number of gaussian points: */ … … 308 308 } 309 309 310 basalelement->GetInput 2Value(&thawed_element,HydrologydcMaskThawedEltEnum);310 basalelement->GetInputValue(&thawed_element,HydrologydcMaskThawedEltEnum); 311 311 312 312 /*Check that all nodes are active, else return empty matrix*/ … … 329 329 330 330 IssmDouble *xyz_list = NULL; 331 Input 2*active_element_input = NULL;332 Input 2*old_wh_input = NULL;333 Input 2*dummy_input = NULL;334 Input 2*surface_runoff_input = NULL;331 Input *active_element_input = NULL; 332 Input *old_wh_input = NULL; 333 Input *dummy_input = NULL; 334 Input *surface_runoff_input = NULL; 335 335 336 336 /*Fetch number of nodes and dof for this finite element*/ … … 347 347 basalelement->FindParam(&smb_model,SmbEnum); 348 348 349 Input 2* sed_head_input = basalelement->GetInput2(SedimentHeadSubstepEnum);350 Input 2* epl_head_input = basalelement->GetInput2(EplHeadSubstepEnum);351 Input 2* base_input = basalelement->GetInput2(BaseEnum);352 Input 2* basal_melt_input = basalelement->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(basal_melt_input);353 Input 2* SedTrans_input = basalelement->GetInput2(HydrologydcSedimentTransmitivityEnum); _assert_(SedTrans_input);349 Input* sed_head_input = basalelement->GetInput(SedimentHeadSubstepEnum); 350 Input* epl_head_input = basalelement->GetInput(EplHeadSubstepEnum); 351 Input* base_input = basalelement->GetInput(BaseEnum); 352 Input* basal_melt_input = basalelement->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(basal_melt_input); 353 Input* SedTrans_input = basalelement->GetInput(HydrologydcSedimentTransmitivityEnum); _assert_(SedTrans_input); 354 354 355 355 if(dt!= 0.){ 356 old_wh_input = basalelement->GetInput 2(SedimentHeadOldEnum); _assert_(old_wh_input);356 old_wh_input = basalelement->GetInput(SedimentHeadOldEnum); _assert_(old_wh_input); 357 357 } 358 358 if(smb_model==SMBgradientscomponentsEnum){ … … 363 363 if(smbsubstepping==1){ 364 364 //no substeping for the smb we take the result from there 365 dummy_input = basalelement->GetInput 2(SmbRunoffEnum); _assert_(dummy_input);365 dummy_input = basalelement->GetInput(SmbRunoffEnum); _assert_(dummy_input); 366 366 } 367 367 else if(smbsubstepping>1 && smbsubstepping<=hydrologysubstepping){ 368 368 //finer hydro stepping, we take the value at the needed time 369 dummy_input = basalelement->GetInput 2(SmbRunoffTransientEnum, time); _assert_(dummy_input);369 dummy_input = basalelement->GetInput(SmbRunoffTransientEnum, time); _assert_(dummy_input); 370 370 } 371 371 else{ 372 372 //finer stepping in smb, we average the runoff from transient input 373 373 basalelement->FindParam(&smb_averaging,SmbAveragingEnum); 374 dummy_input = basalelement->GetInput 2(SmbRunoffTransientEnum,time-dt,time,smb_averaging); _assert_(dummy_input);375 } 376 surface_runoff_input=xDynamicCast<Input 2*>(dummy_input); _assert_(surface_runoff_input);374 dummy_input = basalelement->GetInput(SmbRunoffTransientEnum,time-dt,time,smb_averaging); _assert_(dummy_input); 375 } 376 surface_runoff_input=xDynamicCast<Input*>(dummy_input); _assert_(surface_runoff_input); 377 377 } 378 378 379 379 /*Transfer related Inputs*/ 380 380 if(isefficientlayer){ 381 basalelement->GetInput 2Value(&active_element,HydrologydcMaskEplactiveEltEnum);381 basalelement->GetInputValue(&active_element,HydrologydcMaskEplactiveEltEnum); 382 382 } 383 383 … … 528 528 529 529 /*Add input to the element: */ 530 element->AddBasalInput 2(SedimentHeadSubstepEnum,values,P1Enum);531 element->AddBasalInput 2(EffectivePressureSubstepEnum,pressure,P1Enum);532 element->AddBasalInput 2(SedimentHeadResidualEnum,residual,P1Enum);530 element->AddBasalInput(SedimentHeadSubstepEnum,values,P1Enum); 531 element->AddBasalInput(EffectivePressureSubstepEnum,pressure,P1Enum); 532 element->AddBasalInput(SedimentHeadResidualEnum,residual,P1Enum); 533 533 534 534 /*Free ressources:*/ … … 547 547 }/*}}}*/ 548 548 /*Intermediaries*/ 549 IssmDouble HydrologyDCInefficientAnalysis::SedimentStoring(Element* element,Gauss* gauss,Input 2* sed_head_input, Input2* base_input){/*{{{*/549 IssmDouble HydrologyDCInefficientAnalysis::SedimentStoring(Element* element,Gauss* gauss,Input* sed_head_input, Input* base_input){/*{{{*/ 550 550 int unconf_scheme; 551 551 IssmDouble expfac; … … 577 577 return sediment_storing; 578 578 }/*}}}*/ 579 IssmDouble HydrologyDCInefficientAnalysis::SedimentTransmitivity(Element* element,Gauss* gauss,Input 2* sed_head_input, Input2* base_input,Input2* SedTrans_input){/*{{{*/579 IssmDouble HydrologyDCInefficientAnalysis::SedimentTransmitivity(Element* element,Gauss* gauss,Input* sed_head_input, Input* base_input,Input* SedTrans_input){/*{{{*/ 580 580 int unconf_scheme; 581 581 IssmDouble sediment_transmitivity; … … 664 664 return transfer; 665 665 }/*}}}*/ 666 IssmDouble HydrologyDCInefficientAnalysis::GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input 2* epl_head_input){/*{{{*/666 IssmDouble HydrologyDCInefficientAnalysis::GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input* epl_head_input){/*{{{*/ 667 667 668 668 int transfermethod; … … 696 696 element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 697 697 698 Input 2* input=element->GetInput2(HydrologydcMaskEplactiveNodeEnum); _assert_(input);698 Input* input=element->GetInput(HydrologydcMaskEplactiveNodeEnum); _assert_(input); 699 699 if(input->GetInputMax()>0.){ 700 700 element_active = true; … … 703 703 element_active = false; 704 704 } 705 element->SetBoolInput(element->inputs 2,HydrologydcMaskEplactiveEltEnum,element_active);705 element->SetBoolInput(element->inputs,HydrologydcMaskEplactiveEltEnum,element_active); 706 706 } 707 707 }/*}}}*/ … … 756 756 element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i)); 757 757 758 Input 2* input=element->GetInput2(HydrologydcMaskThawedNodeEnum); _assert_(input);758 Input* input=element->GetInput(HydrologydcMaskThawedNodeEnum); _assert_(input); 759 759 if(input->GetInputMax()>0.){ 760 760 element_active = true; … … 763 763 element_active = false; 764 764 } 765 element->SetBoolInput(element->inputs 2,HydrologydcMaskThawedEltEnum,element_active);765 element->SetBoolInput(element->inputs,HydrologydcMaskThawedEltEnum,element_active); 766 766 } 767 767 }/*}}}*/ … … 791 791 /*Pass the activity mask from elements to nodes*/ 792 792 basalelement->GetInputListOnVertices(&active[0],HydrologydcMaskThawedNodeEnum); 793 basalelement->GetInput 2Value(&active_element,HydrologydcMaskThawedEltEnum);793 basalelement->GetInputValue(&active_element,HydrologydcMaskThawedEltEnum); 794 794 795 795 for(int i=0;i<numnodes;i++) flag+=active[i];
Note:
See TracChangeset
for help on using the changeset viewer.