Changeset 19725


Ignore:
Timestamp:
11/16/15 16:29:17 (9 years ago)
Author:
Mathieu Morlighem
Message:

CHG: working on the RHS of Hydro Aleah's model

Location:
issm/trunk-jpl/src
Files:
1 added
20 edited

Legend:

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

    r19720 r19725  
    44#include "../shared/shared.h"
    55#include "../modules/modules.h"
     6
     7/*Define 2 hardcoded parameters*/
     8#define OMEGA 0.001    // parameter controlling transition to nonlinear resistance in basal system (dimensionless)
     9#define NU    1.787e-6 //kinematic water viscosity m^2/s
    610
    711/*Model processing*/
     
    6468        iomodel->FetchDataToInput(elements,MaskGroundediceLevelsetEnum);
    6569        iomodel->FetchDataToInput(elements,BasalforcingsGroundediceMeltingRateEnum);
     70        iomodel->FetchDataToInput(elements,BasalforcingsGeothermalfluxEnum);
    6671        iomodel->FetchDataToInput(elements,HydrologyHeadEnum);
    6772        iomodel->FetchDataToInput(elements,HydrologyGapHeightEnum);
     
    96101
    97102        /*Intermediaries */
    98         IssmDouble conductivity;
    99103        IssmDouble Jdet;
    100         IssmDouble gap,reynolds;
    101104        IssmDouble* xyz_list = NULL;
    102 
    103         /*Hard coded parameters*/
    104         IssmDouble omega = 0.001;    // parameter controlling transition to nonlinear resistance in basal system (dimensionless)
    105         IssmDouble nu    = 1.787e-6; // kinematic water viscosity m^2/s
    106105
    107106        /*Fetch number of nodes and dof for this finite element*/
     
    114113        /*Retrieve all inputs and parameters*/
    115114        element->GetVerticesCoordinates(&xyz_list);
    116         IssmDouble  g = element->GetMaterialParameter(ConstantsGEnum);
    117         Input* reynolds_input = element->GetInput(HydrologyReynoldsEnum);  _assert_(reynolds_input);
    118         Input* gap_input      = element->GetInput(HydrologyGapHeightEnum); _assert_(gap_input);
     115
     116        /*Get conductivity from inputs*/
     117        IssmDouble conductivity = GetConductivity(element);
    119118
    120119        /* Start  looping on the number of gaussian points: */
     
    125124                element->JacobianDeterminant(&Jdet,xyz_list,gauss);
    126125                element->NodalFunctionsDerivatives(dbasis,xyz_list,gauss);
    127 
    128                 /*Compute conductivity*/
    129                 reynolds_input->GetInputValue(&reynolds,gauss);
    130                 gap_input->GetInputValue(&gap,gauss);
    131                 conductivity = pow(gap,3)*g/(12.*nu*(1+omega*reynolds));
    132126
    133127                for(int i=0;i<numnodes;i++){
     
    136130                        }
    137131                }
    138 
    139 
    140132        }
    141133
     
    147139}/*}}}*/
    148140ElementVector* HydrologySommersAnalysis::CreatePVector(Element* element){/*{{{*/
    149         _error_("STOP");
    150141
    151142        /*Skip if water or ice shelf element*/
     
    153144
    154145        /*Intermediaries */
    155         IssmDouble  Jdet,dt;
    156         IssmDouble  mb,oldw;
     146        IssmDouble  Jdet,meltrate,G,dh[2],B,A,n;
     147        IssmDouble  gap,bed,thickness,head;
    157148        IssmDouble* xyz_list = NULL;
    158149
     
    166157        /*Retrieve all inputs and parameters*/
    167158        element->GetVerticesCoordinates(&xyz_list);
    168         element->FindParam(&dt,TimesteppingTimeStepEnum);
    169         Input* mb_input   = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(mb_input);
    170         Input* oldw_input = element->GetInput(WaterColumnOldEnum);                      _assert_(oldw_input);
    171 
    172         /*Initialize mb_correction to 0, do not forget!:*/
     159        IssmDouble  latentheat      = element->GetMaterialParameter(MaterialsLatentheatEnum);
     160        IssmDouble  g               = element->GetMaterialParameter(ConstantsGEnum);
     161        IssmDouble  rho_ice         = element->GetMaterialParameter(MaterialsRhoIceEnum);
     162        IssmDouble  rho_water       = element->GetMaterialParameter(MaterialsRhoFreshwaterEnum);
     163        Input* geothermalflux_input = element->GetInput(BasalforcingsGeothermalfluxEnum);_assert_(geothermalflux_input);
     164        Input* head_input           = element->GetInput(HydrologyHeadEnum);              _assert_(head_input);
     165        Input* gap_input            = element->GetInput(HydrologyGapHeightEnum);         _assert_(gap_input);
     166        Input* thickness_input      = element->GetInput(ThicknessEnum);                  _assert_(thickness_input);
     167        Input* base_input           = element->GetInput(BaseEnum);                       _assert_(base_input);
     168        Input* B_input              = element->GetInput(MaterialsRheologyBEnum);         _assert_(B_input);
     169        Input* n_input              = element->GetInput(MaterialsRheologyNEnum);         _assert_(n_input);
     170
     171        /*Get conductivity from inputs*/
     172        IssmDouble conductivity = GetConductivity(element);
     173
    173174        /* Start  looping on the number of gaussian points: */
    174175        Gauss* gauss=element->NewGauss(2);
     
    178179                element->JacobianDeterminant(&Jdet,xyz_list,gauss);
    179180                element->NodalFunctions(basis,gauss);
    180 
    181                 mb_input->GetInputValue(&mb,gauss);
    182                 oldw_input->GetInputValue(&oldw,gauss);
    183 
    184                 if(dt!=0.){
    185                         for(int i=0;i<numnodes;i++) pe->values[i]+=Jdet*gauss->weight*(oldw+dt*mb)*basis[i];
    186                 }
    187                 else{
    188                         for(int i=0;i<numnodes;i++) pe->values[i]+=Jdet*gauss->weight*mb*basis[i];
    189                 }
     181                geothermalflux_input->GetInputValue(&G,gauss);
     182                base_input->GetInputValue(&bed,gauss);
     183                thickness_input->GetInputValue(&thickness,gauss);
     184                gap_input->GetInputValue(&gap,gauss);
     185                head_input->GetInputValue(&head,gauss);
     186                head_input->GetInputDerivativeValue(&dh[0],xyz_list,gauss);
     187
     188                /*Get ice A parameter*/
     189                B_input->GetInputValue(&B,gauss);
     190                n_input->GetInputValue(&n,gauss);
     191                A=pow(B,-n);
     192
     193                /*Get water and ice pressures*/
     194                IssmDouble pressure_ice   = rho_ice*g*thickness;    _assert_(pressure_ice>0.);
     195                IssmDouble pressure_water = rho_water*g*(head-bed);
     196                _assert_(pressure_water<=pressure_ice);
     197
     198                meltrate = 1/latentheat*(G+rho_water*g*conductivity*(dh[0]*dh[0]+dh[1]*dh[1]));
     199                _assert_(meltrate>0.);
     200
     201                for(int i=0;i<numnodes;i++) pe->values[i]+=Jdet*gauss->weight*
     202                 (
     203                  meltrate*(1/rho_water-1/rho_ice)
     204                  +A*pow(fabs(pressure_ice-pressure_water),n-1)*(pressure_ice-pressure_water)*gap
     205                  )*basis[i];
    190206        }
    191207
     
    205221
    206222        /*Intermediary*/
     223        IssmDouble dh[3];
    207224        int* doflist = NULL;
     225        IssmDouble* xyz_list = NULL;
    208226
    209227        /*Fetch number of nodes for this finite element*/
     
    214232        IssmDouble* values = xNew<IssmDouble>(numnodes);
    215233
     234        /*Get thickness and base on nodes to apply cap on water head*/
     235        IssmDouble* thickness = xNew<IssmDouble>(numnodes);
     236        IssmDouble* bed       = xNew<IssmDouble>(numnodes);
     237        IssmDouble  rho_ice   = element->GetMaterialParameter(MaterialsRhoIceEnum);
     238        IssmDouble  rho_water = element->GetMaterialParameter(MaterialsRhoFreshwaterEnum);
     239        element->GetInputListOnNodes(&thickness[0],ThicknessEnum);
     240        element->GetInputListOnNodes(&bed[0],BaseEnum);
     241
    216242        /*Use the dof list to index into the solution vector: */
    217243        for(int i=0;i<numnodes;i++){
    218244                values[i]=solution[doflist[i]];
     245
     246                /*make sure that p_water<p_ice ->  h<rho_i H/rho_w + zb*/
     247                if(values[i]>rho_ice*thickness[i]/rho_water+bed[i]){
     248                        values[i] = rho_ice*thickness[i]/rho_water+bed[i];
     249                }
     250
    219251                if(xIsNan<IssmDouble>(values[i])) _error_("NaN found in solution vector");
    220252        }
     
    223255        element->AddInput(HydrologyHeadEnum,values,element->GetElementType());
    224256
     257        /*Update reynolds number according to new solution*/
     258        element->GetVerticesCoordinates(&xyz_list);
     259        Input* head_input = element->GetInput(HydrologyHeadEnum);_assert_(head_input);
     260        head_input->GetInputDerivativeAverageValue(&dh[0],xyz_list);
     261        IssmDouble conductivity = GetConductivity(element);
     262        IssmDouble reynolds = conductivity*sqrt(dh[0]*dh[0]+dh[1]*dh[1])/(2.*NU);
     263        element->AddInput(HydrologyReynoldsEnum,&reynolds,P0Enum);
     264
    225265        /*Free ressources:*/
    226266        xDelete<IssmDouble>(values);
     267        xDelete<IssmDouble>(thickness);
     268        xDelete<IssmDouble>(bed);
     269        xDelete<IssmDouble>(xyz_list);
    227270        xDelete<int>(doflist);
    228271}/*}}}*/
     
    231274        return;
    232275}/*}}}*/
     276
     277/*Additional methods*/
     278IssmDouble HydrologySommersAnalysis::GetConductivity(Element* element){/*{{{*/
     279
     280        /*Intermediaries */
     281        IssmDouble gap,reynolds;
     282
     283        /*Get gravity from parameters*/
     284        IssmDouble  g = element->GetMaterialParameter(ConstantsGEnum);
     285
     286        /*Get Reynolds and gap average values*/
     287        Input* reynolds_input = element->GetInput(HydrologyReynoldsEnum);  _assert_(reynolds_input);
     288        Input* gap_input      = element->GetInput(HydrologyGapHeightEnum); _assert_(gap_input);
     289        reynolds_input->GetInputAverage(&reynolds);
     290        gap_input->GetInputAverage(&gap);
     291
     292        /*Compute conductivity*/
     293        IssmDouble conductivity = pow(gap,3)*g/(12.*NU*(1+OMEGA*reynolds));
     294        _assert_(conductivity>0);
     295
     296        /*Clean up and return*/
     297        return conductivity;
     298}/*}}}*/
  • issm/trunk-jpl/src/c/analyses/HydrologySommersAnalysis.h

    r19720 r19725  
    3030                void           InputUpdateFromSolution(IssmDouble* solution,Element* element);
    3131                void           UpdateConstraints(FemModel* femmodel);
     32
     33                /*Intermediaries*/
     34                IssmDouble GetConductivity(Element* element);
    3235};
    3336#endif
  • issm/trunk-jpl/src/c/classes/Inputs/BoolInput.h

    r19554 r19725  
    5252                void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
    5353                void GetInputAverage(IssmDouble* pvalue){_error_("not implemented yet");};
     54                void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");};
    5455                void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");};
    5556                void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
  • issm/trunk-jpl/src/c/classes/Inputs/ControlInput.h

    r19554 r19725  
    5858                void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss);
    5959                void GetInputAverage(IssmDouble* pvalue);
     60                void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");};
    6061                void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");};
    6162                void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
  • issm/trunk-jpl/src/c/classes/Inputs/DatasetInput.h

    r19554 r19725  
    5454                void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");};
    5555                void GetInputAverage(IssmDouble* pvalue){_error_("not implemented yet");};
     56                void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");};
    5657                void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");};
    5758                void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
  • issm/trunk-jpl/src/c/classes/Inputs/DoubleArrayInput.h

    r19554 r19725  
    5454                void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");};
    5555                void GetInputAverage(IssmDouble* pvalue){_error_("not implemented yet");};
     56                void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");};
    5657                void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");};
    5758                void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
  • issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.h

    r19554 r19725  
    5555                void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");};
    5656                void GetInputAverage(IssmDouble* pvalue);
     57                void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");};
    5758                void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");};
    5859                void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
  • issm/trunk-jpl/src/c/classes/Inputs/Input.h

    r19554 r19725  
    3434                virtual void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, Gauss* gauss)=0;
    3535                virtual void GetInputAverage(IssmDouble* pvalue)=0;
     36                virtual void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list)=0;
    3637                virtual void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes)=0;
    3738                virtual void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime)=0;
  • issm/trunk-jpl/src/c/classes/Inputs/Inputs.h

    r17513 r19725  
    3939                IssmDouble  MinAbs(int enumtype);
    4040                void        GetInputAverage(IssmDouble* pvalue, int enum_type);
     41                void        GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");};
    4142                void        GetInputValue(bool* pvalue,int enum_type);
    4243                void        GetInputValue(int* pvalue,int enum_type);
  • issm/trunk-jpl/src/c/classes/Inputs/IntInput.h

    r19554 r19725  
    5656                void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");};
    5757                void GetInputAverage(IssmDouble* pvalue){_error_("not implemented yet");};
     58                void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");};
    5859                void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");};
    5960                void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
  • issm/trunk-jpl/src/c/classes/Inputs/PentaInput.h

    r19554 r19725  
    5656                void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss);
    5757                void GetInputAverage(IssmDouble* pvalue);
     58                void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");};
    5859                void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");};
    5960                void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
  • issm/trunk-jpl/src/c/classes/Inputs/SegInput.h

    r19554 r19725  
    5757                void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss);
    5858                void GetInputAverage(IssmDouble* pvalue);
     59                void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");};
    5960                void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");};
    6061                void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
  • issm/trunk-jpl/src/c/classes/Inputs/TetraInput.h

    r19554 r19725  
    5757                void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss);
    5858                void GetInputAverage(IssmDouble* pvalue);
     59                void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");};
    5960                void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes);
    6061                void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime);
  • issm/trunk-jpl/src/c/classes/Inputs/TransientInput.h

    r19554 r19725  
    6161                void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss);
    6262                void GetInputAverage(IssmDouble* pvalue);
     63                void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");};
    6364                void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes);
    6465                void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime);
  • issm/trunk-jpl/src/c/classes/Inputs/TriaInput.cpp

    r19554 r19725  
    192192}
    193193/*}}}*/
     194void TriaInput::GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){/*{{{*/
     195
     196        int        numnodes  = this->NumberofNodes(this->interpolation_type);
     197        IssmDouble numnodesd = reCast<int,IssmDouble>(numnodes);
     198        IssmDouble dvalue[3];
     199
     200        derivativevalues[0] = 0.;
     201        derivativevalues[1] = 0.;
     202
     203        GaussTria* gauss=new GaussTria();
     204        for(int iv=0;iv<numnodes;iv++){
     205                gauss->GaussNode(this->interpolation_type,iv);
     206                this->GetInputDerivativeValue(&dvalue[0],xyz_list,gauss);
     207
     208                derivativevalues[0] += dvalue[0]/numnodesd;
     209                derivativevalues[1] += dvalue[1]/numnodesd;
     210        }
     211        delete gauss;
     212}
     213/*}}}*/
    194214void TriaInput::GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){/*{{{*/
    195215
  • issm/trunk-jpl/src/c/classes/Inputs/TriaInput.h

    r19554 r19725  
    5757                void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss);
    5858                void GetInputAverage(IssmDouble* pvalue);
     59                void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list);
    5960                void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes);
    6061                void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime);
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r19720 r19725  
    164164        HydrologyReynoldsEnum,
    165165        HydrologySpcheadEnum,
     166        HydrologyConductivityEnum,
    166167        IndependentObjectEnum,
    167168        InversionControlParametersEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r19720 r19725  
    170170                case HydrologyReynoldsEnum : return "HydrologyReynolds";
    171171                case HydrologySpcheadEnum : return "HydrologySpchead";
     172                case HydrologyConductivityEnum : return "HydrologyConductivity";
    172173                case IndependentObjectEnum : return "IndependentObject";
    173174                case InversionControlParametersEnum : return "InversionControlParameters";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r19720 r19725  
    173173              else if (strcmp(name,"HydrologyReynolds")==0) return HydrologyReynoldsEnum;
    174174              else if (strcmp(name,"HydrologySpchead")==0) return HydrologySpcheadEnum;
     175              else if (strcmp(name,"HydrologyConductivity")==0) return HydrologyConductivityEnum;
    175176              else if (strcmp(name,"IndependentObject")==0) return IndependentObjectEnum;
    176177              else if (strcmp(name,"InversionControlParameters")==0) return InversionControlParametersEnum;
     
    259260              else if (strcmp(name,"MaterialsRhoSeawater")==0) return MaterialsRhoSeawaterEnum;
    260261              else if (strcmp(name,"MaterialsRhoFreshwater")==0) return MaterialsRhoFreshwaterEnum;
    261               else if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum;
    262262         else stage=3;
    263263   }
    264264   if(stage==3){
    265               if (strcmp(name,"MaterialsThermalExchangeVelocity")==0) return MaterialsThermalExchangeVelocityEnum;
     265              if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum;
     266              else if (strcmp(name,"MaterialsThermalExchangeVelocity")==0) return MaterialsThermalExchangeVelocityEnum;
    266267              else if (strcmp(name,"MaterialsThermalconductivity")==0) return MaterialsThermalconductivityEnum;
    267268              else if (strcmp(name,"MaterialsTemperateiceconductivity")==0) return MaterialsTemperateiceconductivityEnum;
     
    382383              else if (strcmp(name,"SmbDlwrf")==0) return SmbDlwrfEnum;
    383384              else if (strcmp(name,"SmbP")==0) return SmbPEnum;
    384               else if (strcmp(name,"SmbSwf")==0) return SmbSwfEnum;
    385385         else stage=4;
    386386   }
    387387   if(stage==4){
    388               if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum;
     388              if (strcmp(name,"SmbSwf")==0) return SmbSwfEnum;
     389              else if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum;
    389390              else if (strcmp(name,"SmbPAir")==0) return SmbPAirEnum;
    390391              else if (strcmp(name,"SmbTmean")==0) return SmbTmeanEnum;
     
    505506              else if (strcmp(name,"SurfaceNormalVelocity")==0) return SurfaceNormalVelocityEnum;
    506507              else if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum;
    507               else if (strcmp(name,"ExtrudeFromTopAnalysis")==0) return ExtrudeFromTopAnalysisEnum;
    508508         else stage=5;
    509509   }
    510510   if(stage==5){
    511               if (strcmp(name,"DepthAverageAnalysis")==0) return DepthAverageAnalysisEnum;
     511              if (strcmp(name,"ExtrudeFromTopAnalysis")==0) return ExtrudeFromTopAnalysisEnum;
     512              else if (strcmp(name,"DepthAverageAnalysis")==0) return DepthAverageAnalysisEnum;
    512513              else if (strcmp(name,"SteadystateSolution")==0) return SteadystateSolutionEnum;
    513514              else if (strcmp(name,"SurfaceSlopeSolution")==0) return SurfaceSlopeSolutionEnum;
     
    628629              else if (strcmp(name,"Adjointp")==0) return AdjointpEnum;
    629630              else if (strcmp(name,"Adjointx")==0) return AdjointxEnum;
    630               else if (strcmp(name,"Adjointy")==0) return AdjointyEnum;
    631631         else stage=6;
    632632   }
    633633   if(stage==6){
    634               if (strcmp(name,"Adjointz")==0) return AdjointzEnum;
     634              if (strcmp(name,"Adjointy")==0) return AdjointyEnum;
     635              else if (strcmp(name,"Adjointz")==0) return AdjointzEnum;
    635636              else if (strcmp(name,"BalancethicknessMisfit")==0) return BalancethicknessMisfitEnum;
    636637              else if (strcmp(name,"BedSlopeX")==0) return BedSlopeXEnum;
     
    751752              else if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum;
    752753              else if (strcmp(name,"DoubleExternalResult")==0) return DoubleExternalResultEnum;
    753               else if (strcmp(name,"DoubleMatExternalResult")==0) return DoubleMatExternalResultEnum;
    754754         else stage=7;
    755755   }
    756756   if(stage==7){
    757               if (strcmp(name,"IntExternalResult")==0) return IntExternalResultEnum;
     757              if (strcmp(name,"DoubleMatExternalResult")==0) return DoubleMatExternalResultEnum;
     758              else if (strcmp(name,"IntExternalResult")==0) return IntExternalResultEnum;
    758759              else if (strcmp(name,"J")==0) return JEnum;
    759760              else if (strcmp(name,"StringExternalResult")==0) return StringExternalResultEnum;
     
    874875              else if (strcmp(name,"MisfitLocal")==0) return MisfitLocalEnum;
    875876              else if (strcmp(name,"MisfitTimeinterpolation")==0) return MisfitTimeinterpolationEnum;
    876               else if (strcmp(name,"MisfitWeights")==0) return MisfitWeightsEnum;
    877877         else stage=8;
    878878   }
    879879   if(stage==8){
    880               if (strcmp(name,"MisfitWeightsEnum")==0) return MisfitWeightsEnumEnum;
     880              if (strcmp(name,"MisfitWeights")==0) return MisfitWeightsEnum;
     881              else if (strcmp(name,"MisfitWeightsEnum")==0) return MisfitWeightsEnumEnum;
    881882              else if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum;
    882883              else if (strcmp(name,"WeightsSurfaceObservation")==0) return WeightsSurfaceObservationEnum;
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r19720 r19725  
    162162def HydrologyReynoldsEnum(): return StringToEnum("HydrologyReynolds")[0]
    163163def HydrologySpcheadEnum(): return StringToEnum("HydrologySpchead")[0]
     164def HydrologyConductivityEnum(): return StringToEnum("HydrologyConductivity")[0]
    164165def IndependentObjectEnum(): return StringToEnum("IndependentObject")[0]
    165166def InversionControlParametersEnum(): return StringToEnum("InversionControlParameters")[0]
Note: See TracChangeset for help on using the changeset viewer.