Changeset 19479


Ignore:
Timestamp:
08/04/15 16:22:56 (10 years ago)
Author:
seroussi
Message:

New: added new basalforcings and friction law classes for mismip+

Location:
issm/trunk-jpl/src
Files:
7 added
12 edited

Legend:

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

    r19386 r19479  
    828828                        iomodel->FetchDataToInput(elements,TemperatureEnum);
    829829                        break;
     830                case 7:
     831                        iomodel->FetchDataToInput(elements,FrictionCoefficientEnum);
     832                        iomodel->FetchDataToInput(elements,FrictionCoefficientcoulombEnum);
     833                        iomodel->FetchDataToInput(elements,FrictionPEnum);
     834                        iomodel->FetchDataToInput(elements,FrictionQEnum);
     835                        break;
    830836                default:
    831837                        _error_("not supported");
  • issm/trunk-jpl/src/c/classes/Elements/Element.cpp

    r19395 r19479  
    99#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
    1010#endif
     11#include <math.h>
    1112#include <stdio.h>
    1213#include <string.h>
     
    16481649}
    16491650/*}}}*/
     1651void       Element::MismipFloatingiceMeltingRate(){/*{{{*/
     1652
     1653        int numvertices      = this->GetNumberOfVertices();
     1654        IssmDouble  meltratefactor,thresholdthickness,upperdepthmelt;
     1655        IssmDouble* base     = xNew<IssmDouble>(numvertices);
     1656        IssmDouble* bed      = xNew<IssmDouble>(numvertices);
     1657        IssmDouble* values   = xNew<IssmDouble>(numvertices);
     1658
     1659        parameters->FindParam(&meltratefactor,BasalforcingsMeltrateFactorEnum);
     1660        parameters->FindParam(&thresholdthickness,BasalforcingsThresholdThicknessEnum);
     1661        parameters->FindParam(&upperdepthmelt,BasalforcingsUpperdepthMeltEnum);
     1662
     1663        this->GetInputListOnVertices(base,BaseEnum);
     1664        this->GetInputListOnVertices(bed,BedEnum);
     1665        for(int i=0;i<numvertices;i++){
     1666                if(base[i]<upperdepthmelt)  values[i]=0;
     1667                else values[i]=meltratefactor*(tanh(base[i]-bed[i])/thresholdthickness)*(upperdepthmelt-bed[i]);
     1668        }
     1669
     1670        this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum);
     1671        xDelete<IssmDouble>(base);
     1672        xDelete<IssmDouble>(bed);
     1673        xDelete<IssmDouble>(values);
     1674
     1675}/*}}}*/
    16501676ElementMatrix* Element::NewElementMatrix(int approximation_enum){/*{{{*/
    16511677        return new ElementMatrix(nodes,this->GetNumberOfNodes(),this->parameters,approximation_enum);
  • issm/trunk-jpl/src/c/classes/Elements/Element.h

    r19476 r19479  
    123123                void               MarshallElement(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction,int numanalyses);
    124124                void               MigrateGroundingLine(IssmDouble* sheet_ungrounding);
     125                void               MismipFloatingiceMeltingRate();
    125126                ElementMatrix*     NewElementMatrix(int approximation_enum=NoneApproximationEnum);
    126127                ElementMatrix*     NewElementMatrixCoupling(int number_nodes,int approximation_enum=NoneApproximationEnum);
  • issm/trunk-jpl/src/c/classes/Loads/Friction.cpp

    r19373 r19479  
    211211                        GetAlpha2WeertmanTemp(palpha2,gauss);
    212212                        break;
     213                case 7:
     214                        GetAlpha2Coulomb(palpha2,gauss);
     215                        break;
    213216          default:
    214217                        _error_("not supported");
    215218        }
    216219
     220}/*}}}*/
     221void Friction::GetAlpha2Coulomb(IssmDouble* palpha2, Gauss* gauss){/*{{{*/
     222
     223        /*This routine calculates the basal friction coefficient
     224          alpha2= drag^2 * Neff ^r * | vel | ^(s-1), with Neff=rho_ice*g*thickness+rho_ice*g*base, r=q/p and s=1/p**/
     225
     226        /*diverse: */
     227        IssmDouble  r,s;
     228        IssmDouble  drag_p, drag_q;
     229        IssmDouble  Neff;
     230        IssmDouble  thickness,base,bed,floatation_thickness;
     231        IssmDouble  vx,vy,vz,vmag;
     232        IssmDouble  drag_coefficient,drag_coefficient_coulomb;
     233        IssmDouble  alpha2,alpha2_coulomb;
     234
     235        /*Recover parameters: */
     236        element->GetInputValue(&drag_p,FrictionPEnum);
     237        element->GetInputValue(&drag_q,FrictionQEnum);
     238        element->GetInputValue(&thickness, gauss,ThicknessEnum);
     239        element->GetInputValue(&base, gauss,BaseEnum);
     240        element->GetInputValue(&bed, gauss,BedEnum);
     241        element->GetInputValue(&drag_coefficient, gauss,FrictionCoefficientEnum);
     242        element->GetInputValue(&drag_coefficient_coulomb, gauss,FrictionCoefficientcoulombEnum);
     243        IssmDouble rho_freshwater   = element->GetMaterialParameter(MaterialsRhoFreshwaterEnum);
     244        IssmDouble rho_water        = element->GetMaterialParameter(MaterialsRhoSeawaterEnum);
     245        IssmDouble rho_ice          = element->GetMaterialParameter(MaterialsRhoIceEnum);
     246        IssmDouble gravity          = element->GetMaterialParameter(ConstantsGEnum);
     247
     248        //compute r and q coefficients: */
     249        r=drag_q/drag_p;
     250        s=1./drag_p;
     251
     252        //From base and thickness, compute effective pressure when drag is viscous:
     253        Neff=gravity*(rho_ice*thickness+rho_water*base);
     254        if(Neff<0)Neff=0;
     255
     256        switch(dim){
     257                case 1:
     258                        element->GetInputValue(&vx,gauss,VxEnum);
     259                        vmag=sqrt(vx*vx);
     260                        break;
     261                case 2:
     262                        element->GetInputValue(&vx,gauss,VxEnum);
     263                        element->GetInputValue(&vy,gauss,VyEnum);
     264                        vmag=sqrt(vx*vx+vy*vy);
     265                        break;
     266                case 3:
     267                        element->GetInputValue(&vx,gauss,VxEnum);
     268                        element->GetInputValue(&vy,gauss,VyEnum);
     269                        element->GetInputValue(&vz,gauss,VzEnum);
     270                        vmag=sqrt(vx*vx+vy*vy+vz*vz);
     271                        break;
     272                default:
     273                        _error_("not supported");
     274        }
     275
     276        /*Check to prevent dividing by zero if vmag==0*/
     277        if(vmag==0. && (s-1.)<0.) alpha2=0.;
     278        else alpha2=drag_coefficient*drag_coefficient*pow(Neff,r)*pow(vmag,(s-1.));
     279
     280        floatation_thickness=0;
     281        if(bed<0) floatation_thickness=-rho_freshwater/rho_ice*bed;
     282        if(vmag==0.) alpha2_coulomb=0.;
     283        else alpha2_coulomb=drag_coefficient_coulomb*drag_coefficient_coulomb*rho_water*gravity*(thickness-floatation_thickness)/vmag;
     284
     285        if(alpha2_coulomb<alpha2) alpha2=alpha2_coulomb;
     286
     287        _assert_(!xIsNan<IssmDouble>(alpha2));
     288
     289        /*Assign output pointers:*/
     290        *palpha2=alpha2;
    217291}/*}}}*/
    218292void Friction::GetAlpha2Hydro(IssmDouble* palpha2, Gauss* gauss){/*{{{*/
  • issm/trunk-jpl/src/c/classes/Loads/Friction.h

    r18992 r19479  
    3333                void  GetAlphaHydroComplement(IssmDouble* alpha_complement,Gauss* gauss);
    3434                void  GetAlpha2(IssmDouble* palpha2,Gauss* gauss);
     35                void  GetAlpha2Coulomb(IssmDouble* palpha2,Gauss* gauss);
    3536                void  GetAlpha2Hydro(IssmDouble* palpha2,Gauss* gauss);
    3637                void  GetAlpha2Temp(IssmDouble* palpha2,Gauss* gauss);
  • issm/trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp

    r18521 r19479  
    2424                        LinearFloatingiceMeltingRatex(femmodel);
    2525                        break;
     26                case MismipFloatingMeltRateEnum:
     27                        if(VerboseSolution())_printf_(" call Mismip Floating melting rate module\n");
     28                        MismipFloatingiceMeltingRatex(femmodel);
     29                        break;
    2630                default:
    2731                        _error_("Basal forcing model "<<EnumToStringx(basalforcing_model)<<" not supported yet");
     
    3842
    3943}/*}}}*/
     44void MismipFloatingiceMeltingRatex(FemModel* femmodel){/*{{{*/
     45
     46        for(int i=0;i<femmodel->elements->Size();i++){
     47                Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
     48                element->MismipFloatingiceMeltingRate();
     49        }
     50
     51}/*}}}*/
  • issm/trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.h

    r18093 r19479  
    1111void FloatingiceMeltingRatex(FemModel* femmodel);
    1212void LinearFloatingiceMeltingRatex(FemModel* femmodel);
     13void MismipFloatingiceMeltingRatex(FemModel* femmodel);
    1314
    1415#endif  /* _FloatingiceMeltingRatex_H*/
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r19333 r19479  
    182182                        parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsUpperwaterElevationEnum));
    183183                        break;
     184                case MismipFloatingMeltRateEnum:
     185                        parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsMeltrateFactorEnum));
     186                        parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsThresholdThicknessEnum));
     187                        parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsUpperdepthMeltEnum));
     188                        break;
    184189                default:
    185190                        _error_("Basal forcing model "<<EnumToStringx(smb_model)<<" not supported yet");
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r19381 r19479  
    4848        BasalforcingsDeepwaterElevationEnum,
    4949        BasalforcingsUpperwaterElevationEnum,
     50        BasalforcingsMeltrateFactorEnum,
     51        BasalforcingsThresholdThicknessEnum,
     52        BasalforcingsUpperdepthMeltEnum,
    5053        FloatingMeltRateEnum,
    5154        LinearFloatingMeltRateEnum,
     55        MismipFloatingMeltRateEnum,
    5256        BedEnum,
    5357        BaseEnum,
     
    9397        FrictionAsEnum,
    9498        FrictionCoefficientEnum,
     99        FrictionCoefficientcoulombEnum,
    95100        FrictionPEnum,
    96101        FrictionQEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r19381 r19479  
    5454                case BasalforcingsDeepwaterElevationEnum : return "BasalforcingsDeepwaterElevation";
    5555                case BasalforcingsUpperwaterElevationEnum : return "BasalforcingsUpperwaterElevation";
     56                case BasalforcingsMeltrateFactorEnum : return "BasalforcingsMeltrateFactor";
     57                case BasalforcingsThresholdThicknessEnum : return "BasalforcingsThresholdThickness";
     58                case BasalforcingsUpperdepthMeltEnum : return "BasalforcingsUpperdepthMelt";
    5659                case FloatingMeltRateEnum : return "FloatingMeltRate";
    5760                case LinearFloatingMeltRateEnum : return "LinearFloatingMeltRate";
     61                case MismipFloatingMeltRateEnum : return "MismipFloatingMeltRate";
    5862                case BedEnum : return "Bed";
    5963                case BaseEnum : return "Base";
     
    99103                case FrictionAsEnum : return "FrictionAs";
    100104                case FrictionCoefficientEnum : return "FrictionCoefficient";
     105                case FrictionCoefficientcoulombEnum : return "FrictionCoefficientcoulomb";
    101106                case FrictionPEnum : return "FrictionP";
    102107                case FrictionQEnum : return "FrictionQ";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r19381 r19479  
    5454              else if (strcmp(name,"BasalforcingsDeepwaterElevation")==0) return BasalforcingsDeepwaterElevationEnum;
    5555              else if (strcmp(name,"BasalforcingsUpperwaterElevation")==0) return BasalforcingsUpperwaterElevationEnum;
     56              else if (strcmp(name,"BasalforcingsMeltrateFactor")==0) return BasalforcingsMeltrateFactorEnum;
     57              else if (strcmp(name,"BasalforcingsThresholdThickness")==0) return BasalforcingsThresholdThicknessEnum;
     58              else if (strcmp(name,"BasalforcingsUpperdepthMelt")==0) return BasalforcingsUpperdepthMeltEnum;
    5659              else if (strcmp(name,"FloatingMeltRate")==0) return FloatingMeltRateEnum;
    5760              else if (strcmp(name,"LinearFloatingMeltRate")==0) return LinearFloatingMeltRateEnum;
     61              else if (strcmp(name,"MismipFloatingMeltRate")==0) return MismipFloatingMeltRateEnum;
    5862              else if (strcmp(name,"Bed")==0) return BedEnum;
    5963              else if (strcmp(name,"Base")==0) return BaseEnum;
     
    99103              else if (strcmp(name,"FrictionAs")==0) return FrictionAsEnum;
    100104              else if (strcmp(name,"FrictionCoefficient")==0) return FrictionCoefficientEnum;
     105              else if (strcmp(name,"FrictionCoefficientcoulomb")==0) return FrictionCoefficientcoulombEnum;
    101106              else if (strcmp(name,"FrictionP")==0) return FrictionPEnum;
    102107              else if (strcmp(name,"FrictionQ")==0) return FrictionQEnum;
     
    132137              else if (strcmp(name,"HydrologydcSedimentTransmitivity")==0) return HydrologydcSedimentTransmitivityEnum;
    133138              else if (strcmp(name,"HydrologydcWaterCompressibility")==0) return HydrologydcWaterCompressibilityEnum;
    134               else if (strcmp(name,"HydrologydcSpceplHead")==0) return HydrologydcSpceplHeadEnum;
     139         else stage=2;
     140   }
     141   if(stage==2){
     142              if (strcmp(name,"HydrologydcSpceplHead")==0) return HydrologydcSpceplHeadEnum;
    135143              else if (strcmp(name,"HydrologydcMaskEplactiveNode")==0) return HydrologydcMaskEplactiveNodeEnum;
    136144              else if (strcmp(name,"HydrologydcMaskEplactiveElt")==0) return HydrologydcMaskEplactiveEltEnum;
    137145              else if (strcmp(name,"HydrologydcEplCompressibility")==0) return HydrologydcEplCompressibilityEnum;
    138146              else if (strcmp(name,"HydrologydcEplPorosity")==0) return HydrologydcEplPorosityEnum;
    139          else stage=2;
    140    }
    141    if(stage==2){
    142               if (strcmp(name,"HydrologydcEplInitialThickness")==0) return HydrologydcEplInitialThicknessEnum;
     147              else if (strcmp(name,"HydrologydcEplInitialThickness")==0) return HydrologydcEplInitialThicknessEnum;
    143148              else if (strcmp(name,"HydrologydcEplColapseThickness")==0) return HydrologydcEplColapseThicknessEnum;
    144149              else if (strcmp(name,"HydrologydcEplMaxThickness")==0) return HydrologydcEplMaxThicknessEnum;
     
    255260              else if (strcmp(name,"MaterialsMantleDensity")==0) return MaterialsMantleDensityEnum;
    256261              else if (strcmp(name,"MeshAverageVertexConnectivity")==0) return MeshAverageVertexConnectivityEnum;
    257               else if (strcmp(name,"MeshElements2d")==0) return MeshElements2dEnum;
     262         else stage=3;
     263   }
     264   if(stage==3){
     265              if (strcmp(name,"MeshElements2d")==0) return MeshElements2dEnum;
    258266              else if (strcmp(name,"MeshElements")==0) return MeshElementsEnum;
    259267              else if (strcmp(name,"MeshLowerelements")==0) return MeshLowerelementsEnum;
    260268              else if (strcmp(name,"MeshNumberofelements2d")==0) return MeshNumberofelements2dEnum;
    261269              else if (strcmp(name,"MeshNumberofelements")==0) return MeshNumberofelementsEnum;
    262          else stage=3;
    263    }
    264    if(stage==3){
    265               if (strcmp(name,"MeshNumberoflayers")==0) return MeshNumberoflayersEnum;
     270              else if (strcmp(name,"MeshNumberoflayers")==0) return MeshNumberoflayersEnum;
    266271              else if (strcmp(name,"MeshNumberofvertices2d")==0) return MeshNumberofvertices2dEnum;
    267272              else if (strcmp(name,"MeshNumberofvertices")==0) return MeshNumberofverticesEnum;
     
    378383              else if (strcmp(name,"SurfaceforcingsDpermil")==0) return SurfaceforcingsDpermilEnum;
    379384              else if (strcmp(name,"SMBgradients")==0) return SMBgradientsEnum;
    380               else if (strcmp(name,"SurfaceforcingsMonthlytemperatures")==0) return SurfaceforcingsMonthlytemperaturesEnum;
     385         else stage=4;
     386   }
     387   if(stage==4){
     388              if (strcmp(name,"SurfaceforcingsMonthlytemperatures")==0) return SurfaceforcingsMonthlytemperaturesEnum;
    381389              else if (strcmp(name,"SurfaceforcingsHref")==0) return SurfaceforcingsHrefEnum;
    382390              else if (strcmp(name,"SurfaceforcingsSmbref")==0) return SurfaceforcingsSmbrefEnum;
    383391              else if (strcmp(name,"SurfaceforcingsBPos")==0) return SurfaceforcingsBPosEnum;
    384392              else if (strcmp(name,"SurfaceforcingsBNeg")==0) return SurfaceforcingsBNegEnum;
    385          else stage=4;
    386    }
    387    if(stage==4){
    388               if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum;
     393              else if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum;
    389394              else if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum;
    390395              else if (strcmp(name,"SurfaceforcingsAccumulation")==0) return SurfaceforcingsAccumulationEnum;
     
    501506              else if (strcmp(name,"IntParam")==0) return IntParamEnum;
    502507              else if (strcmp(name,"IntVecParam")==0) return IntVecParamEnum;
    503               else if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
     508         else stage=5;
     509   }
     510   if(stage==5){
     511              if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
    504512              else if (strcmp(name,"Matice")==0) return MaticeEnum;
    505513              else if (strcmp(name,"Matdamageice")==0) return MatdamageiceEnum;
    506514              else if (strcmp(name,"Matpar")==0) return MatparEnum;
    507515              else if (strcmp(name,"Node")==0) return NodeEnum;
    508          else stage=5;
    509    }
    510    if(stage==5){
    511               if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
     516              else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
    512517              else if (strcmp(name,"NumericalfluxType")==0) return NumericalfluxTypeEnum;
    513518              else if (strcmp(name,"Param")==0) return ParamEnum;
     
    624629              else if (strcmp(name,"DrivingStressX")==0) return DrivingStressXEnum;
    625630              else if (strcmp(name,"DrivingStressY")==0) return DrivingStressYEnum;
    626               else if (strcmp(name,"SigmaNN")==0) return SigmaNNEnum;
     631         else stage=6;
     632   }
     633   if(stage==6){
     634              if (strcmp(name,"SigmaNN")==0) return SigmaNNEnum;
    627635              else if (strcmp(name,"StressTensor")==0) return StressTensorEnum;
    628636              else if (strcmp(name,"StressTensorxx")==0) return StressTensorxxEnum;
    629637              else if (strcmp(name,"StressTensorxy")==0) return StressTensorxyEnum;
    630638              else if (strcmp(name,"StressTensorxz")==0) return StressTensorxzEnum;
    631          else stage=6;
    632    }
    633    if(stage==6){
    634               if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum;
     639              else if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum;
    635640              else if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum;
    636641              else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum;
     
    747752              else if (strcmp(name,"Outputdefinition58")==0) return Outputdefinition58Enum;
    748753              else if (strcmp(name,"Outputdefinition59")==0) return Outputdefinition59Enum;
    749               else if (strcmp(name,"Outputdefinition60")==0) return Outputdefinition60Enum;
     754         else stage=7;
     755   }
     756   if(stage==7){
     757              if (strcmp(name,"Outputdefinition60")==0) return Outputdefinition60Enum;
    750758              else if (strcmp(name,"Outputdefinition61")==0) return Outputdefinition61Enum;
    751759              else if (strcmp(name,"Outputdefinition62")==0) return Outputdefinition62Enum;
    752760              else if (strcmp(name,"Outputdefinition63")==0) return Outputdefinition63Enum;
    753761              else if (strcmp(name,"Outputdefinition64")==0) return Outputdefinition64Enum;
    754          else stage=7;
    755    }
    756    if(stage==7){
    757               if (strcmp(name,"Outputdefinition65")==0) return Outputdefinition65Enum;
     762              else if (strcmp(name,"Outputdefinition65")==0) return Outputdefinition65Enum;
    758763              else if (strcmp(name,"Outputdefinition66")==0) return Outputdefinition66Enum;
    759764              else if (strcmp(name,"Outputdefinition67")==0) return Outputdefinition67Enum;
     
    870875              else if (strcmp(name,"ToolkitsOptionsAnalyses")==0) return ToolkitsOptionsAnalysesEnum;
    871876              else if (strcmp(name,"ToolkitsOptionsStrings")==0) return ToolkitsOptionsStringsEnum;
    872               else if (strcmp(name,"QmuErrName")==0) return QmuErrNameEnum;
     877         else stage=8;
     878   }
     879   if(stage==8){
     880              if (strcmp(name,"QmuErrName")==0) return QmuErrNameEnum;
    873881              else if (strcmp(name,"QmuInName")==0) return QmuInNameEnum;
    874882              else if (strcmp(name,"QmuOutName")==0) return QmuOutNameEnum;
    875883              else if (strcmp(name,"Regular")==0) return RegularEnum;
    876884              else if (strcmp(name,"Scaled")==0) return ScaledEnum;
    877          else stage=8;
    878    }
    879    if(stage==8){
    880               if (strcmp(name,"Separate")==0) return SeparateEnum;
     885              else if (strcmp(name,"Separate")==0) return SeparateEnum;
    881886              else if (strcmp(name,"Sset")==0) return SsetEnum;
    882887              else if (strcmp(name,"Verbose")==0) return VerboseEnum;
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r19381 r19479  
    4646def BasalforcingsDeepwaterElevationEnum(): return StringToEnum("BasalforcingsDeepwaterElevation")[0]
    4747def BasalforcingsUpperwaterElevationEnum(): return StringToEnum("BasalforcingsUpperwaterElevation")[0]
     48def BasalforcingsMeltrateFactorEnum(): return StringToEnum("BasalforcingsMeltrateFactor")[0]
     49def BasalforcingsThresholdThicknessEnum(): return StringToEnum("BasalforcingsThresholdThickness")[0]
     50def BasalforcingsUpperdepthMeltEnum(): return StringToEnum("BasalforcingsUpperdepthMelt")[0]
    4851def FloatingMeltRateEnum(): return StringToEnum("FloatingMeltRate")[0]
    4952def LinearFloatingMeltRateEnum(): return StringToEnum("LinearFloatingMeltRate")[0]
     53def MismipFloatingMeltRateEnum(): return StringToEnum("MismipFloatingMeltRate")[0]
    5054def BedEnum(): return StringToEnum("Bed")[0]
    5155def BaseEnum(): return StringToEnum("Base")[0]
     
    9195def FrictionAsEnum(): return StringToEnum("FrictionAs")[0]
    9296def FrictionCoefficientEnum(): return StringToEnum("FrictionCoefficient")[0]
     97def FrictionCoefficientcoulombEnum(): return StringToEnum("FrictionCoefficientcoulomb")[0]
    9398def FrictionPEnum(): return StringToEnum("FrictionP")[0]
    9499def FrictionQEnum(): return StringToEnum("FrictionQ")[0]
Note: See TracChangeset for help on using the changeset viewer.