Index: ../trunk-jpl/src/m/classes/calvinglevermann.py =================================================================== --- ../trunk-jpl/src/m/classes/calvinglevermann.py (revision 23657) +++ ../trunk-jpl/src/m/classes/calvinglevermann.py (revision 23658) @@ -22,13 +22,11 @@ def __repr__(self): # {{{ string=' Calving Levermann parameters:' string="%s\n%s"%(string,fielddisplay(self,'coeff','proportionality coefficient in Levermann model')) - string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]')) return string #}}} def extrude(self,md): # {{{ self.coeff=project3d(md,'vector',self.coeff,'type','node') - self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node') return self #}}} def setdefaultparameters(self): # {{{ @@ -43,7 +41,6 @@ return md md = checkfield(md,'fieldname','calving.coeff','size',[md.mesh.numberofvertices],'>',0) - md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices],'>=',0) return md # }}} def marshall(self,prefix,md,fid): # {{{ @@ -50,5 +47,4 @@ yts=md.constants.yts WriteData(fid,prefix,'name','md.calving.law','data',3,'format','Integer'); WriteData(fid,prefix,'object',self,'fieldname','coeff','format','DoubleMat','mattype',1) - WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts) # }}} Index: ../trunk-jpl/src/m/classes/frontalforcings.py =================================================================== --- ../trunk-jpl/src/m/classes/frontalforcings.py (revision 23657) +++ ../trunk-jpl/src/m/classes/frontalforcings.py (revision 23658) @@ -14,11 +14,6 @@ def __init__(self): # {{{ self.meltingrate = float('NaN') - self.melt_parameterization = 0. - self.basin = float('NaN') - self.numberofbasins = float('NaN') - self.subglacial_discharge = float('NaN') - self.thermalforcings = float('NaN') #set defaults self.setdefaultparameters() @@ -26,14 +21,7 @@ #}}} def __repr__(self): # {{{ string=' Frontalforcings parameters:' - string="%s\n%s"%(string,fielddisplay(self,'melt_parameterization','0: no, 1: Rignot melt parameterization (Rignot et al.,2016)')) - if self.melt_parameterization==0: - string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]')) - elif self.melt_parameterization==1: - string="%s\n%s"%(string,fielddisplay(self,'basin','basin ID for vertices')) - string="%s\n%s"%(string,fielddisplay(self,'numberofbasins','number of basins')) - string="%s\n%s"%(string,fielddisplay(self,'subglacial_discharge','sum of subglacial discharge for each basin [m/d]')) - string="%s\n%s"%(string,fielddisplay(self,'thermalforcing','thermal forcing [C]')) + string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]')) return string #}}} @@ -48,31 +36,18 @@ def checkconsistency(self,md,solution,analyses): # {{{ #Early return - if (solution!='TransientSolution') or (not md.transient.ismovingfront): - return md - - md = checkfield(md,'fieldname','frontalforcings.melt_parameterization','numel',[1],'values',[0,1]); - if self.melt_parameterization==0: - md = checkfield(md,'fieldname','frontalforcings.meltingrate','NaN',1,'Inf',1,'timeseries',1,'>=',0); - elif self.melt_parameterization==1: - md = checkfield(md,'fieldname','frontalforcings.basin','>',0,'nan',1,'Inf',1); - md = checkfield(md,'fieldname','frontalforcings.numberofbasins','numel',[1]); - md = checkfield(md,'fieldname','frontalforcings.subglacial_discharge','>=',0,'nan',1,'Inf',1,'timeseries',1); - md = checkfield(md,'fieldname','frontalforcings.thermalforcing','nan',1,'Inf',1,'timeseries',1); + if (solution!='TransientSolution') or (not md.transient.ismovingfront): + return md + md = checkfield(md,'fieldname','frontalforcings.meltingrate','NaN',1,'Inf',1,'timeseries',1,'>=',0); + return md # }}} def marshall(self,prefix,md,fid): # {{{ - yts=md.constants.yts + yts=md.constants.yts - WriteData(fid,prefix,'object',self,'fieldname','melt_parameterization','format','Integer'); - if self.melt_parameterization==0: - WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts); - elif self.melt_parameterization==1: - WriteData(fid,prefix,'object',self,'fieldname','basin','format','DoubleMat','mattype',1); - WriteData(fid,prefix,'object',self,'fieldname','numberofbasins','format','Integer'); - WriteData(fid,prefix,'object',self,'fieldname','subglacial_discharge','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1); - WriteData(fid,prefix,'object',self,'fieldname','thermalforcing','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1); + WriteData(fid,prefix,'name','md.frontalforcings.parameterization','data',1,'format','Integer') + WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts); # }}} Index: ../trunk-jpl/src/m/classes/calvingminthickness.py =================================================================== --- ../trunk-jpl/src/m/classes/calvingminthickness.py (revision 23657) +++ ../trunk-jpl/src/m/classes/calvingminthickness.py (revision 23658) @@ -22,11 +22,9 @@ def __repr__(self): # {{{ string=' Calving Minimum thickness:' string="%s\n%s"%(string,fielddisplay(self,'min_thickness','minimum thickness below which no ice is allowed')) - string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]')) return string #}}} def extrude(self,md): # {{{ - self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node') return self #}}} def setdefaultparameters(self): # {{{ @@ -41,7 +39,6 @@ return md = checkfield(md,'fieldname','calving.min_thickness','>',0,'NaN',1,'Inf',1) - md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices],'>=',0) return md # }}} def marshall(self,prefix,md,fid): # {{{ @@ -48,5 +45,4 @@ yts=md.constants.yts WriteData(fid,prefix,'name','md.calving.law','data',4,'format','Integer') WriteData(fid,prefix,'object',self,'fieldname','min_thickness','format','Double') - WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts) # }}} Index: ../trunk-jpl/src/m/classes/frontalforcingsrignot.py =================================================================== --- ../trunk-jpl/src/m/classes/frontalforcingsrignot.py (nonexistent) +++ ../trunk-jpl/src/m/classes/frontalforcingsrignot.py (revision 23658) @@ -0,0 +1,64 @@ +from fielddisplay import fielddisplay +from project3d import project3d +from checkfield import checkfield +from WriteData import WriteData + +class frontalforcingsrignot(object): + """ + FRONTAL FORCINGS Rignot class definition + + Usage: + frontalforcingsrignot=frontalforcingsrignot(); + """ + + def __init__(self): # {{{ + + self.basin= float('NaN'); + self.numberofbasins = 0.; + self.subglacial_discharge = float('NaN'); + self.thermalforcing = float('NaN'); + + #set defaults + self.setdefaultparameters() + + #}}} + def __repr__(self): # {{{ + string=' Frontalforcings parameters:' + string="%s\n%s"%(string,fielddisplay(self,'basin','basin ID for vertices')) + string="%s\n%s"%(string,fielddisplay(self,'numberofbasins','number of basins')) + string="%s\n%s"%(string,fielddisplay(self,'subglacial_discharge','sum of subglacial discharge for each basin [m/d]')) + string="%s\n%s"%(string,fielddisplay(self,'thermalforcing','thermal forcing [C]')) + + return string + #}}} + def extrude(self,md): # {{{ + return self + #}}} + def setdefaultparameters(self): # {{{ + + return self + #}}} + def checkconsistency(self,md,solution,analyses): # {{{ + + #Early return + if (solution!='TransientSolution') or (not md.transient.ismovingfront): + return md + + md = checkfield(md,'fieldname','frontalforcings.basin','>',0,'nan',1,'Inf',1); + md = checkfield(md,'fieldname','frontalforcings.numberofbasins','numel',[1]); + md = checkfield(md,'fieldname','frontalforcings.subglacial_discharge','>=',0,'nan',1,'Inf',1,'timeseries',1); + md = checkfield(md,'fieldname','frontalforcings.thermalforcing','nan',1,'Inf',1,'timeseries',1); + + return md + # }}} + def marshall(self,prefix,md,fid): # {{{ + + yts=md.constants.yts + + WriteData(fid,prefix,'name','md.frontalforcings.parameterization','data',2,'format','Integer') + WriteData(fid,prefix,'object',self,'fieldname','basin','format','DoubleMat','mattype',1); + WriteData(fid,prefix,'object',self,'fieldname','numberofbasins','format','Integer'); + WriteData(fid,prefix,'object',self,'fieldname','subglacial_discharge','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1); + WriteData(fid,prefix,'object',self,'fieldname','thermalforcing','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1); + + # }}} Index: ../trunk-jpl/src/m/classes/calving.py =================================================================== --- ../trunk-jpl/src/m/classes/calving.py (revision 23657) +++ ../trunk-jpl/src/m/classes/calving.py (revision 23658) @@ -23,13 +23,11 @@ def __repr__(self): # {{{ string=' Calving parameters:' string="%s\n%s"%(string,fielddisplay(self,'calvingrate','calving rate at given location [m/a]')) - string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]')) return string #}}} def extrude(self,md): # {{{ self.calvingrate=project3d(md,'vector',self.calvingrate,'type','node') - self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node') return self #}}} def setdefaultparameters(self): # {{{ @@ -43,7 +41,6 @@ return md md = checkfield(md,'fieldname','calving.calvingrate','>=',0,'timeseries',1,'NaN',1,'Inf',1); - md = checkfield(md,'fieldname','calving.meltingrate','>=',0,'timeseries',1,'NaN',1,'Inf',1); return md # }}} @@ -53,5 +50,4 @@ WriteData(fid,prefix,'name','md.calving.law','data',1,'format','Integer'); WriteData(fid,prefix,'object',self,'fieldname','calvingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts) - WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts) # }}} Index: ../trunk-jpl/src/m/classes/calvingvonmises.py =================================================================== --- ../trunk-jpl/src/m/classes/calvingvonmises.py (revision 23657) +++ ../trunk-jpl/src/m/classes/calvingvonmises.py (revision 23658) @@ -26,11 +26,9 @@ string="%s\n%s"%(string,fielddisplay(self,'stress_threshold_groundedice','sigma_max applied to grounded ice only [Pa]')) string="%s\n%s"%(string,fielddisplay(self,'stress_threshold_floatingice','sigma_max applied to floating ice only [Pa]')) - string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]')) return string #}}} def extrude(self,md): # {{{ - self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node') return self #}}} def setdefaultparameters(self): # {{{ @@ -46,7 +44,6 @@ md = checkfield(md,'fieldname','calving.stress_threshold_groundedice','>',0,'nan',1,'Inf',1) md = checkfield(md,'fieldname','calving.stress_threshold_floatingice','>',0,'nan',1,'Inf',1) - md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'timeseries',1,'>=',0) return md # }}} @@ -56,5 +53,4 @@ WriteData(fid,prefix,'name','md.calving.law','data',2,'format','Integer') WriteData(fid,prefix,'object',self,'fieldname','stress_threshold_groundedice','format','DoubleMat','mattype',1) WriteData(fid,prefix,'object',self,'fieldname','stress_threshold_floatingice','format','DoubleMat','mattype',1) - WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts) # }}}