Changeset 26060 for issm/trunk-jpl/src/m/classes/solidearthsettings.py
- Timestamp:
- 03/10/21 00:56:24 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/solidearthsettings.py
r25817 r26060 24 24 self.computesealevelchange = 1 # Will grd_core compute sea level? 25 25 self.isgrd = 1 # Will GRD patterns be computed? 26 self.compute_bp_grd = 1 # Will GRD patterns for bottom pressures be computed? 26 27 self.degacc = 0 # Degree increment for resolution of Green tables 27 28 self.horiz = 0 # Compute horizontal displacement? 28 29 self.glfraction = 1 # Barystatic contribution: full or fractional (default: fractional) 30 self.grdmodel = 0 # GRD model (0 by default, 1 for elastic, 2 for Ivins) 31 self.cross_section_shape = 0 # Cross section only used when GRD model is Ivins 29 32 30 33 nargin = len(args) … … 44 47 s += '{}\n'.format(fielddisplay(self, 'computesealevelchange', 'compute sealevel change from GRD in addition to steric?) default 0')) 45 48 s += '{}\n'.format(fielddisplay(self, 'isgrd', 'compute GRD patterns (default: 1')) 49 s += '{}\n'.format(fielddisplay(self, 'compute_bp_grd', 'compute GRD patterns for bottom pressure loads (default 1)')) 46 50 s += '{}\n'.format(fielddisplay(self, 'runfrequency', 'how many time steps we skip before we run solidearthsettings solver during transient (default: 1)')) 47 51 s += '{}\n'.format(fielddisplay(self, 'rigid', 'rigid earth graviational potential perturbation')) … … 49 53 s += '{}\n'.format(fielddisplay(self, 'degacc', 'accuracy (default .01 deg) for numerical discretization of the Green\'s functions')) 50 54 s += '{}\n'.format(fielddisplay(self, 'glfraction', 'contribute fractionally (default, 1) to barystatic sea level')) 55 s += '{}\n'.format(fielddisplay(self, 'grdmodel', 'type of deformation model, 1 for elastic, 2 for visco-elastic from Ivins')) 56 s += '{}\n'.format(fielddisplay(self, 'cross_section_shape', '1: square-edged (default). 2: elliptical. See iedge in GiaDeflectionCore')) 51 57 return s 52 58 #}}} … … 65 71 self.rotation = 1 66 72 self.ocean_area_scaling = 0 67 self.isgrd = 1 73 self.compute_bp_grd = 1 74 self.isgrd = 0 68 75 self.computesealevelchange = 1 69 76 … … 79 86 # Horizontal displacement? (not on by default) 80 87 self.horiz = 0 88 89 # Cross section for Ivins model 90 self.cross_section_shape = 1 # Square as default (see iedde in GiaDeflectionCorex) 91 92 # No GRD model by default 93 self.grdmodel = 0 81 94 #}}} 82 95 … … 91 104 md = checkfield(md, 'fieldname', 'solidearth.settings.horiz', 'NaN', 1, 'Inf', 1, 'values', [0, 1]) 92 105 md = checkfield(md, 'fieldname', 'solidearth.settings.glfraction', 'values', [0, 1]) 106 md = checkfield(md, 'fieldname', 'solidearth.settings.grdmodel', 'values', [1, 2]) 107 md = checkfield(md, 'fieldname', 'solidearth.settings.cross_section_shape', 'numel', [1], 'values', [1, 2]) 93 108 94 109 # Checks on computational flags … … 96 111 raise Exception('solidearthsettings checkconsistency error message: need rigid on if elastic flag is set') 97 112 98 # A coupler to planet model is provided113 # A GRD computation has been requested, make some checks on the nature of the meshes provided 99 114 if self.isgrd: 100 if md.transient.iscoupler: 101 # We are good 102 pass 103 else: 104 if md.mesh.__class__.__name__ == 'mesh3dsurface': 105 # We are good 106 pass 115 if md.mesh.__class__.__name__ is 'mesh3dsurface': 116 if self.grdmodel == 2: 117 raise RuntimeException('model requires a 2D mesh to run gia Ivins computations (change mesh from mesh3dsurface to mesh2d)') 107 118 else: 108 raise Exception('model is requesting sealevel computations without being a mesh3dsurface, or being coupled to one!') 119 if self.grdmodel == 1: 120 raise RuntimeException('model requires a 3D surface mesh to run GRD computations (change mesh from mesh2d to mesh3dsurface)') 121 122 if self.compute_bp_grd and not md.solidearth.settings.isgrd: 123 raise RuntimeException('solidearthsettings checkconsistency error message; if bottom pressure grd patterns are requested, solidearth settings class should have isgrd flag on') 124 109 125 return md 110 126 #}}} … … 123 139 WriteData(fid, prefix, 'object', self, 'fieldname', 'computesealevelchange', 'name', 'md.solidearth.settings.computesealevelchange', 'format', 'Integer') 124 140 WriteData(fid, prefix, 'object', self, 'fieldname','isgrd', 'name', 'md.solidearth.settings.isgrd', 'format', 'Integer') 141 WriteData(fid, prefix, 'object', self, 'fieldname', 'compute_bp_grd', 'name', 'md.solidearth.settings.compute_bp_grd', 'format', 'Integer') 125 142 WriteData(fid, prefix, 'object', self, 'fieldname','glfraction', 'name', 'md.solidearth.settings.glfraction', 'format', 'Integer') 143 WriteData(fid, prefix, 'object', self, 'fieldname', 'grdmodel', 'name', 'md.solidearth.settings.grdmodel', 'format', 'Integer') 144 WriteData(fid, prefix, 'object', self, 'fieldname', 'cross_section_shape', 'name', 'md.solidearth.settings.cross_section_shape', 'format', 'Integer') 126 145 #}}} 127 146
Note:
See TracChangeset
for help on using the changeset viewer.