Changeset 21233


Ignore:
Timestamp:
09/28/16 06:41:22 (8 years ago)
Author:
bdef
Message:

NEW: shifting input to EPL if it is open

Location:
issm/trunk-jpl/src/c/analyses
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp

    r21213 r21233  
    307307        /*Intermediaries */
    308308        IssmDouble dt,scalar,water_head;
    309         IssmDouble transfer;
     309        IssmDouble water_load,transfer;
    310310        IssmDouble epl_thickness;
    311311        IssmDouble Jdet;
     
    327327        basalelement->FindParam(&dt,TimesteppingTimeStepEnum); 
    328328
    329         Input* epl_thick_input   = basalelement->GetInput(HydrologydcEplThicknessEnum); _assert_(epl_thick_input);
    330         Input* sed_head_input    = basalelement->GetInput(SedimentHeadEnum);
    331         Input* epl_head_input    = basalelement->GetInput(EplHeadEnum);
    332         Input* thick_input       = basalelement->GetInput(ThicknessEnum);
    333         Input* base_input        = basalelement->GetInput(BaseEnum);
    334         Input* residual_input    = basalelement->GetInput(SedimentHeadResidualEnum);    _assert_(residual_input);
     329        Input* epl_thick_input = basalelement->GetInput(HydrologydcEplThicknessEnum); _assert_(epl_thick_input);
     330        Input* sed_head_input  = basalelement->GetInput(SedimentHeadEnum);
     331        Input* epl_head_input  = basalelement->GetInput(EplHeadEnum);
     332        Input* thick_input     = basalelement->GetInput(ThicknessEnum);
     333        Input* base_input      = basalelement->GetInput(BaseEnum);
     334        Input* water_input               = basalelement->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(water_input);
     335        Input* residual_input  = basalelement->GetInput(SedimentHeadResidualEnum);    _assert_(residual_input);
    335336        if(dt!= 0.){old_wh_input = basalelement->GetInput(EplHeadOldEnum);            _assert_(old_wh_input);}
    336337
     
    345346                basalelement ->NodalFunctions(basis,gauss);
    346347
     348                /*Loading term*/
     349                water_input->GetInputValue(&water_load,gauss);
     350                scalar = Jdet*gauss->weight*(water_load);
     351                if(dt!=0.) scalar = scalar*dt;
     352                for(int i=0;i<numnodes;i++){
     353                        pe->values[i]+=scalar*basis[i];
     354                }
     355               
    347356                /*Transient and transfer terms*/
    348357                if(dt!=0.){
  • issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp

    r21213 r21233  
    313313        basalelement->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum);
    314314
    315         Input* sed_head_input = basalelement->GetInput(SedimentHeadEnum);
    316         Input* epl_head_input = basalelement->GetInput(EplHeadEnum);
    317         Input* water_input    = basalelement->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(water_input);
    318         Input* thick_input    = basalelement->GetInput(ThicknessEnum);
    319         Input* base_input     = basalelement->GetInput(BaseEnum);
     315        Input* sed_head_input                    = basalelement->GetInput(SedimentHeadEnum);
     316        Input* epl_head_input                    = basalelement->GetInput(EplHeadEnum);
     317        Input* thick_input                                      = basalelement->GetInput(ThicknessEnum);
     318        Input* base_input                                         = basalelement->GetInput(BaseEnum);
     319        Input* water_input                                      = basalelement->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(water_input);
    320320        if(dt!= 0.){old_wh_input = basalelement->GetInput(SedimentHeadOldEnum);                     _assert_(old_wh_input);}
    321321
     
    336336
    337337                /*Loading term*/
    338                 water_input->GetInputValue(&water_load,gauss);
    339                 scalar = Jdet*gauss->weight*(water_load);
    340                 if(dt!=0.) scalar = scalar*dt;
    341                 for(int i=0;i<numnodes;i++){
    342                         pe->values[i]+=scalar*basis[i];
    343                 }
    344                        
     338                if(!isefficientlayer){
     339                        water_input->GetInputValue(&water_load,gauss);
     340                        scalar = Jdet*gauss->weight*(water_load);
     341                        if(dt!=0.) scalar = scalar*dt;
     342                        for(int i=0;i<numnodes;i++){
     343                                pe->values[i]+=scalar*basis[i];
     344                        }
     345                }
     346                else{
     347                        /*if EPL is present and active input is there not here*/
     348                        active_element_input->GetInputValue(&active_element);
     349                        if(!active_element){   
     350                                water_input->GetInputValue(&water_load,gauss);
     351                                scalar = Jdet*gauss->weight*(water_load);
     352                                if(dt!=0.) scalar = scalar*dt;
     353                                for(int i=0;i<numnodes;i++){
     354                                        pe->values[i]+=scalar*basis[i];
     355                                }
     356                        }
     357                }
    345358                /*Transient and transfer terms*/
    346359                if(dt!=0.){
Note: See TracChangeset for help on using the changeset viewer.