source: issm/oecreview/Archive/16554-17801/ISSM-16589-16590.diff

Last change on this file was 17802, checked in by Mathieu Morlighem, 11 years ago

Added archives

File size: 17.2 KB
RevLine 
[17802]1Index: ../trunk-jpl/test/Archives/Archive327.nc
2===================================================================
3Cannot display: file marked as a binary type.
4svn:mime-type = application/octet-stream
5Index: ../trunk-jpl/test/Archives/Archive120.nc
6===================================================================
7Cannot display: file marked as a binary type.
8svn:mime-type = application/octet-stream
9Index: ../trunk-jpl/test/Archives/Archive432.nc
10===================================================================
11Cannot display: file marked as a binary type.
12svn:mime-type = application/octet-stream
13Index: ../trunk-jpl/test/Archives/Archive325.nc
14===================================================================
15Cannot display: file marked as a binary type.
16svn:mime-type = application/octet-stream
17Index: ../trunk-jpl/test/Archives/Archive121.nc
18===================================================================
19Cannot display: file marked as a binary type.
20svn:mime-type = application/octet-stream
21Index: ../trunk-jpl/test/Archives/Archive326.nc
22===================================================================
23Cannot display: file marked as a binary type.
24svn:mime-type = application/octet-stream
25Index: ../trunk-jpl/test/Archives/Archive122.nc
26===================================================================
27Cannot display: file marked as a binary type.
28svn:mime-type = application/octet-stream
29Index: ../trunk-jpl/test/Archives/Archive431.nc
30===================================================================
31Cannot display: file marked as a binary type.
32svn:mime-type = application/octet-stream
33Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
34===================================================================
35--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h (revision 16589)
36+++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h (revision 16590)
37@@ -177,6 +177,7 @@
38 MaterialsMuWaterEnum,
39 MaterialsThermalExchangeVelocityEnum,
40 MaterialsThermalconductivityEnum,
41+ MaterialsTemperateiceconductivityEnum,
42 MaterialsLithosphereShearModulusEnum,
43 MaterialsLithosphereDensityEnum,
44 MaterialsMantleShearModulusEnum,
45Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
46===================================================================
47--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp (revision 16589)
48+++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp (revision 16590)
49@@ -185,6 +185,7 @@
50 case MaterialsMuWaterEnum : return "MaterialsMuWater";
51 case MaterialsThermalExchangeVelocityEnum : return "MaterialsThermalExchangeVelocity";
52 case MaterialsThermalconductivityEnum : return "MaterialsThermalconductivity";
53+ case MaterialsTemperateiceconductivityEnum : return "MaterialsTemperateiceconductivity";
54 case MaterialsLithosphereShearModulusEnum : return "MaterialsLithosphereShearModulus";
55 case MaterialsLithosphereDensityEnum : return "MaterialsLithosphereDensity";
56 case MaterialsMantleShearModulusEnum : return "MaterialsMantleShearModulus";
57Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
58===================================================================
59--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp (revision 16589)
60+++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp (revision 16590)
61@@ -188,6 +188,7 @@
62 else if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum;
63 else if (strcmp(name,"MaterialsThermalExchangeVelocity")==0) return MaterialsThermalExchangeVelocityEnum;
64 else if (strcmp(name,"MaterialsThermalconductivity")==0) return MaterialsThermalconductivityEnum;
65+ else if (strcmp(name,"MaterialsTemperateiceconductivity")==0) return MaterialsTemperateiceconductivityEnum;
66 else if (strcmp(name,"MaterialsLithosphereShearModulus")==0) return MaterialsLithosphereShearModulusEnum;
67 else if (strcmp(name,"MaterialsLithosphereDensity")==0) return MaterialsLithosphereDensityEnum;
68 else if (strcmp(name,"MaterialsMantleShearModulus")==0) return MaterialsMantleShearModulusEnum;
69@@ -258,11 +259,11 @@
70 else if (strcmp(name,"SurfaceforcingsPrecipitation")==0) return SurfaceforcingsPrecipitationEnum;
71 else if (strcmp(name,"SurfaceforcingsMassBalance")==0) return SurfaceforcingsMassBalanceEnum;
72 else if (strcmp(name,"SurfaceforcingsIspdd")==0) return SurfaceforcingsIspddEnum;
73- else if (strcmp(name,"SurfaceforcingsDesfac")==0) return SurfaceforcingsDesfacEnum;
74 else stage=3;
75 }
76 if(stage==3){
77- if (strcmp(name,"SurfaceforcingsS0p")==0) return SurfaceforcingsS0pEnum;
78+ if (strcmp(name,"SurfaceforcingsDesfac")==0) return SurfaceforcingsDesfacEnum;
79+ else if (strcmp(name,"SurfaceforcingsS0p")==0) return SurfaceforcingsS0pEnum;
80 else if (strcmp(name,"SurfaceforcingsIssmbgradients")==0) return SurfaceforcingsIssmbgradientsEnum;
81 else if (strcmp(name,"SurfaceforcingsMonthlytemperatures")==0) return SurfaceforcingsMonthlytemperaturesEnum;
82 else if (strcmp(name,"SurfaceforcingsHref")==0) return SurfaceforcingsHrefEnum;
83@@ -381,11 +382,11 @@
84 else if (strcmp(name,"Input")==0) return InputEnum;
85 else if (strcmp(name,"IntInput")==0) return IntInputEnum;
86 else if (strcmp(name,"InputToExtrude")==0) return InputToExtrudeEnum;
87- else if (strcmp(name,"InputToL2Project")==0) return InputToL2ProjectEnum;
88 else stage=4;
89 }
90 if(stage==4){
91- if (strcmp(name,"IntParam")==0) return IntParamEnum;
92+ if (strcmp(name,"InputToL2Project")==0) return InputToL2ProjectEnum;
93+ else if (strcmp(name,"IntParam")==0) return IntParamEnum;
94 else if (strcmp(name,"IntVecParam")==0) return IntVecParamEnum;
95 else if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
96 else if (strcmp(name,"Matice")==0) return MaticeEnum;
97@@ -504,11 +505,11 @@
98 else if (strcmp(name,"StressTensor")==0) return StressTensorEnum;
99 else if (strcmp(name,"StressTensorxx")==0) return StressTensorxxEnum;
100 else if (strcmp(name,"StressTensorxy")==0) return StressTensorxyEnum;
101- else if (strcmp(name,"StressTensorxz")==0) return StressTensorxzEnum;
102 else stage=5;
103 }
104 if(stage==5){
105- if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum;
106+ if (strcmp(name,"StressTensorxz")==0) return StressTensorxzEnum;
107+ else if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum;
108 else if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum;
109 else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum;
110 else if (strcmp(name,"GiaCrossSectionShape")==0) return GiaCrossSectionShapeEnum;
111Index: ../trunk-jpl/src/c/classes/Materials/Matpar.cpp
112===================================================================
113--- ../trunk-jpl/src/c/classes/Materials/Matpar.cpp (revision 16589)
114+++ ../trunk-jpl/src/c/classes/Materials/Matpar.cpp (revision 16590)
115@@ -33,6 +33,7 @@
116 iomodel->Constant(&this->mu_water,MaterialsMuWaterEnum);
117 iomodel->Constant(&this->heatcapacity,MaterialsHeatcapacityEnum);
118 iomodel->Constant(&this->thermalconductivity,MaterialsThermalconductivityEnum);
119+ iomodel->Constant(&this->temperateiceconductivity,MaterialsTemperateiceconductivityEnum);
120 iomodel->Constant(&this->latentheat,MaterialsLatentheatEnum);
121 iomodel->Constant(&this->beta,MaterialsBetaEnum);
122 iomodel->Constant(&this->meltingpoint,MaterialsMeltingpointEnum);
123@@ -99,6 +100,7 @@
124 _printf_(" mu_water: " << mu_water << "\n");
125 _printf_(" heatcapacity: " << heatcapacity << "\n");
126 _printf_(" thermalconductivity: " << thermalconductivity << "\n");
127+ _printf_(" temperateiceconductivity: " << temperateiceconductivity << "\n");
128 _printf_(" latentheat: " << latentheat << "\n");
129 _printf_(" beta: " << beta << "\n");
130 _printf_(" meltingpoint: " << meltingpoint << "\n");
131@@ -168,9 +170,12 @@
132 case MaterialsHeatcapacityEnum:
133 this->heatcapacity=constant;
134 break;
135- case MaterialsThermalconductivityEnum:
136+ case MaterialsThermalconductivityEnum:
137 this->thermalconductivity=constant;
138 break;
139+ case MaterialsTemperateiceconductivityEnum:
140+ this->temperateiceconductivity=constant;
141+ break;
142 case MaterialsLatentheatEnum:
143 this->latentheat=constant;
144 break;
145@@ -307,6 +312,11 @@
146 return thermalconductivity;
147 }
148 /*}}}*/
149+/*FUNCTION Matpar::GetTemperateIceConductivity {{{*/
150+IssmDouble Matpar::GetTemperateIceConductivity(){
151+ return temperateiceconductivity;
152+}
153+/*}}}*/
154 /*FUNCTION Matpar::GetThermalExchangeVelocity {{{*/
155 IssmDouble Matpar::GetThermalExchangeVelocity(){
156 return thermal_exchange_velocity;
157@@ -382,11 +392,22 @@
158 return thermalconductivity/heatcapacity*pow(10.,-5);
159 */
160
161- IssmDouble eps=0.05*heatcapacity;
162+ IssmDouble eps=0.1*heatcapacity;
163 IssmDouble hpmp=PureIceEnthalpy(pressure);
164 IssmDouble kappa_c=thermalconductivity/heatcapacity;
165- IssmDouble kappa_t=thermalconductivity/heatcapacity*pow(10.,-1);
166- return 1./(1.+exp(-(enthalpy-(hpmp))/eps))*(kappa_t-kappa_c) + kappa_c;
167+ IssmDouble kappa_t=temperateiceconductivity/heatcapacity;
168+
169+ if(enthalpy<=hpmp-eps)
170+ return kappa_c;
171+ else if(enthalpy>=hpmp+eps)
172+ return kappa_t;
173+ else {
174+ IssmDouble xi=enthalpy-hpmp;
175+ IssmDouble pi=3.141592653589793238462643;
176+ return kappa_c + (kappa_t-kappa_c)*((xi+eps)/(2*eps) + sin(pi*xi/eps)/(2*pi));
177+ }
178+
179+ //return 1./(1.+exp(-(enthalpy-(hpmp))/eps))*(kappa_t-kappa_c) + kappa_c;
180 }
181 /*}}}*/
182 /*FUNCTION Matpar::GetEnthalpyDiffusionParameterVolume{{{*/
183Index: ../trunk-jpl/src/c/classes/Materials/Matpar.h
184===================================================================
185--- ../trunk-jpl/src/c/classes/Materials/Matpar.h (revision 16589)
186+++ ../trunk-jpl/src/c/classes/Materials/Matpar.h (revision 16590)
187@@ -21,6 +21,7 @@
188 IssmDouble mu_water;
189 IssmDouble heatcapacity;
190 IssmDouble thermalconductivity;
191+ IssmDouble temperateiceconductivity;
192 IssmDouble latentheat;
193 IssmDouble beta;
194 IssmDouble meltingpoint;
195@@ -108,6 +109,7 @@
196 IssmDouble GetThermalExchangeVelocity();
197 IssmDouble GetHeatCapacity();
198 IssmDouble GetThermalConductivity();
199+ IssmDouble GetTemperateIceConductivity();
200 IssmDouble GetLatentHeat();
201 IssmDouble GetBeta();
202 IssmDouble GetMeltingPoint();
203Index: ../trunk-jpl/src/c/classes/Elements/Penta.cpp
204===================================================================
205--- ../trunk-jpl/src/c/classes/Elements/Penta.cpp (revision 16589)
206+++ ../trunk-jpl/src/c/classes/Elements/Penta.cpp (revision 16590)
207@@ -3814,7 +3814,7 @@
208 if (stabilization==2) diameter=MinEdgeLength(xyz_list);
209
210 /* Start looping on the number of gaussian points: */
211- gauss=new GaussPenta(2,2);
212+ gauss=new GaussPenta(3,3);
213 for(int ig=gauss->begin();ig<gauss->end();ig++){
214
215 gauss->GaussPoint(ig);
216@@ -3827,6 +3827,7 @@
217 enthalpy_input->GetInputValue(&enthalpy, gauss);
218 pressure_input->GetInputValue(&pressure, gauss);
219 kappa=matpar->GetEnthalpyDiffusionParameter(enthalpy,pressure); _assert_(kappa>0.);
220+
221 D_scalar_conduct=gauss->weight*Jdet*kappa/rho_ice;
222 if(reCast<bool,IssmDouble>(dt)) D_scalar_conduct=D_scalar_conduct*dt;
223
224@@ -3894,7 +3895,7 @@
225 }
226 else if(stabilization==2){
227 GetNodalFunctionsP1Derivatives(&dbasis[0][0],&xyz_list[0][0], gauss);
228- tau_parameter=GetStabilizationParameter(u-um,v-vm,w-wm,diameter,kappa);
229+ tau_parameter=GetStabilizationParameter(u-um,v-vm,w-wm,diameter,kappa/rho_ice);
230
231 for(i=0;i<numdof;i++){
232 for(j=0;j<numdof;j++){
233Index: ../trunk-jpl/src/m/classes/matice.m
234===================================================================
235--- ../trunk-jpl/src/m/classes/matice.m (revision 16589)
236+++ ../trunk-jpl/src/m/classes/matice.m (revision 16590)
237@@ -12,6 +12,7 @@
238 heatcapacity = 0.;
239 latentheat = 0.;
240 thermalconductivity = 0.;
241+ temperateiceconductivity = 0.;
242 meltingpoint = 0.;
243 beta = 0.;
244 mixed_layer_capacity = 0.;
245@@ -68,6 +69,9 @@
246
247 %ice thermal conductivity (W/m/K)
248 obj.thermalconductivity=2.4;
249+
250+ %wet ice thermal conductivity (W/m/K)
251+ obj.temperateiceconductivity=.24;
252
253 %the melting point of ice at 1 atmosphere of pressure in K
254 obj.meltingpoint=273.15;
255@@ -117,7 +121,8 @@
256 fielddisplay(obj,'rho_freshwater','fresh water density [kg/m^3]');
257 fielddisplay(obj,'mu_water','water viscosity [N s/m^2]');
258 fielddisplay(obj,'heatcapacity','heat capacity [J/kg/K]');
259- fielddisplay(obj,'thermalconductivity','ice thermal conductivity [W/m/K]');
260+ fielddisplay(obj,'thermalconductivity',['ice thermal conductivity [W/m/K]']);
261+ fielddisplay(obj,'temperateiceconductivity','temperate ice thermal conductivity [W/m/K]');
262 fielddisplay(obj,'meltingpoint','melting point of ice at 1atm in K');
263 fielddisplay(obj,'latentheat','latent heat of fusion [J/m^3]');
264 fielddisplay(obj,'beta','rate of change of melting point with pressure [K/Pa]');
265@@ -140,6 +145,7 @@
266 WriteData(fid,'object',obj,'class','materials','fieldname','heatcapacity','format','Double');
267 WriteData(fid,'object',obj,'class','materials','fieldname','latentheat','format','Double');
268 WriteData(fid,'object',obj,'class','materials','fieldname','thermalconductivity','format','Double');
269+ WriteData(fid,'object',obj,'class','materials','fieldname','temperateiceconductivity','format','Double');
270 WriteData(fid,'object',obj,'class','materials','fieldname','meltingpoint','format','Double');
271 WriteData(fid,'object',obj,'class','materials','fieldname','beta','format','Double');
272 WriteData(fid,'object',obj,'class','materials','fieldname','mixed_layer_capacity','format','Double');
273Index: ../trunk-jpl/src/m/classes/matice.py
274===================================================================
275--- ../trunk-jpl/src/m/classes/matice.py (revision 16589)
276+++ ../trunk-jpl/src/m/classes/matice.py (revision 16590)
277@@ -20,6 +20,7 @@
278 self.heatcapacity = 0.
279 self.latentheat = 0.
280 self.thermalconductivity = 0.
281+ self.temperateiceconductivity = 0.
282 self.meltingpoint = 0.
283 self.beta = 0.
284 self.mixed_layer_capacity = 0.
285@@ -45,6 +46,7 @@
286 string="%s\n%s"%(string,fielddisplay(self,"mu_water","water viscosity [N s/m^2]"))
287 string="%s\n%s"%(string,fielddisplay(self,"heatcapacity","heat capacity [J/kg/K]"))
288 string="%s\n%s"%(string,fielddisplay(self,"thermalconductivity","ice thermal conductivity [W/m/K]"))
289+ string="%s\n%s"%(string,fielddisplay(self,"temperateiceconductivity","temperate ice thermal conductivity [W/m/K]"))
290 string="%s\n%s"%(string,fielddisplay(self,"meltingpoint","melting point of ice at 1atm in K"))
291 string="%s\n%s"%(string,fielddisplay(self,"latentheat","latent heat of fusion [J/m^3]"))
292 string="%s\n%s"%(string,fielddisplay(self,"beta","rate of change of melting point with pressure [K/Pa]"))
293@@ -82,6 +84,9 @@
294 #ice thermal conductivity (W/m/K)
295 self.thermalconductivity=2.4
296
297+ #temperate ice thermal conductivity (W/m/K)
298+ self.temperateiceconductivity=0.24
299+
300 #the melting point of ice at 1 atmosphere of pressure in K
301 self.meltingpoint=273.15
302
303@@ -129,6 +134,7 @@
304 WriteData(fid,'object',self,'class','materials','fieldname','heatcapacity','format','Double')
305 WriteData(fid,'object',self,'class','materials','fieldname','latentheat','format','Double')
306 WriteData(fid,'object',self,'class','materials','fieldname','thermalconductivity','format','Double')
307+ WriteData(fid,'object',self,'class','materials','fieldname','temperateiceconductivity','format','Double')
308 WriteData(fid,'object',self,'class','materials','fieldname','meltingpoint','format','Double')
309 WriteData(fid,'object',self,'class','materials','fieldname','beta','format','Double')
310 WriteData(fid,'object',self,'class','materials','fieldname','mixed_layer_capacity','format','Double')
311Index: ../trunk-jpl/src/m/enum/MaterialsTemperateiceconductivityEnum.m
312===================================================================
313--- ../trunk-jpl/src/m/enum/MaterialsTemperateiceconductivityEnum.m (revision 0)
314+++ ../trunk-jpl/src/m/enum/MaterialsTemperateiceconductivityEnum.m (revision 16590)
315@@ -0,0 +1,11 @@
316+function macro=MaterialsTemperateiceconductivityEnum()
317+%MATERIALSTEMPERATEICECONDUCTIVITYENUM - Enum of MaterialsTemperateiceconductivity
318+%
319+% WARNING: DO NOT MODIFY THIS FILE
320+% this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
321+% Please read src/c/shared/Enum/README for more information
322+%
323+% Usage:
324+% macro=MaterialsTemperateiceconductivityEnum()
325+
326+macro=StringToEnum('MaterialsTemperateiceconductivity');
327Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
328===================================================================
329--- ../trunk-jpl/src/m/enum/EnumDefinitions.py (revision 16589)
330+++ ../trunk-jpl/src/m/enum/EnumDefinitions.py (revision 16590)
331@@ -177,6 +177,7 @@
332 def MaterialsMuWaterEnum(): return StringToEnum("MaterialsMuWater")[0]
333 def MaterialsThermalExchangeVelocityEnum(): return StringToEnum("MaterialsThermalExchangeVelocity")[0]
334 def MaterialsThermalconductivityEnum(): return StringToEnum("MaterialsThermalconductivity")[0]
335+def MaterialsTemperateiceconductivityEnum(): return StringToEnum("MaterialsTemperateiceconductivity")[0]
336 def MaterialsLithosphereShearModulusEnum(): return StringToEnum("MaterialsLithosphereShearModulus")[0]
337 def MaterialsLithosphereDensityEnum(): return StringToEnum("MaterialsLithosphereDensity")[0]
338 def MaterialsMantleShearModulusEnum(): return StringToEnum("MaterialsMantleShearModulus")[0]
Note: See TracBrowser for help on using the repository browser.