source:
issm/oecreview/Archive/23390-24306/ISSM-23657-23658.diff@
24307
Last change on this file since 24307 was 24307, checked in by , 5 years ago | |
---|---|
File size: 12.8 KB |
-
../trunk-jpl/src/m/classes/calvinglevermann.py
22 22 def __repr__(self): # {{{ 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 28 27 #}}} 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 #}}} 34 32 def setdefaultparameters(self): # {{{ … … 43 41 return md 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 # }}} 49 46 def marshall(self,prefix,md,fid): # {{{ … … 50 47 yts=md.constants.yts 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 # }}} -
../trunk-jpl/src/m/classes/frontalforcings.py
14 14 def __init__(self): # {{{ 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 24 19 self.setdefaultparameters() … … 26 21 #}}} 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 39 27 #}}} … … 48 36 def checkconsistency(self,md,solution,analyses): # {{{ 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 62 41 42 md = checkfield(md,'fieldname','frontalforcings.meltingrate','NaN',1,'Inf',1,'timeseries',1,'>=',0); 43 63 44 return md 64 45 # }}} 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 # }}} -
../trunk-jpl/src/m/classes/calvingminthickness.py
22 22 def __repr__(self): # {{{ 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 #}}} 32 30 def setdefaultparameters(self): # {{{ … … 41 39 return 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 # }}} 47 44 def marshall(self,prefix,md,fid): # {{{ … … 48 45 yts=md.constants.yts 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 # }}} -
../trunk-jpl/src/m/classes/frontalforcingsrignot.py
1 from fielddisplay import fielddisplay 2 from project3d import project3d 3 from checkfield import checkfield 4 from WriteData import WriteData 5 6 class frontalforcingsrignot(object): 7 """ 8 FRONTAL FORCINGS Rignot class definition 9 10 Usage: 11 frontalforcingsrignot=frontalforcingsrignot(); 12 """ 13 14 def __init__(self): # {{{ 15 16 self.basin= float('NaN'); 17 self.numberofbasins = 0.; 18 self.subglacial_discharge = float('NaN'); 19 self.thermalforcing = float('NaN'); 20 21 #set defaults 22 self.setdefaultparameters() 23 24 #}}} 25 def __repr__(self): # {{{ 26 string=' Frontalforcings parameters:' 27 string="%s\n%s"%(string,fielddisplay(self,'basin','basin ID for vertices')) 28 string="%s\n%s"%(string,fielddisplay(self,'numberofbasins','number of basins')) 29 string="%s\n%s"%(string,fielddisplay(self,'subglacial_discharge','sum of subglacial discharge for each basin [m/d]')) 30 string="%s\n%s"%(string,fielddisplay(self,'thermalforcing','thermal forcing [C]')) 31 32 return string 33 #}}} 34 def extrude(self,md): # {{{ 35 return self 36 #}}} 37 def setdefaultparameters(self): # {{{ 38 39 return self 40 #}}} 41 def checkconsistency(self,md,solution,analyses): # {{{ 42 43 #Early return 44 if (solution!='TransientSolution') or (not md.transient.ismovingfront): 45 return md 46 47 md = checkfield(md,'fieldname','frontalforcings.basin','>',0,'nan',1,'Inf',1); 48 md = checkfield(md,'fieldname','frontalforcings.numberofbasins','numel',[1]); 49 md = checkfield(md,'fieldname','frontalforcings.subglacial_discharge','>=',0,'nan',1,'Inf',1,'timeseries',1); 50 md = checkfield(md,'fieldname','frontalforcings.thermalforcing','nan',1,'Inf',1,'timeseries',1); 51 52 return md 53 # }}} 54 def marshall(self,prefix,md,fid): # {{{ 55 56 yts=md.constants.yts 57 58 WriteData(fid,prefix,'name','md.frontalforcings.parameterization','data',2,'format','Integer') 59 WriteData(fid,prefix,'object',self,'fieldname','basin','format','DoubleMat','mattype',1); 60 WriteData(fid,prefix,'object',self,'fieldname','numberofbasins','format','Integer'); 61 WriteData(fid,prefix,'object',self,'fieldname','subglacial_discharge','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1); 62 WriteData(fid,prefix,'object',self,'fieldname','thermalforcing','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1); 63 64 # }}} -
../trunk-jpl/src/m/classes/calving.py
23 23 def __repr__(self): # {{{ 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 29 28 #}}} 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 #}}} 35 33 def setdefaultparameters(self): # {{{ … … 43 41 return md 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 49 46 # }}} … … 53 50 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 # }}} -
../trunk-jpl/src/m/classes/calvingvonmises.py
26 26 string="%s\n%s"%(string,fielddisplay(self,'stress_threshold_groundedice','sigma_max applied to grounded ice only [Pa]')) 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 #}}} 36 34 def setdefaultparameters(self): # {{{ … … 46 44 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 52 49 # }}} … … 56 53 WriteData(fid,prefix,'name','md.calving.law','data',2,'format','Integer') 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 # }}}
Note:
See TracBrowser
for help on using the repository browser.