Changeset 20616


Ignore:
Timestamp:
05/16/16 15:59:49 (9 years ago)
Author:
Mathieu Morlighem
Message:

NEW: enabling inversions for frictiontemp

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

Legend:

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

    r20156 r20616  
    4949                        GetAlphaHydroComplement(palpha_complement,gauss);
    5050                        break;
     51                case 4:
     52                        GetAlphaTempComplement(palpha_complement,gauss);
     53                        break;
    5154          default:
    5255                        _error_("not supported");
     
    5457
    5558}/*}}}*/
    56 
    5759void Friction::GetAlphaViscousComplement(IssmDouble* palpha_complement, Gauss* gauss){/*{{{*/
    5860
     
    191193}
    192194/*}}}*/
     195void Friction::GetAlphaTempComplement(IssmDouble* palpha_complement, Gauss* gauss){/*{{{*/
     196        /*Here, we want to parameterize the friction as a function of temperature
     197         *
     198         * alpha2 = alpha2_viscous * 1/f(T)
     199         *
     200         * where f(T) = exp((T-Tpmp)/gamma)
     201         */
     202
     203        /*Intermediaries: */
     204        IssmDouble  f,T,pressure,Tpmp,gamma;
     205        IssmDouble  alpha_complement;
     206
     207        /*Get viscous part*/
     208        this->GetAlphaViscousComplement(&alpha_complement,gauss);
     209
     210        /*Get pressure melting point (Tpmp) for local pressure and get current temperature*/
     211        element->GetInputValue(&T,gauss,TemperatureEnum);
     212        element->GetInputValue(&pressure,gauss,PressureEnum);
     213        Tpmp = element->TMeltingPoint(pressure);
     214
     215        /*Compute scaling parameter*/
     216        element->parameters->FindParam(&gamma,FrictionGammaEnum);
     217        alpha_complement = alpha_complement/ exp((T-Tpmp)/gamma);
     218
     219        /*Assign output pointers:*/
     220        *palpha_complement=alpha_complement;
     221}/*}}}*/
    193222void Friction::GetAlpha2(IssmDouble* palpha2, Gauss* gauss){/*{{{*/
    194223
  • issm/trunk-jpl/src/c/classes/Loads/Friction.h

    r19740 r20616  
    3232                void  GetAlphaViscousComplement(IssmDouble* alpha_complement,Gauss* gauss);
    3333                void  GetAlphaHydroComplement(IssmDouble* alpha_complement,Gauss* gauss);
     34                void  GetAlphaTempComplement(IssmDouble* alpha_complement,Gauss* gauss);
    3435                void  GetAlpha2(IssmDouble* palpha2,Gauss* gauss);
    3536                void  GetAlpha2Coulomb(IssmDouble* palpha2,Gauss* gauss);
Note: See TracChangeset for help on using the changeset viewer.