Changeset 18732
- Timestamp:
- 11/04/14 14:13:02 (10 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 2 added
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
r18696 r18732 26 26 if(numoutputs)parameters->AddObject(new StringArrayParam(ThermalRequestedOutputsEnum,requestedoutputs,numoutputs)); 27 27 iomodel->DeleteData(&requestedoutputs,numoutputs,ThermalRequestedOutputsEnum); 28 29 /*Deal with friction parameters*/ 30 int frictionlaw; 31 iomodel->Constant(&frictionlaw,FrictionLawEnum); 32 if(frictionlaw==4) parameters->AddObject(iomodel->CopyConstantObject(FrictionGammaEnum)); 28 33 }/*}}}*/ 29 34 void EnthalpyAnalysis::UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ … … 95 100 iomodel->FetchDataToInput(elements,FrictionCEnum); 96 101 iomodel->FetchDataToInput(elements,FrictionMEnum); 102 break; 103 case 4: 104 iomodel->FetchDataToInput(elements,FrictionCoefficientEnum); 105 iomodel->FetchDataToInput(elements,FrictionPEnum); 106 iomodel->FetchDataToInput(elements,FrictionQEnum); 107 iomodel->FetchDataToInput(elements,PressureEnum); 108 iomodel->FetchDataToInput(elements,TemperatureEnum); 97 109 break; 98 110 default: -
issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
r18570 r18732 130 130 iomodel->DeleteData(&requestedoutputs,numoutputs,StressbalanceRequestedOutputsEnum); 131 131 132 /*Deal with friction parameters*/ 133 int frictionlaw; 134 iomodel->Constant(&frictionlaw,FrictionLawEnum); 135 if(frictionlaw==4) parameters->AddObject(iomodel->CopyConstantObject(FrictionGammaEnum)); 136 132 137 }/*}}}*/ 133 138 void StressbalanceAnalysis::UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ … … 261 266 iomodel->FetchDataToInput(elements,FrictionCEnum); 262 267 iomodel->FetchDataToInput(elements,FrictionMEnum); 268 break; 269 case 4: 270 iomodel->FetchDataToInput(elements,FrictionCoefficientEnum); 271 iomodel->FetchDataToInput(elements,FrictionPEnum); 272 iomodel->FetchDataToInput(elements,FrictionQEnum); 273 iomodel->FetchDataToInput(elements,PressureEnum); 274 iomodel->FetchDataToInput(elements,TemperatureEnum); 263 275 break; 264 276 default: -
issm/trunk-jpl/src/c/classes/Loads/Friction.cpp
r18511 r18732 48 48 case 2: 49 49 GetAlpha2Weertman(palpha2,gauss); 50 case 3: 50 break; 51 case 3: 51 52 GetAlpha2Hydro(palpha2,gauss); 53 break; 54 case 4: 55 GetAlpha2Temp(palpha2,gauss); 52 56 break; 53 57 default: … … 219 223 *palpha2=alpha2; 220 224 }/*}}}*/ 225 void Friction::GetAlpha2Temp(IssmDouble* palpha2, Gauss* gauss){/*{{{*/ 226 /*Here, we want to parameterize the friction as a function of temperature 227 * 228 * alpha2 = alpha2_viscous * f(T) 229 * 230 * where f(T) = exp((T-Tpmp)/gamma) 231 */ 232 233 /*Intermediaries: */ 234 IssmDouble f,T,pressure,Tpmp,gamma; 235 IssmDouble alpha2; 236 237 /*Get viscous part*/ 238 this->GetAlpha2Viscous(&alpha2,gauss); 239 240 /*Get pressure melting point (Tpmp) for local pressure and get current temperature*/ 241 element->GetInputValue(&T,gauss,TemperatureEnum); 242 element->GetInputValue(&pressure,gauss,PressureEnum); 243 Tpmp = element->TMeltingPoint(pressure); 244 245 /*Compute scaling parameter*/ 246 element->parameters->FindParam(&gamma,FrictionGammaEnum); 247 alpha2 = alpha2*exp((T-Tpmp)/gamma); 248 249 /*Assign output pointers:*/ 250 *palpha2=alpha2; 251 }/*}}}*/ 221 252 void Friction::GetAlphaComplement(IssmDouble* palpha_complement, Gauss* gauss){/*{{{*/ 222 253 -
issm/trunk-jpl/src/c/classes/Loads/Friction.h
r18511 r18732 33 33 void GetAlpha2Weertman(IssmDouble* palpha2,Gauss* gauss); 34 34 void GetAlpha2Hydro(IssmDouble* palpha2,Gauss* gauss); 35 void GetAlpha2Temp(IssmDouble* palpha2,Gauss* gauss); 35 36 void GetAlphaComplement(IssmDouble* alpha_complement,Gauss* gauss); 36 37 }; -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r18719 r18732 95 95 FrictionCEnum, 96 96 FrictionLawEnum, 97 FrictionGammaEnum, 97 98 GeometryHydrostaticRatioEnum, 98 99 HydrologyModelEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r18719 r18732 103 103 case FrictionCEnum : return "FrictionC"; 104 104 case FrictionLawEnum : return "FrictionLaw"; 105 case FrictionGammaEnum : return "FrictionGamma"; 105 106 case GeometryHydrostaticRatioEnum : return "GeometryHydrostaticRatio"; 106 107 case HydrologyModelEnum : return "HydrologyModel"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r18719 r18732 103 103 else if (strcmp(name,"FrictionC")==0) return FrictionCEnum; 104 104 else if (strcmp(name,"FrictionLaw")==0) return FrictionLawEnum; 105 else if (strcmp(name,"FrictionGamma")==0) return FrictionGammaEnum; 105 106 else if (strcmp(name,"GeometryHydrostaticRatio")==0) return GeometryHydrostaticRatioEnum; 106 107 else if (strcmp(name,"HydrologyModel")==0) return HydrologyModelEnum; … … 136 137 else if (strcmp(name,"HydrologydcEplThickness")==0) return HydrologydcEplThicknessEnum; 137 138 else if (strcmp(name,"HydrologydcEplThicknessOld")==0) return HydrologydcEplThicknessOldEnum; 138 else if (strcmp(name,"HydrologydcEplConductivity")==0) return HydrologydcEplConductivityEnum;139 139 else stage=2; 140 140 } 141 141 if(stage==2){ 142 if (strcmp(name,"HydrologydcIsefficientlayer")==0) return HydrologydcIsefficientlayerEnum; 142 if (strcmp(name,"HydrologydcEplConductivity")==0) return HydrologydcEplConductivityEnum; 143 else if (strcmp(name,"HydrologydcIsefficientlayer")==0) return HydrologydcIsefficientlayerEnum; 143 144 else if (strcmp(name,"HydrologydcSedimentlimitFlag")==0) return HydrologydcSedimentlimitFlagEnum; 144 145 else if (strcmp(name,"HydrologydcSedimentlimit")==0) return HydrologydcSedimentlimitEnum; … … 259 260 else if (strcmp(name,"MasstransportPenaltyFactor")==0) return MasstransportPenaltyFactorEnum; 260 261 else if (strcmp(name,"MasstransportSpcthickness")==0) return MasstransportSpcthicknessEnum; 261 else if (strcmp(name,"MasstransportCalvingrate")==0) return MasstransportCalvingrateEnum;262 262 else stage=3; 263 263 } 264 264 if(stage==3){ 265 if (strcmp(name,"MasstransportStabilization")==0) return MasstransportStabilizationEnum; 265 if (strcmp(name,"MasstransportCalvingrate")==0) return MasstransportCalvingrateEnum; 266 else if (strcmp(name,"MasstransportStabilization")==0) return MasstransportStabilizationEnum; 266 267 else if (strcmp(name,"MasstransportVertexPairing")==0) return MasstransportVertexPairingEnum; 267 268 else if (strcmp(name,"MasstransportNumRequestedOutputs")==0) return MasstransportNumRequestedOutputsEnum; … … 382 383 else if (strcmp(name,"BalancevelocitySolution")==0) return BalancevelocitySolutionEnum; 383 384 else if (strcmp(name,"L2ProjectionEPLAnalysis")==0) return L2ProjectionEPLAnalysisEnum; 384 else if (strcmp(name,"L2ProjectionBaseAnalysis")==0) return L2ProjectionBaseAnalysisEnum;385 385 else stage=4; 386 386 } 387 387 if(stage==4){ 388 if (strcmp(name,"BedSlopeSolution")==0) return BedSlopeSolutionEnum; 388 if (strcmp(name,"L2ProjectionBaseAnalysis")==0) return L2ProjectionBaseAnalysisEnum; 389 else if (strcmp(name,"BedSlopeSolution")==0) return BedSlopeSolutionEnum; 389 390 else if (strcmp(name,"DamageEvolutionSolution")==0) return DamageEvolutionSolutionEnum; 390 391 else if (strcmp(name,"DamageEvolutionAnalysis")==0) return DamageEvolutionAnalysisEnum; … … 505 506 else if (strcmp(name,"VertexPId")==0) return VertexPIdEnum; 506 507 else if (strcmp(name,"VertexSId")==0) return VertexSIdEnum; 507 else if (strcmp(name,"Air")==0) return AirEnum;508 508 else stage=5; 509 509 } 510 510 if(stage==5){ 511 if (strcmp(name,"Ice")==0) return IceEnum; 511 if (strcmp(name,"Air")==0) return AirEnum; 512 else if (strcmp(name,"Ice")==0) return IceEnum; 512 513 else if (strcmp(name,"Melange")==0) return MelangeEnum; 513 514 else if (strcmp(name,"Water")==0) return WaterEnum; … … 628 629 else if (strcmp(name,"LATaylorHood")==0) return LATaylorHoodEnum; 629 630 else if (strcmp(name,"XTaylorHood")==0) return XTaylorHoodEnum; 630 else if (strcmp(name,"OneLayerP4z")==0) return OneLayerP4zEnum;631 631 else stage=6; 632 632 } 633 633 if(stage==6){ 634 if (strcmp(name,"CrouzeixRaviart")==0) return CrouzeixRaviartEnum; 634 if (strcmp(name,"OneLayerP4z")==0) return OneLayerP4zEnum; 635 else if (strcmp(name,"CrouzeixRaviart")==0) return CrouzeixRaviartEnum; 635 636 else if (strcmp(name,"LACrouzeixRaviart")==0) return LACrouzeixRaviartEnum; 636 637 else if (strcmp(name,"SaveResults")==0) return SaveResultsEnum; … … 751 752 else if (strcmp(name,"SeaiceMinConcentration")==0) return SeaiceMinConcentrationEnum; 752 753 else if (strcmp(name,"SeaiceMinThickness")==0) return SeaiceMinThicknessEnum; 753 else if (strcmp(name,"SeaiceMaxThickness")==0) return SeaiceMaxThicknessEnum;754 754 else stage=7; 755 755 } 756 756 if(stage==7){ 757 if (strcmp(name,"SeaiceSpcvx")==0) return SeaiceSpcvxEnum; 757 if (strcmp(name,"SeaiceMaxThickness")==0) return SeaiceMaxThicknessEnum; 758 else if (strcmp(name,"SeaiceSpcvx")==0) return SeaiceSpcvxEnum; 758 759 else if (strcmp(name,"SeaiceSpcvy")==0) return SeaiceSpcvyEnum; 759 760 else if (strcmp(name,"SeaiceCoriolisFactor")==0) return SeaiceCoriolisFactorEnum; -
issm/trunk-jpl/src/m/classes/groundingline.m
r18610 r18732 9 9 end 10 10 methods 11 function createxml(obj,fid) % {{{ 12 fprintf(fid, '\n\n'); 13 fprintf(fid, '%s\n', '<!-- groundingline -->'); 14 15 % Convergence criteria 16 fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="Grounding line migration parameters">','<section name="groundingline" />'); 17 18 % migration (SoftMigration, AggressiveMigration, or None)drop-down 19 fprintf(fid,'%s\n%s\n%s\n%s\n','<parameter key ="migration" type="alternative" optional="false">',' <section name="groundingline" />',' <help> type of grounding line migration: "SoftMigration","AggressiveMigration" or "None" </help>'); 20 fprintf(fid,'%s\n',' <option value="SoftMigration" type="string" default="true"> </option>'); 21 fprintf(fid,'%s\n',' <option value="AggressiveMigration" type="string" default="false"> </option>'); 22 fprintf(fid, '%s\n%s\n',' <option value="None" type="string" default="false"></option>','</parameter>'); 11 function createxml(obj,fid) % {{{ 12 fprintf(fid, '\n\n'); 13 fprintf(fid, '%s\n', '<!-- groundingline -->'); 23 14 24 fprintf(fid,'%s\n%s\n','</frame>'); 25 end % }}} 15 % Convergence criteria 16 fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="Grounding line migration parameters">','<section name="groundingline" />'); 17 18 % migration (SoftMigration, AggressiveMigration, or None)drop-down 19 fprintf(fid,'%s\n%s\n%s\n%s\n','<parameter key ="migration" type="alternative" optional="false">',' <section name="groundingline" />',' <help> type of grounding line migration: "SoftMigration","AggressiveMigration" or "None" </help>'); 20 fprintf(fid,'%s\n',' <option value="SoftMigration" type="string" default="true"> </option>'); 21 fprintf(fid,'%s\n',' <option value="AggressiveMigration" type="string" default="false"> </option>'); 22 fprintf(fid, '%s\n%s\n',' <option value="None" type="string" default="false"></option>','</parameter>'); 23 24 fprintf(fid,'%s\n%s\n','</frame>'); 25 end % }}} 26 26 function obj = groundingline(varargin) % {{{ 27 27 switch nargin -
issm/trunk-jpl/src/m/classes/initialization.m
r18623 r18732 19 19 end 20 20 methods 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 21 function createxml(obj,fid) % {{{ 22 fprintf(fid, '\n\n'); 23 fprintf(fid, '%s\n', '<!-- initialization -->'); 24 fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="Initial field values">','<section name="initialization" />'); 25 26 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="vx" type="',class(obj.vx),'" default="',obj.vx,'">',' <section name="initialization" />',' <help> x component of velocity [m/yr] </help>','</parameter>'); 27 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="vy" type="',class(obj.vy),'" default="',obj.vy,'">',' <section name="initialization" />',' <help> y component of velocity [m/yr] </help>','</parameter>'); 28 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="vz" type="',class(obj.vz),'" default="',obj.vz,'">',' <section name="initialization" />',' <help> z component of velocity [m/yr] </help>','</parameter>'); 29 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="vel" type="',class(obj.vel),'" default="',obj.vel,'">',' <section name="initialization" />',' <help> velocity norm [m/yr] </help>','</parameter>'); 30 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="pressure" type="',class(obj.pressure),'" default="',obj.pressure,'">',' <section name="initialization" />',' <help> pressure field [Pa] </help>','</parameter>'); 31 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="temperature" type="',class(obj.temperature),'" default="',obj.temperature,'">',' <section name="initialization" />',' <help> fraction of water in the ice </help>','</parameter>'); 32 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="waterfraction" type="',class(obj.waterfraction),'" default="',obj.waterfraction,'">',' <section name="initialization" />',' <help> ice thickness [m] </help>','</parameter>'); 33 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="sediment_head" type="',class(obj.sediment_head),'" default="',obj.sediment_head,'">',' <section name="initialization" />',' <help> sediment water head of subglacial system [m] </help>','</parameter>'); 34 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="epl_head" type="',class(obj.epl_head),'" default="',obj.epl_head,'">',' <section name="initialization" />',' <help> epl water head of subglacial system [m] </help>','</parameter>'); 35 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','<parameter key ="watercolumn" type="',class(obj.watercolumn),'" default="',obj.watercolumn,'">',' <section name="initialization" />',' <help> thickness of subglacial water [m] </help>','</parameter>'); 36 fprintf(fid,'%s\n%s\n','</frame>'); 37 end % }}} 38 38 function obj = initialization(varargin) % {{{ 39 39 switch nargin … … 73 73 end 74 74 md = checkfield(md,'fieldname','initialization.pressure','NaN',1,'size',[md.mesh.numberofvertices 1]); 75 md = checkfield(md,'fieldname','initialization.temperature','NaN',1,'size',[md.mesh.numberofvertices 1]); 75 76 end 76 77 if (ismember(EnthalpyAnalysisEnum(),analyses) & md.thermal.isenthalpy) -
issm/trunk-jpl/src/m/classes/initialization.py
r18710 r18732 69 69 md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices]) 70 70 md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices]) 71 md = checkfield(md,'fieldname','initialization.temperature','NaN',1,'size',[md.mesh.numberofvertices]) 71 72 if md.mesh.dimension()==3: 72 73 md = checkfield(md,'fieldname','initialization.vz','NaN',1,'size',[md.mesh.numberofvertices]) -
issm/trunk-jpl/src/m/enum/EnumDefinitions.py
r18720 r18732 95 95 def FrictionCEnum(): return StringToEnum("FrictionC")[0] 96 96 def FrictionLawEnum(): return StringToEnum("FrictionLaw")[0] 97 def FrictionGammaEnum(): return StringToEnum("FrictionGamma")[0] 97 98 def GeometryHydrostaticRatioEnum(): return StringToEnum("GeometryHydrostaticRatio")[0] 98 99 def HydrologyModelEnum(): return StringToEnum("HydrologyModel")[0]
Note:
See TracChangeset
for help on using the changeset viewer.