source:
issm/oecreview/Archive/24684-25833/ISSM-25152-25153.diff
Last change on this file was 25834, checked in by , 4 years ago | |
---|---|
File size: 6.1 KB |
-
../trunk-jpl/src/m/classes/solidearth.py
2 2 3 3 from checkfield import checkfield 4 4 from fielddisplay import fielddisplay 5 from lo adinglove import loadinglove5 from lovenumbers import lovenumbers 6 6 from planetradius import planetradius 7 7 from project3d import project3d 8 8 from rotational import rotational … … 19 19 solidearth = solidearth() 20 20 ''' 21 21 22 def __init__(self, *args): #{{{23 self.sealevel 24 self.settings 25 self.surfaceload 26 self.love = loadinglove()27 self.rotational 28 self.planetradius 29 self.requested_outputs 30 self.transitions 22 def __init__(self, *args): #{{{ 23 self.sealevel = np.nan 24 self.settings = solidearthsettings() 25 self.surfaceload = surfaceload() 26 self.lovenumbers = lovenumbers() 27 self.rotational = rotational() 28 self.planetradius = planetradius('earth') 29 self.requested_outputs = ['default'] 30 self.transitions = [] 31 31 32 32 nargin = len(args) 33 33 … … 37 37 raise Exception('constructor not supported') 38 38 #}}} 39 39 40 def __repr__(self): # {{{40 def __repr__(self): # {{{ 41 41 s = ' solidearthinputs, forcings and settings:\n' 42 42 s += '{}\n'.format(fielddisplay(self, 'sealevel', 'current sea level (prior to computation) [m]')) 43 43 s += '{}\n'.format(fielddisplay(self, 'planetradius', 'planet radius [m]')) … … 46 46 s += '{}\n'.format(fielddisplay(self, 'miscellaneous', 'miscellaneous fields')) 47 47 s += '{}\n'.format(self.settings) 48 48 s += '{}\n'.format(self.surfaceload) 49 s += '{}\n'.format(self.love )49 s += '{}\n'.format(self.lovenumbers) 50 50 s += '{}\n'.format(self.rotational) 51 51 return s 52 52 #}}} 53 53 54 def setdefaultparameters(self): # {{{54 def setdefaultparameters(self): # {{{ 55 55 return self 56 56 #}}} 57 57 58 def checkconsistency(self, md, solution, analyses): # {{{59 if not 'SealevelriseAnalysis' in analyses or solution == 'TransientSolution' and md.transient.isslr == 0:58 def checkconsistency(self, md, solution, analyses): # {{{ 59 if 'SealevelriseAnalysis' not in analyses or (solution == 'TransientSolution' and md.transient.isslr == 0): 60 60 return md 61 61 62 62 md = checkfield(md, 'fieldname', 'solidearth.sealevel', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) … … 64 64 65 65 self.settings.checkconsistency(md, solution, analyses) 66 66 self.surfaceload.checkconsistency(md, solution, analyses) 67 self.love .checkconsistency(md, solution, analyses)67 self.lovenumbers.checkconsistency(md, solution, analyses) 68 68 self.rotational.checkconsistency(md, solution, analyses) 69 69 70 70 return md 71 71 #}}} 72 72 73 def defaultoutputs(self, md): #{{{73 def defaultoutputs(self, md): #{{{ 74 74 return ['Sealevel'] 75 75 #}}} 76 76 77 def marshall(self, prefix, md, fid): #{{{77 def marshall(self, prefix, md, fid): #{{{ 78 78 WriteData(fid, prefix, 'object', self, 'fieldname', 'sealevel', 'mattype', 1, 'format', 'DoubleMat', 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts) 79 79 WriteData(fid, prefix, 'object', self, 'fieldname', 'planetradius', 'format', 'Double') 80 80 WriteData(fid, prefix, 'object', self, 'fieldname', 'transitions', 'format', 'MatArray') … … 81 81 82 82 self.settings.marshall(prefix, md, fid) 83 83 self.surfaceload.marshall(prefix, md, fid) 84 self.love .marshall(prefix, md, fid)84 self.lovenumbers.marshall(prefix, md, fid) 85 85 self.rotational.marshall(prefix, md, fid) 86 86 87 87 #process requested outputs … … 88 88 outputs = self.requested_outputs 89 89 pos = np.where(np.asarray(outputs) == 'default')[0] 90 90 for i in pos: 91 outputs[i] = '' #remove 'default' from outputs92 outputs.extend(self.defaultoutputs(md)) #add defaults91 outputs[i] = '' #remove 'default' from outputs 92 outputs.extend(self.defaultoutputs(md)) #add defaults 93 93 94 94 WriteData(fid, prefix, 'data', outputs, 'name', 'md.solidearth.requested_outputs', 'format', 'StringArray') 95 95 #}}} 96 96 97 def extrude(self, md): #{{{97 def extrude(self, md): #{{{ 98 98 self.sealevel = project3d(md, 'vector', self.sealevel, 'type', 'node') 99 99 100 100 return self 101 101 #}}} 102 -
../trunk-jpl/src/m/classes/clusters/generic.py
101 101 if not isvalgrind: 102 102 if self.interactive: 103 103 if IssmConfig('_HAVE_MPI_')[0]: 104 fid.write(' mpiexec -np {} {}/{} {} {}/{} {}'.format(self.np, self.codepath, executable, solution, self.executionpath, dirname, modelname))104 fid.write('operf mpiexec -np {} {}/{} {} {}/{} {}'.format(self.np, self.codepath, executable, solution, self.executionpath, dirname, modelname)) 105 105 else: 106 106 fid.write('{}/{} {} {}/{} {} '.format(self.codepath, executable, solution, self.executionpath, dirname, modelname)) 107 107 else: 108 108 if IssmConfig('_HAVE_MPI_')[0]: 109 fid.write(' mpiexec -np {} {}/{} {} {}/{} {} 2>{}.errlog>{}.outlog'.109 fid.write('operf mpiexec -np {} {}/{} {} {}/{} {} 2>{}.errlog>{}.outlog'. 110 110 format(self.np, self.codepath, executable, solution, self.executionpath, dirname, modelname, modelname, modelname)) 111 111 else: 112 112 fid.write('{}/{} {} {}/{} {} 2>{}.errlog>{}.outlog '.
Note:
See TracBrowser
for help on using the repository browser.