Changeset 22150
- Timestamp:
- 10/08/17 12:41:13 (8 years ago)
- Location:
- issm/trunk-jpl
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/linearbasalforcings.py
r22138 r22150 69 69 if 'MasstransportAnalysis' in analyses and not (solution=='TransientSolution' and not md.transient.ismasstransport): 70 70 md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1) 71 md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0 );72 md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<', md.basalforcings.upperwater_elevation);73 md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','< ',0);71 md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0,'singletimeseries',1) 72 md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<','basalforcings.upperwater_elevation','singletimeseries',1) 73 md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<=',0,'singletimeseries',1) 74 74 75 75 if 'BalancethicknessAnalysis' in analyses: 76 76 md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 77 md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0 );78 md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<', md.basalforcings.upperwater_elevation);79 md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','< ',0);77 md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0,'singletimeseries',1) 78 md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<','basalforcings.upperwater_elevation','singletimeseries',1) 79 md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<=',0,'singletimeseries',1) 80 80 81 81 if 'ThermalAnalysis' in analyses and not (solution=='TransientSolution' and not md.transient.isthermal): 82 82 md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1) 83 md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0 );84 md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<', md.basalforcings.upperwater_elevation);85 md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<=',0 );83 md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0,'singletimeseries',1) 84 md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<','basalforcings.upperwater_elevation','singletimeseries',1) 85 md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<=',0,'singletimeseries',1) 86 86 md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'Inf',1,'timeseries',1,'>=',0) 87 87 … … 93 93 94 94 floatingice_melting_rate = np.zeros((md.mesh.numberofvertices)) 95 pos=np.nonzero(md.geometry.base<=md.basalforcings.deepwater_elevation)96 floatingice_melting_rate[pos]=md.basalforcings.deepwater_melting_rate97 pos=np.nonzero(np.logical_and(md.geometry.base>md.basalforcings.deepwater_elevation,md.geometry.base<md.basalforcings.upperwater_elevation))98 floatingice_melting_rate[pos]=md.basalforcings.deepwater_melting_rate*(md.geometry.base[pos]-md.basalforcings.upperwater_elevation)/(md.basalforcings.deepwater_elevation-md.basalforcings.upperwater_elevation)99 95 100 WriteData(fid,prefix,'name','md.basalforcings.model','data',2,'format','Integer'); 96 pos = np.nonzero(md.geometry.base <= md.basalforcings.deepwater_elevation) 97 floatingice_melting_rate[pos] = md.basalforcings.deepwater_melting_rate[0][0] 98 99 pos = np.nonzero(np.logical_and(md.geometry.base > md.basalforcings.deepwater_elevation, md.geometry.base < md.basalforcings.upperwater_elevation)) 100 101 floatingice_melting_rate[pos] = md.basalforcings.deepwater_melting_rate[0][0] * (md.geometry.base[pos] - md.basalforcings.upperwater_elevation) / (md.basalforcings.deepwater_elevation - md.basalforcings.upperwater_elevation) 102 103 WriteData(fid,prefix,'name','md.basalforcings.model','data',2,'format','Integer') 104 WriteData(fid,prefix,'data',floatingice_melting_rate,'name','md.basalforcings.floatingice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 101 105 WriteData(fid,prefix,'object',self,'fieldname','groundedice_melting_rate','name','md.basalforcings.groundedice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 102 WriteData(fid,prefix,'data',floatingice_melting_rate,'name','md.basalforcings.floatingice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)103 106 WriteData(fid,prefix,'object',self,'fieldname','geothermalflux','name','md.basalforcings.geothermalflux','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 104 WriteData(fid,prefix,'object',self,'fieldname','deepwater_melting_rate',' name','md.basalforcings.deepwater_melting_rate','format','DoubleMat','mattype',3,'timeserieslength',2,'yts',md.constants.yts,'scale',1./yts,)105 WriteData(fid,prefix,'object',self,'fieldname','deepwater_elevation',' name','md.basalforcings.deepwater_elevation','format','DoubleMat','mattype',3,'timeserieslength',2,'yts',md.constants.yts)106 WriteData(fid,prefix,'object',self,'fieldname','upperwater_elevation',' name','md.basalforcings.upperwater_elevation','format','DoubleMat','mattype',3,'timeserieslength',2,'yts',md.constants.yts)107 WriteData(fid,prefix,'object',self,'fieldname','deepwater_melting_rate','format','DoubleMat','mattype',3,'timeserieslength',2,'name','md.basalforcings.deepwater_melting_rate','scale',1./yts,'yts',md.constants.yts) 108 WriteData(fid,prefix,'object',self,'fieldname','deepwater_elevation','format','DoubleMat','mattype',3,'name','md.basalforcings.deepwater_elevation','yts',md.constants.yts) 109 WriteData(fid,prefix,'object',self,'fieldname','upperwater_elevation','format','DoubleMat','mattype',3,'name','md.basalforcings.upperwater_elevation','yts',md.constants.yts) 107 110 # }}} -
issm/trunk-jpl/src/m/classes/mesh2d.py
r22096 r22150 120 120 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','numberofvertices','format','Integer') 121 121 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','average_vertex_connectivity','format','Integer') 122 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','segments','format','DoubleMat','mattype',3); 122 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','vertexonboundary','format','DoubleMat','mattype',1) 123 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','segments','format','DoubleMat','mattype',3) 123 124 # }}} -
issm/trunk-jpl/src/m/classes/model.py
r22122 r22150 156 156 'levelset', 157 157 'calving', 158 'gia',159 'esa',160 'love',158 'love', 159 'gia', 160 'esa', 161 161 'autodiff', 162 162 'inversion', -
issm/trunk-jpl/src/m/classes/settings.py
r21510 r22150 79 79 WriteData(fid,prefix,'object',self,'fieldname','output_frequency','format','Integer') 80 80 WriteData(fid,prefix,'object',self,'fieldname','recording_frequency','format','Integer') 81 82 if self.waitonlock>0: 83 WriteData(fid,prefix,'name','md.settings.waitonlock','data',True,'format','Boolean') 84 else: 85 WriteData(fid,prefix,'name','md.settings.waitonlock','data',False,'format','Boolean') 81 86 WriteData(fid,prefix,'object',self,'fieldname','solver_residue_threshold','format','Double') 82 if self.waitonlock>0:83 WriteData(fid,prefix,'name','md.settings.waitonlock','data',True,'format','Boolean');84 else:85 WriteData(fid,prefix,'name','md.settings.waitonlock','data',False,'format','Boolean');86 87 # }}} -
issm/trunk-jpl/src/m/consistency/checkfield.py
r21410 r22150 188 188 md = md.checkmessage(options.getfieldvalue('message',\ 189 189 "field '%s' columns must not contain duplicate timesteps" % fieldname)) 190 elif np.size(field,0) == 1: 191 if np.ndim(field) > 1 and not np.size(field,1) == 1: 192 md = md.checkmessage(options.getfieldvalue('message',\ 193 "field '%s' should be either a scalar or have 2 lines" % fieldname)) 190 194 else: 191 195 md = md.checkmessage(options.getfieldvalue('message',\ 192 "field '%s' should have 2 lines " % fieldname))196 "field '%s' should have 2 lines or be a scalar" % fieldname)) 193 197 194 198 return md -
issm/trunk-jpl/test/NightlyRun/test292.py
r21408 r22150 18 18 md.cluster=generic('name',gethostname(),'np',3) 19 19 md.basalforcings=linearbasalforcings(md.basalforcings) 20 md.basalforcings.deepwater_melting_rate = np.array([[50.,50.],[0.,6.]]) 20 21 md=solve(md,'Transient') 21 22
Note:
See TracChangeset
for help on using the changeset viewer.