Changeset 19725
- Timestamp:
- 11/16/15 16:29:17 (9 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 1 added
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp
r19720 r19725 4 4 #include "../shared/shared.h" 5 5 #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 6 10 7 11 /*Model processing*/ … … 64 68 iomodel->FetchDataToInput(elements,MaskGroundediceLevelsetEnum); 65 69 iomodel->FetchDataToInput(elements,BasalforcingsGroundediceMeltingRateEnum); 70 iomodel->FetchDataToInput(elements,BasalforcingsGeothermalfluxEnum); 66 71 iomodel->FetchDataToInput(elements,HydrologyHeadEnum); 67 72 iomodel->FetchDataToInput(elements,HydrologyGapHeightEnum); … … 96 101 97 102 /*Intermediaries */ 98 IssmDouble conductivity;99 103 IssmDouble Jdet; 100 IssmDouble gap,reynolds;101 104 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/s106 105 107 106 /*Fetch number of nodes and dof for this finite element*/ … … 114 113 /*Retrieve all inputs and parameters*/ 115 114 element->GetVerticesCoordinates(&xyz_list); 116 IssmDouble g = element->GetMaterialParameter(ConstantsGEnum); 117 Input* reynolds_input = element->GetInput(HydrologyReynoldsEnum); _assert_(reynolds_input);118 I nput* gap_input = element->GetInput(HydrologyGapHeightEnum); _assert_(gap_input);115 116 /*Get conductivity from inputs*/ 117 IssmDouble conductivity = GetConductivity(element); 119 118 120 119 /* Start looping on the number of gaussian points: */ … … 125 124 element->JacobianDeterminant(&Jdet,xyz_list,gauss); 126 125 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));132 126 133 127 for(int i=0;i<numnodes;i++){ … … 136 130 } 137 131 } 138 139 140 132 } 141 133 … … 147 139 }/*}}}*/ 148 140 ElementVector* HydrologySommersAnalysis::CreatePVector(Element* element){/*{{{*/ 149 _error_("STOP");150 141 151 142 /*Skip if water or ice shelf element*/ … … 153 144 154 145 /*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; 157 148 IssmDouble* xyz_list = NULL; 158 149 … … 166 157 /*Retrieve all inputs and parameters*/ 167 158 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 173 174 /* Start looping on the number of gaussian points: */ 174 175 Gauss* gauss=element->NewGauss(2); … … 178 179 element->JacobianDeterminant(&Jdet,xyz_list,gauss); 179 180 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]; 190 206 } 191 207 … … 205 221 206 222 /*Intermediary*/ 223 IssmDouble dh[3]; 207 224 int* doflist = NULL; 225 IssmDouble* xyz_list = NULL; 208 226 209 227 /*Fetch number of nodes for this finite element*/ … … 214 232 IssmDouble* values = xNew<IssmDouble>(numnodes); 215 233 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 216 242 /*Use the dof list to index into the solution vector: */ 217 243 for(int i=0;i<numnodes;i++){ 218 244 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 219 251 if(xIsNan<IssmDouble>(values[i])) _error_("NaN found in solution vector"); 220 252 } … … 223 255 element->AddInput(HydrologyHeadEnum,values,element->GetElementType()); 224 256 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 225 265 /*Free ressources:*/ 226 266 xDelete<IssmDouble>(values); 267 xDelete<IssmDouble>(thickness); 268 xDelete<IssmDouble>(bed); 269 xDelete<IssmDouble>(xyz_list); 227 270 xDelete<int>(doflist); 228 271 }/*}}}*/ … … 231 274 return; 232 275 }/*}}}*/ 276 277 /*Additional methods*/ 278 IssmDouble 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 30 30 void InputUpdateFromSolution(IssmDouble* solution,Element* element); 31 31 void UpdateConstraints(FemModel* femmodel); 32 33 /*Intermediaries*/ 34 IssmDouble GetConductivity(Element* element); 32 35 }; 33 36 #endif -
issm/trunk-jpl/src/c/classes/Inputs/BoolInput.h
r19554 r19725 52 52 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");}; 53 53 void GetInputAverage(IssmDouble* pvalue){_error_("not implemented yet");}; 54 void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");}; 54 55 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");}; 55 56 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 58 58 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss); 59 59 void GetInputAverage(IssmDouble* pvalue); 60 void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");}; 60 61 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");}; 61 62 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 54 54 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");}; 55 55 void GetInputAverage(IssmDouble* pvalue){_error_("not implemented yet");}; 56 void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");}; 56 57 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");}; 57 58 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 54 54 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");}; 55 55 void GetInputAverage(IssmDouble* pvalue){_error_("not implemented yet");}; 56 void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");}; 56 57 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");}; 57 58 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 55 55 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");}; 56 56 void GetInputAverage(IssmDouble* pvalue); 57 void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");}; 57 58 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");}; 58 59 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 34 34 virtual void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, Gauss* gauss)=0; 35 35 virtual void GetInputAverage(IssmDouble* pvalue)=0; 36 virtual void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list)=0; 36 37 virtual void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes)=0; 37 38 virtual void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime)=0; -
issm/trunk-jpl/src/c/classes/Inputs/Inputs.h
r17513 r19725 39 39 IssmDouble MinAbs(int enumtype); 40 40 void GetInputAverage(IssmDouble* pvalue, int enum_type); 41 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");}; 41 42 void GetInputValue(bool* pvalue,int enum_type); 42 43 void GetInputValue(int* pvalue,int enum_type); -
issm/trunk-jpl/src/c/classes/Inputs/IntInput.h
r19554 r19725 56 56 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");}; 57 57 void GetInputAverage(IssmDouble* pvalue){_error_("not implemented yet");}; 58 void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");}; 58 59 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");}; 59 60 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 56 56 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss); 57 57 void GetInputAverage(IssmDouble* pvalue); 58 void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");}; 58 59 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");}; 59 60 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 57 57 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss); 58 58 void GetInputAverage(IssmDouble* pvalue); 59 void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");}; 59 60 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");}; 60 61 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 57 57 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss); 58 58 void GetInputAverage(IssmDouble* pvalue); 59 void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");}; 59 60 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes); 60 61 void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime); -
issm/trunk-jpl/src/c/classes/Inputs/TransientInput.h
r19554 r19725 61 61 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss); 62 62 void GetInputAverage(IssmDouble* pvalue); 63 void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");}; 63 64 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes); 64 65 void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime); -
issm/trunk-jpl/src/c/classes/Inputs/TriaInput.cpp
r19554 r19725 192 192 } 193 193 /*}}}*/ 194 void 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 /*}}}*/ 194 214 void TriaInput::GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){/*{{{*/ 195 215 -
issm/trunk-jpl/src/c/classes/Inputs/TriaInput.h
r19554 r19725 57 57 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss); 58 58 void GetInputAverage(IssmDouble* pvalue); 59 void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list); 59 60 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes); 60 61 void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime); -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r19720 r19725 164 164 HydrologyReynoldsEnum, 165 165 HydrologySpcheadEnum, 166 HydrologyConductivityEnum, 166 167 IndependentObjectEnum, 167 168 InversionControlParametersEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r19720 r19725 170 170 case HydrologyReynoldsEnum : return "HydrologyReynolds"; 171 171 case HydrologySpcheadEnum : return "HydrologySpchead"; 172 case HydrologyConductivityEnum : return "HydrologyConductivity"; 172 173 case IndependentObjectEnum : return "IndependentObject"; 173 174 case InversionControlParametersEnum : return "InversionControlParameters"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r19720 r19725 173 173 else if (strcmp(name,"HydrologyReynolds")==0) return HydrologyReynoldsEnum; 174 174 else if (strcmp(name,"HydrologySpchead")==0) return HydrologySpcheadEnum; 175 else if (strcmp(name,"HydrologyConductivity")==0) return HydrologyConductivityEnum; 175 176 else if (strcmp(name,"IndependentObject")==0) return IndependentObjectEnum; 176 177 else if (strcmp(name,"InversionControlParameters")==0) return InversionControlParametersEnum; … … 259 260 else if (strcmp(name,"MaterialsRhoSeawater")==0) return MaterialsRhoSeawaterEnum; 260 261 else if (strcmp(name,"MaterialsRhoFreshwater")==0) return MaterialsRhoFreshwaterEnum; 261 else if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum;262 262 else stage=3; 263 263 } 264 264 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; 266 267 else if (strcmp(name,"MaterialsThermalconductivity")==0) return MaterialsThermalconductivityEnum; 267 268 else if (strcmp(name,"MaterialsTemperateiceconductivity")==0) return MaterialsTemperateiceconductivityEnum; … … 382 383 else if (strcmp(name,"SmbDlwrf")==0) return SmbDlwrfEnum; 383 384 else if (strcmp(name,"SmbP")==0) return SmbPEnum; 384 else if (strcmp(name,"SmbSwf")==0) return SmbSwfEnum;385 385 else stage=4; 386 386 } 387 387 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; 389 390 else if (strcmp(name,"SmbPAir")==0) return SmbPAirEnum; 390 391 else if (strcmp(name,"SmbTmean")==0) return SmbTmeanEnum; … … 505 506 else if (strcmp(name,"SurfaceNormalVelocity")==0) return SurfaceNormalVelocityEnum; 506 507 else if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum; 507 else if (strcmp(name,"ExtrudeFromTopAnalysis")==0) return ExtrudeFromTopAnalysisEnum;508 508 else stage=5; 509 509 } 510 510 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; 512 513 else if (strcmp(name,"SteadystateSolution")==0) return SteadystateSolutionEnum; 513 514 else if (strcmp(name,"SurfaceSlopeSolution")==0) return SurfaceSlopeSolutionEnum; … … 628 629 else if (strcmp(name,"Adjointp")==0) return AdjointpEnum; 629 630 else if (strcmp(name,"Adjointx")==0) return AdjointxEnum; 630 else if (strcmp(name,"Adjointy")==0) return AdjointyEnum;631 631 else stage=6; 632 632 } 633 633 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; 635 636 else if (strcmp(name,"BalancethicknessMisfit")==0) return BalancethicknessMisfitEnum; 636 637 else if (strcmp(name,"BedSlopeX")==0) return BedSlopeXEnum; … … 751 752 else if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum; 752 753 else if (strcmp(name,"DoubleExternalResult")==0) return DoubleExternalResultEnum; 753 else if (strcmp(name,"DoubleMatExternalResult")==0) return DoubleMatExternalResultEnum;754 754 else stage=7; 755 755 } 756 756 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; 758 759 else if (strcmp(name,"J")==0) return JEnum; 759 760 else if (strcmp(name,"StringExternalResult")==0) return StringExternalResultEnum; … … 874 875 else if (strcmp(name,"MisfitLocal")==0) return MisfitLocalEnum; 875 876 else if (strcmp(name,"MisfitTimeinterpolation")==0) return MisfitTimeinterpolationEnum; 876 else if (strcmp(name,"MisfitWeights")==0) return MisfitWeightsEnum;877 877 else stage=8; 878 878 } 879 879 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; 881 882 else if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum; 882 883 else if (strcmp(name,"WeightsSurfaceObservation")==0) return WeightsSurfaceObservationEnum; -
issm/trunk-jpl/src/m/enum/EnumDefinitions.py
r19720 r19725 162 162 def HydrologyReynoldsEnum(): return StringToEnum("HydrologyReynolds")[0] 163 163 def HydrologySpcheadEnum(): return StringToEnum("HydrologySpchead")[0] 164 def HydrologyConductivityEnum(): return StringToEnum("HydrologyConductivity")[0] 164 165 def IndependentObjectEnum(): return StringToEnum("IndependentObject")[0] 165 166 def InversionControlParametersEnum(): return StringToEnum("InversionControlParameters")[0]
Note:
See TracChangeset
for help on using the changeset viewer.