Changeset 18689


Ignore:
Timestamp:
10/27/14 11:48:31 (10 years ago)
Author:
bdef
Message:

CHG: Modification of the transfer mechanism

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

Legend:

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

    r18645 r18689  
    140140                return NULL;
    141141        }
     142
    142143        /* Intermediaries */
    143144        IssmDouble  D_scalar,Jdet,dt;
     
    197198                        /*Transfer EPL part*/
    198199                        transfer=GetHydrologyKMatrixTransfer(basalelement,gauss,sed_head_input,epl_head_input,thick_input,base_input);
    199                         D_scalar=transfer*gauss->weight*Jdet*dt;
     200                        D_scalar=transfer*gauss->weight*Jdet;
    200201                        TripleMultiply(basis,numnodes,1,0,
    201202                                                                                 &D_scalar,1,1,0,
     
    292293                        /*Dealing with the epl part of the transfer term*/
    293294                        transfer=GetHydrologyPVectorTransfer(basalelement,gauss,sed_head_input,epl_head_input,thick_input,base_input);
    294                         scalar = Jdet*gauss->weight*((water_head*epl_specificstoring*epl_thickness)+(transfer*dt));
     295                        scalar = Jdet*gauss->weight*((water_head*epl_specificstoring*epl_thickness)+(transfer));
    295296                        for(int i=0;i<numnodes;i++)pe->values[i]+=scalar*basis[i];
    296297                }
     
    422423               
    423424                if(epl_head>sediment_head){ 
    424                         if(sediment_head>=hmax){
    425                                 transfer=0.0;
    426                         }
    427                         else{
    428                                 transfer=(leakage);
    429                         }
    430                 }
    431                 else{
     425                        /* if(sediment_head>=hmax){ */
     426                        /*      transfer=0.0; */
     427                        /* } */
     428                        /* else{ */
     429                        /*      transfer=(leakage); */
     430                        /* } */
     431                        transfer=leakage*(1/(1+exp(-20.0*(hmax-sediment_head))));
     432                }
     433                else{
    432434                        transfer=(leakage);
     435                       
    433436                }
    434437                break;
     
    469472
    470473                if(epl_head>sediment_head){ 
    471                         if(sediment_head>=hmax){
    472                                 transfer=0.0;
    473                         }
    474                         else{
    475                                 transfer=(sediment_head*leakage);
    476                         }
    477                 }
    478                 else{
     474                        /* if(sediment_head>=hmax){ */
     475                        /*      transfer=0.0; */
     476                        /* } */
     477                        /* else{ */
     478                        /*      transfer=(sediment_head*leakage); */
     479                        /* } */
     480                        transfer=sediment_head*leakage*(1/(1+exp(-20.0*(hmax-sediment_head))));
     481                }
     482                else{
    479483                        transfer=(sediment_head*leakage);
    480484                }
     
    483487                _error_("no case higher than 1 for the Transfer method");
    484488        }
     489
    485490        return transfer;
    486491}/*}}}*/
     
    671676                /*Increase of the efficient system is needed if the epl head reach the maximum value (sediment max value for now)*/
    672677                GetHydrologyDCInefficientHmax(&h_max,basalelement,basalelement->nodes[i]);
     678
    673679                if(eplhead[i]>=h_max && active_element){
     680
    674681                        for(j=0;j<numnodes;j++){
    675682                                if(old_active[j]>0.){
  • issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp

    r18645 r18689  
    241241                                        transfer=GetHydrologyKMatrixTransfer(basalelement,gauss,sed_head_input,epl_head_input,thick_input,base_input);
    242242                                        basalelement->NodalFunctions(&basis[0],gauss);
    243                                         D_scalar=transfer*gauss->weight*Jdet*dt;
     243                                        D_scalar=transfer*gauss->weight*Jdet;
    244244                                        TripleMultiply(basis,numnodes,1,0,
    245245                                                                                                 &D_scalar,1,1,0,
     
    345345                                        transfer=0.0;
    346346                                }
    347                                 scalar = Jdet*gauss->weight*((water_head*sediment_storing)+(dt*transfer));
     347                                scalar = Jdet*gauss->weight*((water_head*sediment_storing)+(transfer));
    348348                                for(int i=0;i<numnodes;i++)pe->values[i]+=scalar*basis[i];
    349349                        }
     
    596596               
    597597                if(epl_head>sediment_head){ 
    598                         if(sediment_head>=hmax){
    599                                 transfer=0.0;
    600                         }
    601                         else{
    602                                 transfer=(leakage);
    603                         }
    604                 }
    605                 else{
     598                        /* if(sediment_head>=hmax){ */
     599                        /*      transfer=0.0; */
     600                        /* } */
     601                        /* else{ */
     602                        /*      transfer=(leakage); */
     603                        /* } */
     604                        transfer=leakage*(1/(1+exp(-20.0*(hmax-sediment_head))));
     605                }
     606                else{
    606607                        transfer=(leakage);
    607608                }               
     
    639640               
    640641                if(epl_head>sediment_head){ 
    641                         if(sediment_head>=hmax){
    642                                 transfer=0.0;
    643                         }
    644                         else{
    645                                 transfer=(epl_head*leakage);
    646                         }
    647                 }
    648                 else{
     642                        /* if(sediment_head>=hmax){ */
     643                        /*      transfer=0.0; */
     644                        /* } */
     645                        /* else{ */
     646                        /*      transfer=(epl_head*leakage); */
     647                        /* } */
     648                        transfer=epl_head*leakage*(1/(1+exp(-20.0*(hmax-sediment_head))));
     649                }
     650                else{
    649651                        transfer=(epl_head*leakage);
    650652                }
Note: See TracChangeset for help on using the changeset viewer.