Changeset 17963
- Timestamp:
- 05/08/14 11:38:48 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/materials/DepthAvgTempCond.py
r17961 r17963 1 def Tbar=DepthAvgTempCond(md) 1 import numpy as npy 2 from TMeltingPoint import TMeltingPoint 3 4 def DepthAvgTempCond(md): 2 5 ''' compute conduction dependent temperature profile for an ice sheet. 3 4 6 Usage: 5 7 Tbar=DepthAvgTempCond(md) 6 8 ''' 7 9 8 Tpmp=TMeltingPoint(md.materials.meltingpoint,0); #pressure melting point at 0 pressure. 9 k=md.materials.thermalconductivity 10 G=md.basalforcings.geothermalflux 11 H=md.geometry.thickness 12 Ts=md.initialization.temperature 13 alpha=G*H/k 10 Tpmp=TMeltingPoint(md.materials.meltingpoint,0) #pressure melting point at 0 pressure. 14 11 15 Tbar=npy.zeros(md.mesh.numberofvertices,) 12 k=md.materials.thermalconductivity 13 G=md.basalforcings.geothermalflux 14 H=md.geometry.thickness[:,0] 15 Ts=md.initialization.temperature 16 alpha=G*H/k 16 17 17 #find temperature average when we are below melting point: 18 pos=numpy.nonzero( (Ts+alpha) < Tpmp) 19 Tbar[pos]=Ts[pos]+alpha[pos]/2 18 Tbar=npy.zeros(md.mesh.numberofvertices,) 20 19 21 pos=numpy.nonzero( (Ts+alpha) >=Tpmp) 22 Tbar[pos]=Tpmp+(Tpmp**2-Ts[pos]**2)/2./alpha[pos]+ Tpmp*(Ts[pos]-Tpmp)./alpha[pos] 20 #find temperature average when we are below melting point: 21 pos=npy.nonzero( Ts+alpha < Tpmp) 22 if pos: 23 Tbar[pos]=Ts[pos]+alpha[pos]/2 23 24 24 #on ice shelf, easier: 25 pos=numpy.nonzero(md.mask.groundedice_levelset<=0) 26 Tbar[pos]=(Ts[pos]+Tpmp)/2; 25 pos=npy.nonzero( Ts+alpha>= Tpmp) 26 if pos: 27 Tbar[pos]=Tpmp+(Tpmp**2-Ts[pos]**2)/2/alpha[pos]+ Tpmp*(Ts[pos]-Tpmp)/alpha[pos] 28 29 #on ice shelf, easier: 30 pos=npy.nonzero(md.mask.groundedice_levelset[0]<=0) 31 if pos: 32 Tbar[pos]=(Ts[pos]+Tpmp)/2 27 33 28 34 return Tbar
Note:
See TracChangeset
for help on using the changeset viewer.