[24684] | 1 | Index: ../trunk-jpl/src/c/classes/Loads/Friction.cpp
|
---|
| 2 | ===================================================================
|
---|
| 3 | --- ../trunk-jpl/src/c/classes/Loads/Friction.cpp (revision 24550)
|
---|
| 4 | +++ ../trunk-jpl/src/c/classes/Loads/Friction.cpp (revision 24551)
|
---|
| 5 | @@ -378,8 +378,8 @@
|
---|
| 6 | */
|
---|
| 7 |
|
---|
| 8 | /*Intermediaries: */
|
---|
| 9 | - IssmDouble T,Tpmp,deltaT,deltaTref,pressure;
|
---|
| 10 | - IssmDouble alpha2,time,gamma;
|
---|
| 11 | + IssmDouble T,Tpmp,deltaT,deltaTref,pressure,diff,drag_coefficient;
|
---|
| 12 | + IssmDouble alpha2,time,gamma,ref,alp_new,alphascaled;
|
---|
| 13 | const IssmDouble yts = 365*24*3600.;
|
---|
| 14 |
|
---|
| 15 | /*Get viscous part*/
|
---|
| 16 | @@ -387,6 +387,11 @@
|
---|
| 17 |
|
---|
| 18 | /*Get delta Refs*/
|
---|
| 19 | element->GetInputValue(&deltaTref,gauss,FrictionPressureAdjustedTemperatureEnum);
|
---|
| 20 | + element->GetInputValue(&drag_coefficient, gauss,FrictionCoefficientEnum);
|
---|
| 21 | + /*New*/
|
---|
| 22 | + /*element->GetInputValue(&deltaTrefsfc,gauss,FrictionSurfaceTemperatureEnum);
|
---|
| 23 | + * element->GetInputValue(&Tpdd,gauss,TemperaturePDDEnum);
|
---|
| 24 | + * */
|
---|
| 25 |
|
---|
| 26 | /*Compute delta T*/
|
---|
| 27 | element->GetInputValue(&T,gauss,TemperatureEnum);
|
---|
| 28 | @@ -394,22 +399,21 @@
|
---|
| 29 | Tpmp = element->TMeltingPoint(pressure);
|
---|
| 30 | deltaT = T-Tpmp;
|
---|
| 31 |
|
---|
| 32 | +
|
---|
| 33 | /*Compute gamma*/
|
---|
| 34 | element->parameters->FindParam(&time,TimeEnum);
|
---|
| 35 | element->parameters->FindParam(&gamma,FrictionGammaEnum);
|
---|
| 36 | - //if(time<25e3*yts){
|
---|
| 37 | - // gamma = 10.;
|
---|
| 38 | - //}
|
---|
| 39 | - //else{
|
---|
| 40 | - // gamma = 5.;
|
---|
| 41 | - //}
|
---|
| 42 | - //gamma = 5.;
|
---|
| 43 |
|
---|
| 44 | - /*Compute scaling parameter*/
|
---|
| 45 | - alpha2 = alpha2 * exp((deltaTref - deltaT)/(2*gamma));
|
---|
| 46 | + ref = exp(deltaTref/gamma);
|
---|
| 47 | + alp_new = ref/exp(deltaT/gamma);
|
---|
| 48 |
|
---|
| 49 | + alphascaled = sqrt(alp_new)*drag_coefficient;
|
---|
| 50 | + if (alphascaled > 300) alp_new = (300/drag_coefficient)*(300/drag_coefficient);
|
---|
| 51 | +
|
---|
| 52 | + alp_new=alp_new*alpha2;
|
---|
| 53 | +
|
---|
| 54 | /*Assign output pointers:*/
|
---|
| 55 | - *palpha2=alpha2;
|
---|
| 56 | + *palpha2=alp_new;
|
---|
| 57 | }/*}}}*/
|
---|
| 58 | void Friction::GetAlpha2Viscous(IssmDouble* palpha2, Gauss* gauss){/*{{{*/
|
---|
| 59 |
|
---|