Changeset 23658
- Timestamp:
- 01/24/19 17:18:43 (6 years ago)
- Location:
- issm/trunk-jpl/src/m/classes
- Files:
-
- 1 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/calving.py
r21049 r23658 24 24 string=' Calving parameters:' 25 25 string="%s\n%s"%(string,fielddisplay(self,'calvingrate','calving rate at given location [m/a]')) 26 string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]'))27 26 28 27 return string … … 30 29 def extrude(self,md): # {{{ 31 30 self.calvingrate=project3d(md,'vector',self.calvingrate,'type','node') 32 self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node')33 31 return self 34 32 #}}} … … 44 42 45 43 md = checkfield(md,'fieldname','calving.calvingrate','>=',0,'timeseries',1,'NaN',1,'Inf',1); 46 md = checkfield(md,'fieldname','calving.meltingrate','>=',0,'timeseries',1,'NaN',1,'Inf',1);47 44 48 45 return md … … 54 51 WriteData(fid,prefix,'name','md.calving.law','data',1,'format','Integer'); 55 52 WriteData(fid,prefix,'object',self,'fieldname','calvingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts) 56 WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts)57 53 # }}} -
issm/trunk-jpl/src/m/classes/calvinglevermann.py
r21049 r23658 23 23 string=' Calving Levermann parameters:' 24 24 string="%s\n%s"%(string,fielddisplay(self,'coeff','proportionality coefficient in Levermann model')) 25 string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]'))26 25 27 26 return string … … 29 28 def extrude(self,md): # {{{ 30 29 self.coeff=project3d(md,'vector',self.coeff,'type','node') 31 self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node')32 30 return self 33 31 #}}} … … 44 42 45 43 md = checkfield(md,'fieldname','calving.coeff','size',[md.mesh.numberofvertices],'>',0) 46 md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices],'>=',0)47 44 return md 48 45 # }}} … … 51 48 WriteData(fid,prefix,'name','md.calving.law','data',3,'format','Integer'); 52 49 WriteData(fid,prefix,'object',self,'fieldname','coeff','format','DoubleMat','mattype',1) 53 WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts)54 50 # }}} -
issm/trunk-jpl/src/m/classes/calvingminthickness.py
r22267 r23658 23 23 string=' Calving Minimum thickness:' 24 24 string="%s\n%s"%(string,fielddisplay(self,'min_thickness','minimum thickness below which no ice is allowed')) 25 string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]'))26 25 return string 27 26 #}}} 28 27 def extrude(self,md): # {{{ 29 self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node')30 28 return self 31 29 #}}} … … 42 40 43 41 md = checkfield(md,'fieldname','calving.min_thickness','>',0,'NaN',1,'Inf',1) 44 md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices],'>=',0)45 42 return md 46 43 # }}} … … 49 46 WriteData(fid,prefix,'name','md.calving.law','data',4,'format','Integer') 50 47 WriteData(fid,prefix,'object',self,'fieldname','min_thickness','format','Double') 51 WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts)52 48 # }}} -
issm/trunk-jpl/src/m/classes/calvingvonmises.py
r22267 r23658 27 27 string="%s\n%s"%(string,fielddisplay(self,'stress_threshold_floatingice','sigma_max applied to floating ice only [Pa]')) 28 28 29 string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]'))30 29 return string 31 30 #}}} 32 31 def extrude(self,md): # {{{ 33 self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node')34 32 return self 35 33 #}}} … … 47 45 md = checkfield(md,'fieldname','calving.stress_threshold_groundedice','>',0,'nan',1,'Inf',1) 48 46 md = checkfield(md,'fieldname','calving.stress_threshold_floatingice','>',0,'nan',1,'Inf',1) 49 md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'timeseries',1,'>=',0)50 47 51 48 return md … … 57 54 WriteData(fid,prefix,'object',self,'fieldname','stress_threshold_groundedice','format','DoubleMat','mattype',1) 58 55 WriteData(fid,prefix,'object',self,'fieldname','stress_threshold_floatingice','format','DoubleMat','mattype',1) 59 WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts)60 56 # }}} -
issm/trunk-jpl/src/m/classes/frontalforcings.py
r23655 r23658 15 15 16 16 self.meltingrate = float('NaN') 17 self.melt_parameterization = 0.18 self.basin = float('NaN')19 self.numberofbasins = float('NaN')20 self.subglacial_discharge = float('NaN')21 self.thermalforcings = float('NaN')22 17 23 18 #set defaults … … 27 22 def __repr__(self): # {{{ 28 23 string=' Frontalforcings parameters:' 29 string="%s\n%s"%(string,fielddisplay(self,'melt_parameterization','0: no, 1: Rignot melt parameterization (Rignot et al.,2016)')) 30 if self.melt_parameterization==0: 31 string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]')) 32 elif self.melt_parameterization==1: 33 string="%s\n%s"%(string,fielddisplay(self,'basin','basin ID for vertices')) 34 string="%s\n%s"%(string,fielddisplay(self,'numberofbasins','number of basins')) 35 string="%s\n%s"%(string,fielddisplay(self,'subglacial_discharge','sum of subglacial discharge for each basin [m/d]')) 36 string="%s\n%s"%(string,fielddisplay(self,'thermalforcing','thermal forcing [C]')) 24 string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]')) 37 25 38 26 return string … … 49 37 50 38 #Early return 51 if (solution!='TransientSolution') or (not md.transient.ismovingfront): 52 return md 53 54 md = checkfield(md,'fieldname','frontalforcings.melt_parameterization','numel',[1],'values',[0,1]); 55 if self.melt_parameterization==0: 56 md = checkfield(md,'fieldname','frontalforcings.meltingrate','NaN',1,'Inf',1,'timeseries',1,'>=',0); 57 elif self.melt_parameterization==1: 58 md = checkfield(md,'fieldname','frontalforcings.basin','>',0,'nan',1,'Inf',1); 59 md = checkfield(md,'fieldname','frontalforcings.numberofbasins','numel',[1]); 60 md = checkfield(md,'fieldname','frontalforcings.subglacial_discharge','>=',0,'nan',1,'Inf',1,'timeseries',1); 61 md = checkfield(md,'fieldname','frontalforcings.thermalforcing','nan',1,'Inf',1,'timeseries',1); 39 if (solution!='TransientSolution') or (not md.transient.ismovingfront): 40 return md 41 42 md = checkfield(md,'fieldname','frontalforcings.meltingrate','NaN',1,'Inf',1,'timeseries',1,'>=',0); 62 43 63 44 return md … … 65 46 def marshall(self,prefix,md,fid): # {{{ 66 47 67 48 yts=md.constants.yts 68 49 69 WriteData(fid,prefix,'object',self,'fieldname','melt_parameterization','format','Integer'); 70 if self.melt_parameterization==0: 71 WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts); 72 elif self.melt_parameterization==1: 73 WriteData(fid,prefix,'object',self,'fieldname','basin','format','DoubleMat','mattype',1); 74 WriteData(fid,prefix,'object',self,'fieldname','numberofbasins','format','Integer'); 75 WriteData(fid,prefix,'object',self,'fieldname','subglacial_discharge','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1); 76 WriteData(fid,prefix,'object',self,'fieldname','thermalforcing','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1); 50 WriteData(fid,prefix,'name','md.frontalforcings.parameterization','data',1,'format','Integer') 51 WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts); 77 52 78 53 # }}}
Note:
See TracChangeset
for help on using the changeset viewer.