Ignore:
Timestamp:
07/18/22 12:42:48 (3 years ago)
Author:
vverjans
Message:

CHG: allowing stochastic water pressure for frictionschoof

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/Loads/Friction.cpp

    r26676 r27161  
    749749         *               C |u_b|^(m-1)
    750750         * alpha2= __________________________
    751          *          (1+(C/(Cmax N))^1/m |u_b| )^m
     751         *          (1+(C/(Cmax Neff))^1/m |u_b| )^m
    752752         *
    753753         * */
     
    764764        C = coeff*coeff;
    765765
    766         /*Get effective pressure and velocity magnitude*/
    767         IssmDouble N  = EffectivePressure(gauss);
     766        /*Get effective pressure*/
     767        bool ispwStochastic;
     768        IssmDouble Neff;
     769        element->parameters->FindParam(&ispwStochastic,StochasticForcingIsWaterPressureEnum);
     770        if(ispwStochastic){
     771                /*Retrieve stochastic water pressure and compute ice pressure*/
     772                IssmDouble p_ice,p_water,Neff_limit;
     773                element->GetInputValue(&p_water,gauss,FrictionSchoofWaterPressureEnum);
     774                element->parameters->FindParam(&Neff_limit,FrictionEffectivePressureLimitEnum);
     775                p_ice = IcePressure(gauss);
     776                Neff  = max(Neff_limit*p_ice, p_ice - p_water);
     777        }       
     778        else{
     779                /*Compute effective pressure directly*/
     780                Neff = EffectivePressure(gauss);
     781        }
     782
     783        /*Get velocity magnitude*/
    768784        IssmDouble ub = VelMag(gauss);
    769785
    770786        /*Compute alpha^2*/
    771         if((ub<1e-10) ||(N==0.0)){
     787        if((ub<1e-10) ||(Neff==0.0)){
    772788                alpha2 = 0.;
    773789        }
    774790        else{
    775                 alpha2= (C*pow(ub,m-1.)) / pow(1.+  pow(C/(Cmax*N),1./m)*ub,m);
     791                alpha2= (C*pow(ub,m-1.)) / pow(1.+  pow(C/(Cmax*Neff),1./m)*ub,m);
    776792        }
    777793
Note: See TracChangeset for help on using the changeset viewer.