Changeset 22150


Ignore:
Timestamp:
10/08/17 12:41:13 (8 years ago)
Author:
kruegern
Message:

CHG: matched changes from m files to py files including test292, checkfield, and linearbasalforcings; and some class files that led to excess differences in m vs py test bin files (mostly a few things that were out of order).

Location:
issm/trunk-jpl
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/linearbasalforcings.py

    r22138 r22150  
    6969                if 'MasstransportAnalysis' in analyses and not (solution=='TransientSolution' and not md.transient.ismasstransport):
    7070                        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)
    7474
    7575                if 'BalancethicknessAnalysis' in analyses:
    7676                        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)
    8080
    8181                if 'ThermalAnalysis' in analyses and not (solution=='TransientSolution' and not md.transient.isthermal):
    8282                        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)
    8686                        md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'Inf',1,'timeseries',1,'>=',0)
    8787
     
    9393
    9494                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_rate
    97                 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)
    9995
    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)
    101105                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)
    103106                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)
    107110        # }}}
  • issm/trunk-jpl/src/m/classes/mesh2d.py

    r22096 r22150  
    120120                WriteData(fid,prefix,'object',self,'class','mesh','fieldname','numberofvertices','format','Integer')
    121121                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)
    123124        # }}}
  • issm/trunk-jpl/src/m/classes/model.py

    r22122 r22150  
    156156                        'levelset',
    157157                        'calving',
    158                                                 'gia',
    159                                                 'esa',
    160                                                 'love',
     158                        'love',
     159                        'gia',
     160                        'esa',
    161161                        'autodiff',
    162162                        'inversion',
  • issm/trunk-jpl/src/m/classes/settings.py

    r21510 r22150  
    7979                WriteData(fid,prefix,'object',self,'fieldname','output_frequency','format','Integer')
    8080                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')
    8186                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');
    8687        # }}}
  • issm/trunk-jpl/src/m/consistency/checkfield.py

    r21410 r22150  
    188188                                md = md.checkmessage(options.getfieldvalue('message',\
    189189                                                "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))
    190194                else:
    191195                                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))
    193197
    194198        return md
  • issm/trunk-jpl/test/NightlyRun/test292.py

    r21408 r22150  
    1818md.cluster=generic('name',gethostname(),'np',3)
    1919md.basalforcings=linearbasalforcings(md.basalforcings)
     20md.basalforcings.deepwater_melting_rate = np.array([[50.,50.],[0.,6.]])
    2021md=solve(md,'Transient')
    2122
Note: See TracChangeset for help on using the changeset viewer.