Changeset 26317
- Timestamp:
- 06/11/21 04:44:59 (4 years ago)
- Location:
- issm/trunk-jpl/src/m/classes
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/dsl.py
r26301 r26317 49 49 50 50 if md.solidearth.settings.compute_bp_grd: 51 md = checkfield(md, 'fieldname', dsl.sea_water_pressure_at_sea_floor, 'empty', 1)51 md = checkfield(md, 'fieldname', 'dsl.sea_water_pressure_at_sea_floor', 'empty', 1) 52 52 53 53 return md -
issm/trunk-jpl/src/m/classes/dslmme.py
r26178 r26317 41 41 def checkconsistency(self, md, solution, analyses): # {{{ 42 42 # Early return 43 if ('Sealevel riseAnalysis' not in analyses) or (solution == 'TransientSolution' and not md.transient.isslc):43 if ('SealevelchangeAnalysis' not in analyses) or (solution == 'TransientSolution' and not md.transient.isslc): 44 44 return md 45 45 -
issm/trunk-jpl/src/m/classes/lovenumbers.py
r26301 r26317 1 import numpy as np 1 2 from checkfield import checkfield 2 3 from fielddisplay import fielddisplay … … 55 56 def setdefaultparameters(self, maxdeg, referenceframe): #{{{ 56 57 # Initialize love numbers 57 self.h = getlovenumbers('type', 'loadingverticaldisplacement', 'referenceframe', referenceframe, 'maxdeg', maxdeg) 58 self.k = getlovenumbers('type', 'loadinggravitationalpotential', 'referenceframe', referenceframe, 'maxdeg', maxdeg) 59 self.l = getlovenumbers('type', 'loadinghorizontaldisplacement', 'referenceframe', referenceframe, 'maxdeg', maxdeg) 60 self.th = getlovenumbers('type', 'tidalverticaldisplacement', 'referenceframe', referenceframe, 'maxdeg', maxdeg) 61 self.tk = getlovenumbers('type', 'tidalgravitationalpotential', 'referenceframe', referenceframe, 'maxdeg', maxdeg) 62 self.tl = getlovenumbers('type', 'tidalhorizontaldisplacement', 'referenceframe', referenceframe, 'maxdeg', maxdeg) 58 self.h = getlovenumbers('type', 'loadingverticaldisplacement', 'referenceframe', referenceframe, 'maxdeg', maxdeg).reshape(-1,1) 59 self.k = getlovenumbers('type', 'loadinggravitationalpotential', 'referenceframe', referenceframe, 'maxdeg', maxdeg).reshape(-1,1) 60 self.l = getlovenumbers('type', 'loadinghorizontaldisplacement', 'referenceframe', referenceframe, 'maxdeg', maxdeg).reshape(-1,1) 61 self.th = getlovenumbers('type', 'tidalverticaldisplacement', 'referenceframe', referenceframe, 'maxdeg', maxdeg).reshape(-1,1) 62 self.tk = getlovenumbers('type', 'tidalgravitationalpotential', 'referenceframe', referenceframe, 'maxdeg', maxdeg).reshape(-1,1) 63 self.tl = getlovenumbers('type', 'tidalhorizontaldisplacement', 'referenceframe', referenceframe, 'maxdeg', maxdeg).reshape(-1,1) 63 64 64 65 # Secular fluid love number … … 67 68 # Time 68 69 self.istime = 1 # Temporal love numbers by default 69 self.timefreq = 0# Elastic case by default70 self.timefreq = np.zeros(1) # Elastic case by default 70 71 return self 71 72 #}}} … … 89 90 90 91 ntf = len(self.timefreq) 91 if ( self.h.shape[1] != ntf or self.k.shape[1] != ntf or self.l.shape[1] != ntf or self.th.shape[1] != ntf or self.tk.shape[1] != ntf or self.tl.shape[1] != ntf):92 if (np.shape(self.h)[1] != ntf or np.shape(self.k)[1] != ntf or np.shape(self.l)[1] != ntf or np.shape(self.th)[1] != ntf or np.shape(self.tk)[1] != ntf or np.shape(self.tl)[1] != ntf): 92 93 raise ValueError('lovenumbers error message: love numbers should have as many time/frequency steps as the time/frequency vector') 93 94 -
issm/trunk-jpl/src/m/classes/matdamageice.py
r26065 r26317 115 115 md = checkfield(md, 'fieldname', 'materials.effectiveconductivity_averaging', 'numel', [1], 'values', [0, 1, 2]) 116 116 117 if 'Sealevel riseAnalysis' in analyses:117 if 'SealevelchangeAnalysis' in analyses: 118 118 md = checkfield(md, 'fieldname', 'materials.earth_density', '>', 0, 'numel', 1) 119 119 -
issm/trunk-jpl/src/m/classes/matenhancedice.py
r26059 r26317 126 126 md = checkfield(md, 'fieldname', 'materials.effectiveconductivity_averaging', 'numel', [1], 'values', [0, 1, 2]) 127 127 128 if 'Sealevel riseAnalysis' in analyses:128 if 'SealevelchangeAnalysis' in analyses: 129 129 md = checkfield(md, 'fieldname', 'materials.earth_density', '>', 0, 'numel', 1) 130 130 return md -
issm/trunk-jpl/src/m/classes/matestar.py
r26059 r26317 120 120 md = checkfield(md, 'fieldname', 'materials.effectiveconductivity_averaging', 'numel', [1], 'values', [0, 1, 2]) 121 121 122 if 'Sealevel riseAnalysis' in analyses:122 if 'SealevelchangeAnalysis' in analyses: 123 123 md = checkfield(md, 'fieldname', 'materials.earth_density', '>', 0, 'numel', 1) 124 124 -
issm/trunk-jpl/src/m/classes/nodalvalue.py
r26178 r26317 12 12 nodalvalue=nodalvalue() 13 13 nodalvalue=nodalvalue( 14 'name', 'Sealevel riseSNodalValue',14 'name', 'SealevelchangeSNodalValue', 15 15 'definitionstring', 'Outputdefinition1', 16 'model_string', 'Sealevel riseS',16 'model_string', 'SealevelchangeS', 17 17 'node', 1 18 18 ) -
issm/trunk-jpl/src/m/classes/rotational.py
r26178 r26317 42 42 43 43 def checkconsistency(self, md, solution, analyses): # {{{ 44 if ('Sealevel riseAnalysis' not in analyses) or (solution == 'TransientSolution' and not md.transient.isslc):44 if ('SealevelchangeAnalysis' not in analyses) or (solution == 'TransientSolution' and not md.transient.isslc): 45 45 return md 46 46 md = checkfield(md, 'fieldname', 'solidearth.rotational.equatorialmoi', 'NaN', 1, 'Inf', 1) -
issm/trunk-jpl/src/m/classes/slr.py
r25688 r26317 7 7 from planetradius import planetradius 8 8 from WriteData import WriteData 9 from project3d import project3d 9 10 10 11 … … 120 121 def checkconsistency(self, md, solution, analyses): # {{{ 121 122 # Early return 122 if 'Sealevel riseAnalysis' not in analyses or (solution == 'TransientSolution' and not md.transient.isslr):123 if 'SealevelchangeAnalysis' not in analyses or (solution == 'TransientSolution' and not md.transient.isslr): 123 124 return md 124 125 -
issm/trunk-jpl/src/m/classes/solidearth.py
r26307 r26317 8 8 from rotational import rotational 9 9 from solidearthsettings import solidearthsettings 10 from solidearthsolution import solidearthsolution 11 from offlinesolidearthsolution import offlinesolidearthsolution 10 12 from surfaceload import surfaceload 11 13 from WriteData import WriteData … … 79 81 #}}} 80 82 def checkconsistency(self, md, solution, analyses): #{{{ 81 if ('Sealevel riseAnalysis' not in analyses) or (solution == 'TransientSolution' and not md.transient.isslc):83 if ('SealevelchangeAnalysis' not in analyses) or (solution == 'TransientSolution' and not md.transient.isslc): 82 84 return md 83 85 … … 88 90 self.rotational.checkconsistency(md, solution, analyses) 89 91 if self.external: 90 if not isinstance(self.external, 'solidearthsolution'):92 if (not isinstance(self.external,solidearthsolution)) and (not isinstance(self.external,offlinesolidearthsolution)): 91 93 raise Exception('solidearth consistency check: external field should be a solidearthsolution') 92 end93 94 self.external.checkconsistency(md, solution, analyses) 94 95 return md -
issm/trunk-jpl/src/m/classes/solidearthsettings.py
r26301 r26317 98 98 99 99 def checkconsistency(self, md, solution, analyses): #{{{ 100 if ('Sealevel riseAnalysis' not in analyses) or (solution == 'TransientSolution' and not md.transient.isslc):100 if ('SealevelchangeAnalysis' not in analyses) or (solution == 'TransientSolution' and not md.transient.isslc): 101 101 return md 102 102 -
issm/trunk-jpl/src/m/classes/solidearthsolution.m
r26307 r26317 66 66 geoid_rate(end+1,:)=time(1:end-1); 67 67 end 68 69 WriteData(fid, prefix, 'name', 'md.solidearth.external.nature', 'data', 0, 'format', 'Integer'); 68 70 WriteData(fid,prefix,'object',self,'fieldname','displacementeast','data',displacementeast_rate,'format','DoubleMat','name', 'md.solidearth.external.displacementeast','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',yts); 69 71 WriteData(fid,prefix,'object',self,'fieldname','displacementup','data',displacementup_rate,'format','DoubleMat','name', 'md.solidearth.external.displacementup','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',yts); -
issm/trunk-jpl/src/m/classes/solidearthsolution.py
r26301 r26317 53 53 54 54 # Transform our time series into time series rates 55 if np.shape(self.displacementeast, 1) == 1:55 if len(np.shape(self.displacementeast)) == 1: 56 56 print('External solidearthsolution warning: only one time step provided, assuming the values are rates per year') 57 57 displacementeast_rate = np.append(np.array(self.displacementeast).reshape(-1, 1), 0) … … 61 61 else: 62 62 time = self.displacementeast[-1, :] 63 dt = np.diff(time, 1, 1)63 dt = np.diff(time, axis=0) 64 64 displacementeast_rate = np.diff(self.displacementeast[0:-2, :], 1, 1) / dt 65 displacementeast_rate .append(time[0:-2])65 displacementeast_rate = np.append(displacementeast_rate,time[:-1].reshape(1,-1),axis=0) 66 66 displacementnorth_rate = np.diff(self.displacementnorth[0:-2, :], 1, 1) / dt 67 displacementnorth_rate .append(time[0:-2])67 displacementnorth_rate = np.append(displacementnorth_rate,time[:-1].reshape(1,-1),axis=0) 68 68 displacementup_rate = np.diff(self.displacementup[0:-2, :], 1, 1) / dt 69 displacementup_rate .append(time[0:-2])69 displacementup_rate = np.append(displacementup_rate,time[:-1].reshape(1,-1),axis=0) 70 70 geoid_rate = np.diff(self.geoid[0:-2, :], 1, 1) / dt 71 geoid_rate.append(time[0:-2]) 71 geoid_rate = np.append(geoid_rate,time[:-1].reshape(1,-1),axis=0) 72 73 WriteData(fid, prefix, 'name', 'md.solidearth.external.nature', 'data', 0, 'format', 'Integer') 72 74 WriteData(fid, prefix, 'object', self, 'fieldname', 'displacementeast', 'data', displacementeast_rate, 'format', 'DoubleMat', 'name', 'md.solidearth.external.displacementeast', 'mattype', 1, 'scale', 1 / yts,'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts); 73 75 WriteData(fid, prefix, 'object', self, 'fieldname', 'displacementup', 'data', displacementup_rate,'format', 'DoubleMat', 'name', 'md.solidearth.external.displacementup', 'mattype', 1, 'scale', 1 / yts,'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts); -
issm/trunk-jpl/src/m/classes/surfaceload.py
r26178 r26317 39 39 40 40 def checkconsistency(self, md, solution, analyses): # {{{ 41 if ('Sealevel riseAnalysis' not in analyses) or (solution == 'TransientSolution' and not md.transient.isslc):41 if ('SealevelchangeAnalysis' not in analyses) or (solution == 'TransientSolution' and not md.transient.isslc): 42 42 return md 43 43 if type(self.icethicknesschange) == np.ndarray:
Note:
See TracChangeset
for help on using the changeset viewer.