Changeset 24261
- Timestamp:
- 10/21/19 02:53:16 (5 years ago)
- Location:
- issm/trunk-jpl
- Files:
-
- 125 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/scripts/translateToPy.py
r24212 r24261 220 220 221 221 for il in importList: 222 if line.find(il) != - 222 if line.find(il) != -1: 223 223 output("from %s import * " % (il)) 224 224 importList.remove(il) # already got it -
issm/trunk-jpl/src/m/archive/arch.py
r24256 r24261 178 178 """ 179 179 Procedure to read a field and return a results list with the following attributes: 180 result['field_name'] - 181 result['size'] - 182 result['data_type'] - 183 result['data'] - 180 result['field_name'] -> the name of the variable that was just read 181 result['size'] -> size (dimensions) of the variable just read 182 result['data_type'] -> the type of data that was just read 183 result['data'] -> the actual data 184 184 """ 185 185 … … 207 207 for i in range(rows): 208 208 raw_data[i, :] = struct.unpack('>{}d'.format(cols), fid.read(cols * struct.calcsize('>d'))) 209 # The matrix will be struct.upacked in order and will be filled left - 209 # The matrix will be struct.upacked in order and will be filled left -> right by column 210 210 # We need to reshape and transpose the matrix so it can be read correctly 211 211 data = raw_data.reshape(raw_data.shape[::-1]).T -
issm/trunk-jpl/src/m/array/MatlabArray.py
r24213 r24261 177 177 (a[4] == 5; counted as [1, 4, 2, 5, 3, 6] linearly in matlab) 178 178 179 x = string_dim(a, 4) - 179 x = string_dim(a, 4) -> '[1, 1]' 180 180 181 181 a[x] == a[4] == a[1, 1] == 5 182 182 183 example use: exec('print a' + string_dim(a, 4)) - 183 example use: exec('print a' + string_dim(a, 4)) -> print a[1, 1] 184 184 ''' 185 185 -
issm/trunk-jpl/src/m/classes/SMBpddSicopolis.py
r24240 r24261 83 83 def setdefaultparameters(self): # {{{ 84 84 self.isfirnwarming = 1 85 self.desfac = - 85 self.desfac = -np.log(2.0) / 1000 86 86 self.rlaps = 7.4 87 87 -
issm/trunk-jpl/src/m/classes/dependent.py
r24256 r24261 21 21 self.exp = '' 22 22 self.segments = [] 23 self.index = - 23 self.index = -1 24 24 self.nods = 0 25 25 -
issm/trunk-jpl/src/m/classes/fourierlove.py
r24213 r24261 34 34 string = "%s\n%s" % (string, fielddisplay(self, 'sh_nmin', 'minimum spherical harmonic degree (default 1)')) 35 35 string = "%s\n%s" % (string, fielddisplay(self, 'g0', 'adimensioning constant for gravity (default 10) [m / s^2]')) 36 string = "%s\n%s" % (string, fielddisplay(self, 'r0', 'adimensioning constant for radius (default 6378 * 1 0^3) [m]'))37 string = "%s\n%s" % (string, fielddisplay(self, 'mu0', 'adimensioning constant for stress (default 1 0^11) [Pa]'))36 string = "%s\n%s" % (string, fielddisplay(self, 'r0', 'adimensioning constant for radius (default 6378 * 1.0e3) [m]')) 37 string = "%s\n%s" % (string, fielddisplay(self, 'mu0', 'adimensioning constant for stress (default 1.0e11) [Pa]')) 38 38 string = "%s\n%s" % (string, fielddisplay(self, 'allow_layer_deletion', 'allow for migration of the integration boundary with increasing spherical harmonics degree (default 1)')) 39 39 string = "%s\n%s" % (string, fielddisplay(self, 'love_kernels', 'compute love numbers at depth? (default 0)')) -
issm/trunk-jpl/src/m/classes/geometry.py
r24213 r24261 58 58 md = checkfield(md, 'fieldname', 'geometry.base', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 59 59 md = checkfield(md, 'fieldname', 'geometry.thickness', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices], '>', 0, 'timeseries', 1) 60 if any(abs(self.thickness - self.surface + self.base) > 10**- 60 if any(abs(self.thickness - self.surface + self.base) > 10**-9): 61 61 md.checkmessage("equality thickness = surface-base violated") 62 62 if solution == 'TransientSolution' and md.transient.isgroundingline: 63 63 md = checkfield(md, 'fieldname', 'geometry.bed', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) 64 if np.any(self.bed - self.base > 10**- 64 if np.any(self.bed - self.base > 10**-12): 65 65 md.checkmessage('base < bed on one or more vertex') 66 66 pos = np.where(md.mask.groundedice_levelset > 0) 67 if np.any(np.abs(self.bed[pos] - self.base[pos]) > 10**- 67 if np.any(np.abs(self.bed[pos] - self.base[pos]) > 10**-9): 68 68 md.checkmessage('equality base = bed on grounded ice violated') 69 69 md = checkfield(md, 'fieldname', 'geometry.bed', 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices]) -
issm/trunk-jpl/src/m/classes/groundingline.py
r24213 r24261 53 53 md.checkmessage("requesting grounding line migration, but bathymetry is absent!") 54 54 pos = np.nonzero(md.mask.groundedice_levelset > 0.)[0] 55 if any(np.abs(md.geometry.base[pos] - md.geometry.bed[pos]) > 10**- 55 if any(np.abs(md.geometry.base[pos] - md.geometry.bed[pos]) > 10**-10): 56 56 md.checkmessage("base not equal to bed on grounded ice!") 57 if any(md.geometry.bed - md.geometry.base > 10**- 57 if any(md.geometry.bed - md.geometry.base > 10**-9): 58 58 md.checkmessage("bed superior to base on floating ice!") 59 59 -
issm/trunk-jpl/src/m/classes/inversion.py
r24213 r24261 103 103 #new_par = old_par + gradient_scaling(n) * C * gradient with C in [0 1] 104 104 #usually the gradient_scaling must be of the order of magnitude of the 105 #inversed parameter (1 0^8 for B, 50 for drag) and can be decreased105 #inversed parameter (1.0e8 for B, 50 for drag) and can be decreased 106 106 #after the first iterations 107 107 self.gradient_scaling = 50 * np.ones((self.nsteps, 1)) -
issm/trunk-jpl/src/m/classes/linearbasalforcings.py
r24240 r24261 62 62 def setdefaultparameters(self): # {{{ 63 63 self.deepwater_melting_rate = 50.0 64 self.deepwater_elevation = - 64 self.deepwater_elevation = -800.0 65 65 self.upperwater_melting_rate = 0.0 66 self.upperwater_elevation = - 66 self.upperwater_elevation = -400.0 67 67 68 68 return self -
issm/trunk-jpl/src/m/classes/masstransport.py
r24213 r24261 52 52 #Type of stabilization to use 0:nothing 1:artificial_diffusivity 3:Discontinuous Galerkin 53 53 self.stabilization = 1 54 #Factor applied to compute the penalties kappa = max(stiffness matrix) * 1 0^penalty_factor54 #Factor applied to compute the penalties kappa = max(stiffness matrix) * 1.0**penalty_factor 55 55 self.penalty_factor = 3 56 56 #Minimum ice thickness that can be used -
issm/trunk-jpl/src/m/classes/matenhancedice.py
r24213 r24261 99 99 self.meltingpoint = 273.15 100 100 #rate of change of melting point with pressure (K / Pa) 101 self.beta = 9.8 * 10**- 101 self.beta = 9.8 * 10**-8 102 102 #mixed layer (ice-water interface) heat capacity (J / kg / K) 103 103 self.mixed_layer_capacity = 3974. 104 104 #thermal exchange velocity (ice-water interface) (m / s) 105 self.thermal_exchange_velocity = 1.00 * 10**- 105 self.thermal_exchange_velocity = 1.00 * 10**-4 106 106 #Rheology law: what is the temperature dependence of B with T 107 107 #available: none, paterson and arrhenius -
issm/trunk-jpl/src/m/classes/mismipbasalforcings.py
r24213 r24261 54 54 self.meltrate_factor = 0.2 55 55 self.threshold_thickness = 75. 56 self.upperdepth_melt = - 56 self.upperdepth_melt = -100. 57 57 return self 58 58 #}}} -
issm/trunk-jpl/src/m/classes/model.py
r24256 r24261 376 376 if np.ndim(md2.mesh.edges) > 1 and np.size(md2.mesh.edges, axis=1) > 1: #do not use ~isnan because there are some np.nans... 377 377 #renumber first two columns 378 pos = np.nonzero(md2.mesh.edges[:, 3] != - 378 pos = np.nonzero(md2.mesh.edges[:, 3] != -1)[0] 379 379 md2.mesh.edges[:, 0] = Pnode[md2.mesh.edges[:, 0] - 1] 380 380 md2.mesh.edges[:, 1] = Pnode[md2.mesh.edges[:, 1] - 1] … … 385 385 #Replace all zeros by - 1 in the last two columns 386 386 pos = np.nonzero(md2.mesh.edges[:, 2] == 0)[0] 387 md2.mesh.edges[pos, 2] = - 387 md2.mesh.edges[pos, 2] = -1 388 388 pos = np.nonzero(md2.mesh.edges[:, 3] == 0)[0] 389 md2.mesh.edges[pos, 3] = - 389 md2.mesh.edges[pos, 3] = -1 390 390 #Invert - 1 on the third column with last column (Also invert first two columns!!) 391 pos = np.nonzero(md2.mesh.edges[:, 2] == - 391 pos = np.nonzero(md2.mesh.edges[:, 2] == -1)[0] 392 392 md2.mesh.edges[pos, 2] = md2.mesh.edges[pos, 3] 393 md2.mesh.edges[pos, 3] = - 393 md2.mesh.edges[pos, 3] = -1 394 394 values = md2.mesh.edges[pos, 1] 395 395 md2.mesh.edges[pos, 1] = md2.mesh.edges[pos, 0] 396 396 md2.mesh.edges[pos, 0] = values 397 397 #Finally remove edges that do not belong to any element 398 pos = np.nonzero(np.logical_and(md2.mesh.edges[:, 1] == - 1, md2.mesh.edges[:, 2] == -1))[0]398 pos = np.nonzero(np.logical_and(md2.mesh.edges[:, 1] == -1, md2.mesh.edges[:, 2] == -1))[0] 399 399 md2.mesh.edges = np.delete(md2.mesh.edges, pos, axis=0) 400 400 -
issm/trunk-jpl/src/m/classes/organizer.py
r24213 r24261 123 123 raise IOError("Could find neither '%s' nor '%s'" % (path1, path2)) 124 124 else: 125 print((" - -> Branching '%s' from trunk '%s'" % (self.prefix, self.trunkprefix)))125 print(("--> Branching '%s' from trunk '%s'" % (self.prefix, self.trunkprefix))) 126 126 md = loadmodel(path2) 127 127 return md -
issm/trunk-jpl/src/m/classes/plumebasalforcings.py
r24213 r24261 80 80 self.crustthickness = 30000 81 81 self.uppercrustthickness = 14000 82 self.uppercrustheat = 1.7 * 10**- 83 self.lowercrustheat = 0.4 * 10**- 82 self.uppercrustheat = 1.7 * 10**-6 83 self.lowercrustheat = 0.4 * 10**-6 84 84 return self 85 85 #}}} -
issm/trunk-jpl/src/m/classes/qmu/@dakota_method/dakota_method.py
r24213 r24261 402 402 dm.params.show_misc_options = False 403 403 dm.params.misc_options = [] 404 dm.params.solution_accuracy = - 404 dm.params.solution_accuracy = -np.inf 405 405 dm.params.stochastic = False 406 406 dm.params.seed = False -
issm/trunk-jpl/src/m/classes/qmu/continuous_design.py
r24256 r24261 28 28 self.descriptor = '' 29 29 self.initpt = 0. 30 self.lower = - 30 self.lower = -np.inf 31 31 self.upper = np.inf 32 32 self.scale_type = 'none' -
issm/trunk-jpl/src/m/classes/qmu/continuous_state.py
r24256 r24261 26 26 self.descriptor = '' 27 27 self.initst = 0. 28 self.lower = - 28 self.lower = -np.inf 29 29 self.upper = np.inf 30 30 -
issm/trunk-jpl/src/m/classes/qmu/linear_inequality_constraint.py
r24256 r24261 25 25 def __init__(self): 26 26 self.matrix = np.array([[float('NaN')]]) 27 self.lower = - 27 self.lower = -np.Inf 28 28 self.upper = 0. 29 29 self.scale_type = 'none' -
issm/trunk-jpl/src/m/classes/qmu/nonlinear_inequality_constraint.py
r24256 r24261 25 25 def __init__(self): 26 26 self.descriptor = '' 27 self.lower = - 27 self.lower = -np.inf 28 28 self.upper = 0. 29 29 self.scale_type = 'none' -
issm/trunk-jpl/src/m/classes/qmu/normal_uncertain.py
r24256 r24261 26 26 self.mean = float('NaN') 27 27 self.stddev = float('NaN') 28 self.lower = - 28 self.lower = -np.Inf 29 29 self.upper = np.Inf 30 30 -
issm/trunk-jpl/src/m/classes/qmu/uniform_uncertain.py
r24256 r24261 23 23 def __init__(self): 24 24 self.descriptor = '' 25 self.lower = - 25 self.lower = -np.Inf 26 26 self.upper = np.Inf 27 27 -
issm/trunk-jpl/src/m/classes/stressbalance.py
r24213 r24261 61 61 62 62 string = "%s\n%s" % (string, '\n Penalty options:') 63 string = "%s\n%s" % (string, fielddisplay(self, 'penalty_factor', 'offset used by penalties: penalty = Kmax * 1 0^offset'))63 string = "%s\n%s" % (string, fielddisplay(self, 'penalty_factor', 'offset used by penalties: penalty = Kmax * 1.0**offset')) 64 64 string = "%s\n%s" % (string, fielddisplay(self, 'vertex_pairing', 'pairs of vertices that are penalized')) 65 65 … … 88 88 self.maxiter = 100 89 89 #Convergence criterion: absolute, relative and residual 90 self.restol = 10**- 90 self.restol = 10**-4 91 91 self.reltol = 0.01 92 92 self.abstol = 10 93 93 self.FSreconditioning = 10**13 94 94 self.shelf_dampening = 0 95 #Penalty factor applied kappa = max(stiffness matrix) * 1 0^penalty_factor95 #Penalty factor applied kappa = max(stiffness matrix) * 1.0**penalty_factor 96 96 self.penalty_factor = 3 97 97 #Stop the iterations of rift if below a threshold -
issm/trunk-jpl/src/m/classes/thermal.py
r24256 r24261 76 76 #Maximum number of iterations 77 77 self.maxiter = 100 78 #factor used to compute the values of the penalties: kappa = max(stiffness matrix) * 1 0^penalty_factor78 #factor used to compute the values of the penalties: kappa = max(stiffness matrix) * 1.0**penalty_factor 79 79 self.penalty_factor = 3 80 80 #Should we use cold ice (default) or enthalpy formulation -
issm/trunk-jpl/src/m/consistency/checkfield.py
r24255 r24261 19 19 - NaN: 1 if check that there is no NaN 20 20 - size: [lines cols], NaN for non checked dimensions, or 'universal' for any input type (nodal, element, time series, etc) 21 - 22 - 21 -> : greater than provided value 22 ->= : greater or equal to provided value 23 23 - < : smallerthan provided value 24 24 - <=: smaller or equal to provided value -
issm/trunk-jpl/src/m/contrib/defleurian/paraview/exportVTK.py
r24256 r24261 293 293 #paraview does not like NaN, replacing 294 294 if np.isnan(Val): 295 CleanVal = - 295 CleanVal = -9999.999 296 296 #also checking for very small value that mess up 297 297 elif (abs(Val) < 1.0e-20): -
issm/trunk-jpl/src/m/contrib/morlighem/bamg/YamsCall.py
r24213 r24261 23 23 24 24 Example: 25 md = YamsCall(md, md.inversion.vel_obs, 1500, 1 0^8, 1.3, 0.9)25 md = YamsCall(md, md.inversion.vel_obs, 1500, 1.0e8, 1.3, 0.9) 26 26 """ 27 27 -
issm/trunk-jpl/src/m/inversions/parametercontroldrag.py
r24260 r24261 18 18 md = parametercontroldrag(md, 'nsteps', 20, 'cm_responses', 0) 19 19 md = parametercontroldrag(md, 'cm_min', 1, 'cm_max', 150, 'cm_jump', 0.99, 'maxiter', 20) 20 md = parametercontroldrag(md, eps_cm', 1 0^-4, 'optscal', [10^7 10^8])20 md = parametercontroldrag(md, eps_cm', 1.0e-4, 'optscal', [1.0e7 1.0e8]) 21 21 22 22 See also PARAMETERCONTROLB -
issm/trunk-jpl/src/m/materials/paterson.py
r24260 r24261 29 29 # %From paterson, 30 30 # Temp = [0; -2; -5; -10; -15; -20; -25; -30; -35; -40; -45; -50] 31 # A = [6.8 * 1 0^-15;2.4 * 10^-15;1.6 * 10^-15;4.9 * 10^-16;2.9 * 10^-16;1.7 * 10^-16;9.4 *32 # 1 0^-17;5.1 * 10^-17;2.7 * 10^-17;1.4 * 10^-17;7.3 * 10^-18;3.6 * 10^-18];;%s - 1(kPa - 3)31 # A = [6.8 * 1.0e-15;2.4 * 1.0e-15;1.6 * 1.0e-15;4.9 * 1.0e-16;2.9 * 1.0e-16;1.7 * 1.0e-16;9.4 * 32 # 1.0e-17;5.1 * 1.0e-17;2.7 * 1.0e-17;1.4 * 1.0e-17;7.3 * 1.0e-18;3.6 * 1.0e-18];;%s - 1(kPa - 3) 33 33 # %Convert into rigidity B 34 # B = A.^(-1 / n) * 1 0^3; %s^(1 / 3)Pa34 # B = A.^(-1 / n) * 1.0e3; %s^(1 / 3)Pa 35 35 # %Now, do a cubic fit between Temp and B: 36 36 # fittedmodel = fit(Temp, B, 'cubicspline') -
issm/trunk-jpl/src/m/mesh/ComputeMetric.py
r24260 r24261 11 11 12 12 Example: 13 metric = ComputeMetric(hessian, 2 / 9, 1 0^-1, 100, 10^5, [])13 metric = ComputeMetric(hessian, 2 / 9, 1.0e-1, 100, 1.0e5, []) 14 14 """ 15 15 -
issm/trunk-jpl/src/m/mesh/bamg.py
r24260 r24261 26 26 subdomains (that need to be inside domain) 27 27 28 - hmin : minimum edge length (default is 1 0^- 100)29 - hmax : maximum edge length (default is 1 0^100)28 - hmin : minimum edge length (default is 1.0e - 100) 29 - hmax : maximum edge length (default is 1.0e100) 30 30 - hVertices : imposed edge length for each vertex (geometry or mesh) 31 31 - hminVertices : minimum edge length for each vertex (mesh) 32 32 - hmaxVertices : maximum edge length for each vertex (mesh) 33 33 34 - anisomax : maximum ratio between the smallest and largest edges (default is 1 0^30)34 - anisomax : maximum ratio between the smallest and largest edges (default is 1.0e30) 35 35 - coeff : coefficient applied to the metric (2 -> twice as many elements, default is 1) 36 36 - cutoff : scalar used to compute the metric when metric type 2 or 3 are applied … … 43 43 1 -> use Green formula 44 44 - KeepVertices : try to keep initial vertices when adaptation is done on an existing mesh (default 1) 45 - maxnbv : maximum number of vertices used to allocate memory (default is 1 0^6)45 - maxnbv : maximum number of vertices used to allocate memory (default is 1.0e6) 46 46 - maxsubdiv : maximum subdivision of exisiting elements (default is 10) 47 47 - metric : matrix (numberofnodes x 3) used as a metric -
issm/trunk-jpl/src/m/miscellaneous/prctile_issm.py
r24213 r24261 16 16 17 17 # presumably at least 1 input value has been given 18 # np.shape(integer) - 18 # np.shape(integer) -> (), must be at least (1, ) 19 19 psize = np.shape(p) or (1, ) 20 20 if len(psize) > 1 and np.size(p, 1) > 1: -
issm/trunk-jpl/src/m/parameterization/setflowequation.py
r24256 r24261 150 150 SSAflag[pos[pos1]] = True 151 151 SSAHOflag[pos[pos1]] = False 152 pos2 = np.where(elist == - 152 pos2 = np.where(elist == -1)[0] 153 153 HOflag[pos[pos2]] = True 154 154 SSAHOflag[pos[pos2]] = False … … 182 182 FSflag[pos[pos1]] = True 183 183 HOFSflag[pos[pos1]] = False 184 pos2 = np.where(elist == - 184 pos2 = np.where(elist == -1)[0] 185 185 HOflag[pos[pos2]] = True 186 186 HOFSflag[pos[pos2]] = False … … 213 213 SSAflag[pos[pos1]] = True 214 214 SSAFSflag[pos[pos1]] = False 215 pos2 = np.where(elist == - 215 pos2 = np.where(elist == -1)[0] 216 216 FSflag[pos[pos2]] = True 217 217 SSAFSflag[pos[pos2]] = False -
issm/trunk-jpl/src/m/parameterization/setmask.py
r24213 r24261 56 56 57 57 #level sets 58 md.mask.groundedice_levelset = - 58 md.mask.groundedice_levelset = -1. * np.ones(md.mesh.numberofvertices) 59 59 md.mask.groundedice_levelset[md.mesh.elements[np.nonzero(elementongroundedice), :] - 1] = 1. 60 60 … … 66 66 #use contourtomesh to set ice values inside ice domain 67 67 vertexinsideicedomain, elementinsideicedomain = ContourToMesh(elements, x, y, icedomainfile, 'node', 1) 68 md.mask.ice_levelset[np.nonzero(vertexinsideicedomain)[0]] = - 68 md.mask.ice_levelset[np.nonzero(vertexinsideicedomain)[0]] = -1. 69 69 else: 70 md.mask.ice_levelset = - 70 md.mask.ice_levelset = -1. * np.ones(md.mesh.numberofvertices) 71 71 72 72 return md -
issm/trunk-jpl/src/m/plot/checkplotoptions.py
r24213 r24261 17 17 if options.exist('unit'): 18 18 if 'km' in options.getfieldvalue('unit', 'km'): 19 options.changefieldvalue('unit', 10**- 19 options.changefieldvalue('unit', 10**-3) 20 20 elif '100km' in options.getfieldvalue('unit', '100km'): 21 options.changefieldvalue('unit', 10**- 21 options.changefieldvalue('unit', 10**-5) 22 22 # }}} 23 23 # {{{ density -
issm/trunk-jpl/src/m/plot/colormaps/demmap.py
r24256 r24261 61 61 interval = landint 62 62 63 cmn = - 63 cmn = -nsea * interval * (1 + 1e-9) # zero values treated as land 64 64 cmx = nland * interval 65 65 -
issm/trunk-jpl/src/m/plot/processdata.py
r24256 r24261 6 6 PROCESSDATA - process data to be plotted 7 7 8 datatype = 1 - 9 datatype = 2 - 10 datatype = 3 - 11 datatype = 4 - 8 datatype = 1 -> elements 9 datatype = 2 -> nodes 10 datatype = 3 -> node quivers 11 datatype = 4 -> patch 12 12 13 13 Usage: -
issm/trunk-jpl/src/m/plot/writejsfile.py
r24213 r24261 20 20 fid.write('model["initialZoomFactor"]={0};\n'.format(model.initialZoomFactor)) 21 21 #write index: 22 fid.write(' < ! - - model["index"]{{{ - - >\n')23 fid.write('model["index"] =[')22 fid.write('<!-- model["index"]{{{-->\n') 23 fid.write('model["index"]=[') 24 24 for i in range(0, nel - 1): 25 fid.write('[{0}, {1},{2}], '.format(model.index[i][0], model.index[i][1], model.index[i][2]))26 fid.write('[{0}, {1},{2}]];\n'.format(model.index[-1][0], model.index[-1][1], model.index[-1][2]))27 fid.write(' < ! - - }}} - - >\n')25 fid.write('[{0},{1},{2}], '.format(model.index[i][0], model.index[i][1], model.index[i][2])) 26 fid.write('[{0},{1},{2}]];\n'.format(model.index[-1][0], model.index[-1][1], model.index[-1][2])) 27 fid.write('<!--}}}-->\n') 28 28 print('writing model coordinates') 29 29 writejsfield(fid, 'model["x"]', model.x, nods) … … 45 45 fid.write('result={};\n') 46 46 writejsfield(fid, 'result["data"]', results[i].data, nods) 47 fid.write(' < ! - - {{{ - - >\n')48 fid.write('result["caxis"] = [{0},{1}];\n'.format(results[i].caxis[0], results[i].caxis[1]))49 fid.write('result["label"] ="{0}";\n'.format(results[i].label))50 fid.write('result["shortlabel"] ="{0}";\n'.format(results[i].shortlabel))51 fid.write('result["unit"] ="{0}";\n'.format(results[i].unit))47 fid.write('<!--{{{-->\n') 48 fid.write('result["caxis"]=[{0},{1}];\n'.format(results[i].caxis[0], results[i].caxis[1])) 49 fid.write('result["label"]="{0}";\n'.format(results[i].label)) 50 fid.write('result["shortlabel"]="{0}";\n'.format(results[i].shortlabel)) 51 fid.write('result["unit"]="{0}";\n'.format(results[i].unit)) 52 52 if type(results[i].data) == np.float64: 53 fid.write('result["time_range"] = [{0},{1}];\n'.format(results[i].time_range[0], results[i].time_range[1]))54 fid.write('results["{0}"] =result;\n'.format(i))55 fid.write(' < ! - - }}} - - >\n')56 fid.write('model.results =results;\n')57 fid.write('models["{0}"] =model;\n'.format(keyname))53 fid.write('result["time_range"]=[{0},{1}];\n'.format(results[i].time_range[0], results[i].time_range[1])) 54 fid.write('results["{0}"]=result;\n'.format(i)) 55 fid.write('<!--}}}-->\n') 56 fid.write('model.results=results;\n') 57 fid.write('models["{0}"]=model;\n'.format(keyname)) 58 58 59 59 fid.close() -
issm/trunk-jpl/test/NightlyRun/GetIds.py
r24226 r24261 50 50 51 51 # many inputs of both ids and test names 52 # ids_names[0] - 53 # ids_names[1] - 52 # ids_names[0] -> ids_names by id 53 # ids_names[1] -> ids_names by test name 54 54 if type(ids_names) == list and len(ids_names) == 2: 55 55 if type(ids_names[0]) == list and len(ids_names[0]) > 0 and type(ids_names[0][0]) == int: … … 62 62 # no recognizable ids or id formats 63 63 if np.size(ids) == 0 and not np.all(np.equal(ids_names, None)): 64 raise RuntimeError('runme.py: GetIds.py: include and exclude options (-i / --id; -in / --include_name; - e / --exclude; - en /--exclude_name) options must follow GetIds usage format:\n' + GetIds.__doc__)64 raise RuntimeError('runme.py: GetIds.py: include and exclude options (-i/--id; -in/--include_name; -e/--exclude; -en/--exclude_name) options must follow GetIds usage format:\n' + GetIds.__doc__) 65 65 66 66 return np.array(ids).astype(int) -
issm/trunk-jpl/test/NightlyRun/test1101.py
r24214 r24261 63 63 64 64 #Now plot vx, vy, vz and vx on a cross section 65 # plotmodel(md, 'data', vx, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1 0^3], 'ylim', [0 L / 10^3], 'unit', 'km')65 # plotmodel(md, 'data', vx, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1.0e3], 'ylim', [0 L / 1.0e3], 'unit', 'km') 66 66 if printingflag: 67 67 pass … … 69 69 # printmodel(['ismipaHOvx' num2str(L)], 'png', 'margin', 'on', 'marginsize', 25, 'frame', 'off', 'resolution', 1.5, 'hardcopy', 'off') 70 70 # shutil.move("ismipaHOvx%d.png" % L, ISSM_DIR + '/website/doc_pdf/validation/Images/ISMIP/TestA') 71 # plotmodel(md, 'data', vy, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1 0^3], 'ylim', [0 L / 10^3], 'unit', 'km')71 # plotmodel(md, 'data', vy, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1.0e3], 'ylim', [0 L / 1.0e3], 'unit', 'km') 72 72 if printingflag: 73 73 pass … … 75 75 # printmodel(['ismipaHOvy' num2str(L)], 'png', 'margin', 'on', 'marginsize', 25, 'frame', 'off', 'resolution', 1.5, 'hardcopy', 'off') 76 76 # shutil.move("ismipaHOvy%d.png" % L, ISSM_DIR + '/website/doc_pdf/validation/Images/ISMIP/TestA') 77 # plotmodel(md, 'data', vz, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1 0^3], 'ylim', [0 L / 10^3], 'unit', 'km')77 # plotmodel(md, 'data', vz, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1.0e3], 'ylim', [0 L / 1.0e3], 'unit', 'km') 78 78 if printingflag: 79 79 pass -
issm/trunk-jpl/test/NightlyRun/test1102.py
r24214 r24261 62 62 63 63 #Now plot vx, vy, vz and vx on a cross section 64 # plotmodel(md, 'data', vx, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1 0^3], 'ylim', [0 L / 10^3], 'unit', 'km', 'figure', 2)64 # plotmodel(md, 'data', vx, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1.0e3], 'ylim', [0 L / 1.0e3], 'unit', 'km', 'figure', 2) 65 65 if printingflag: 66 66 pass … … 68 68 # printmodel(['ismipaFSvx' num2str(L)], 'png', 'margin', 'on', 'marginsize', 25, 'frame', 'off', 'resolution', 1.5, 'hardcopy', 'off') 69 69 # shutil.move("ismipaFSvx%d.png" % L, ISSM_DIR + '/website/doc_pdf/validation/Images/ISMIP/TestA') 70 # plotmodel(md, 'data', vy, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1 0^3], 'ylim', [0 L / 10^3], 'unit', 'km', 'figure', 3)70 # plotmodel(md, 'data', vy, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1.0e3], 'ylim', [0 L / 1.0e3], 'unit', 'km', 'figure', 3) 71 71 if printingflag: 72 72 pass … … 74 74 # printmodel(['ismipaFSvy' num2str(L)], 'png', 'margin', 'on', 'marginsize', 25, 'frame', 'off', 'resolution', 1.5, 'hardcopy', 'off') 75 75 # shutil.move("ismipaFSvy%d.png" % L, ISSM_DIR + '/website/doc_pdf/validation/Images/ISMIP/TestA') 76 # plotmodel(md, 'data', vz, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1 0^3], 'ylim', [0 L / 10^3], 'unit', 'km', 'figure', 4)76 # plotmodel(md, 'data', vz, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1.0e3], 'ylim', [0 L / 1.0e3], 'unit', 'km', 'figure', 4) 77 77 if printingflag: 78 78 pass -
issm/trunk-jpl/test/NightlyRun/test1103.py
r24214 r24261 62 62 63 63 #Now plot vx, vy, vz and vx on a cross section 64 # plotmodel(md, 'data', vx, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1 0^3], 'ylim', [0 L / 10^3], 'unit', 'km')64 # plotmodel(md, 'data', vx, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1.0e3], 'ylim', [0 L / 1.0e3], 'unit', 'km') 65 65 if printingflag: 66 66 pass … … 68 68 # printmodel(['ismipbHOvx' num2str(L)], 'png', 'margin', 'on', 'marginsize', 25, 'frame', 'off', 'resolution', 1.5, 'hardcopy', 'off') 69 69 # shutil.move("ismipbHOvx%d.png" % L, ISSM_DIR + '/website/doc_pdf/validation/Images/ISMIP/TestB') 70 # plotmodel(md, 'data', vz, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1 0^3], 'ylim', [0 L / 10^3], 'unit', 'km')70 # plotmodel(md, 'data', vz, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1.0e3], 'ylim', [0 L / 1.0e3], 'unit', 'km') 71 71 if printingflag: 72 72 pass -
issm/trunk-jpl/test/NightlyRun/test1105.py
r24214 r24261 51 51 if (L == 5000.): 52 52 md.stressbalance.spcvx[pos] = 15.66 53 md.stressbalance.spcvy[pos] = - 53 md.stressbalance.spcvy[pos] = -0.1967 54 54 elif (L == 10000.): 55 55 md.stressbalance.spcvx[pos] = 16.04 56 md.stressbalance.spcvy[pos] = - 56 md.stressbalance.spcvy[pos] = -0.1977 57 57 elif (L == 20000.): 58 58 md.stressbalance.spcvx[pos] = 16.53 59 md.stressbalance.spcvy[pos] = - 59 md.stressbalance.spcvy[pos] = -1.27 60 60 elif (L == 40000.): 61 61 md.stressbalance.spcvx[pos] = 17.23 62 md.stressbalance.spcvy[pos] = - 62 md.stressbalance.spcvy[pos] = -3.17 63 63 elif (L == 80000.): 64 64 md.stressbalance.spcvx[pos] = 16.68 65 md.stressbalance.spcvy[pos] = - 65 md.stressbalance.spcvy[pos] = -2.69 66 66 elif (L == 160000.): 67 67 md.stressbalance.spcvx[pos] = 16.03 68 md.stressbalance.spcvy[pos] = - 68 md.stressbalance.spcvy[pos] = -1.27 69 69 70 70 #Spc the bed at zero for vz … … 85 85 86 86 #Now plot vx, vy, vz and vx on a cross section 87 # plotmodel(md, 'data', vx, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1 0^3], 'ylim', [0 L / 10^3], 'unit', 'km', 'figure', 2)87 # plotmodel(md, 'data', vx, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1.0e3], 'ylim', [0 L / 1.0e3], 'unit', 'km', 'figure', 2) 88 88 if printingflag: 89 89 pass … … 91 91 # printmodel(['ismipcHOvx' num2str(L)], 'png', 'margin', 'on', 'marginsize', 25, 'frame', 'off', 'resolution', 1.5, 'hardcopy', 'off') 92 92 # shutil.move("ismipcHOvx%d.png" % L, ISSM_DIR + '/website/doc_pdf/validation/Images/ISMIP/TestC') 93 # plotmodel(md, 'data', vy, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1 0^3], 'ylim', [0 L / 10^3], 'unit', 'km', 'figure', 3)93 # plotmodel(md, 'data', vy, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1.0e3], 'ylim', [0 L / 1.0e3], 'unit', 'km', 'figure', 3) 94 94 if printingflag: 95 95 pass … … 97 97 # printmodel(['ismipcHOvy' num2str(L)], 'png', 'margin', 'on', 'marginsize', 25, 'frame', 'off', 'resolution', 1.5, 'hardcopy', 'off') 98 98 # shutil.move("ismipcHOvy%d.png" % L, ISSM_DIR + '/website/doc_pdf/validation/Images/ISMIP/TestC') 99 # plotmodel(md, 'data', vz, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1 0^3], 'ylim', [0 L / 10^3], 'unit', 'km', 'figure', 4)99 # plotmodel(md, 'data', vz, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1.0e3], 'ylim', [0 L / 1.0e3], 'unit', 'km', 'figure', 4) 100 100 if printingflag: 101 101 pass -
issm/trunk-jpl/test/NightlyRun/test1106.py
r24214 r24261 30 30 if (L == 5000.): 31 31 md.stressbalance.spcvx[pos] = 15.66 32 md.stressbalance.spcvy[pos] = - 32 md.stressbalance.spcvy[pos] = -0.1967 33 33 elif (L == 10000.): 34 34 md.stressbalance.spcvx[pos] = 16.04 35 md.stressbalance.spcvy[pos] = - 35 md.stressbalance.spcvy[pos] = -0.1977 36 36 elif (L == 20000.): 37 37 md.stressbalance.spcvx[pos] = 16.53 38 md.stressbalance.spcvy[pos] = - 38 md.stressbalance.spcvy[pos] = -1.27 39 39 elif (L == 40000.): 40 40 md.stressbalance.spcvx[pos] = 17.23 41 md.stressbalance.spcvy[pos] = - 41 md.stressbalance.spcvy[pos] = -3.17 42 42 elif (L == 80000.): 43 43 md.stressbalance.spcvx[pos] = 16.68 44 md.stressbalance.spcvy[pos] = - 44 md.stressbalance.spcvy[pos] = -2.69 45 45 elif (L == 160000.): 46 46 md.stressbalance.spcvx[pos] = 16.03 47 md.stressbalance.spcvy[pos] = - 47 md.stressbalance.spcvy[pos] = -1.27 48 48 49 49 md = setflowequation(md, 'FS', 'all') -
issm/trunk-jpl/test/NightlyRun/test1107.py
r24214 r24261 82 82 83 83 #Now plot vx, vy, vz and vx on a cross section 84 # plotmodel(md, 'data', vx, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1 0^3], 'ylim', [0 L / 10^3], 'unit', 'km', 'figure', 2)84 # plotmodel(md, 'data', vx, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1.0e3], 'ylim', [0 L / 1.0e3], 'unit', 'km', 'figure', 2) 85 85 if printingflag: 86 86 pass … … 88 88 # printmodel(['ismipdHOvx' num2str(L)], 'png', 'margin', 'on', 'marginsize', 25, 'frame', 'off', 'resolution', 1.5, 'hardcopy', 'off') 89 89 # shutil.move("ismipdHOvx%d.png" % L, ISSM_DIR + '/website/doc_pdf/validation/Images/ISMIP/TestD') 90 # plotmodel(md, 'data', vz, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1 0^3], 'ylim', [0 L / 10^3], 'unit', 'km', 'figure', 3)90 # plotmodel(md, 'data', vz, 'layer #all', md.mesh.numberoflayers, 'xlim', [0 L / 1.0e3], 'ylim', [0 L / 1.0e3], 'unit', 'km', 'figure', 3) 91 91 if printingflag: 92 92 pass -
issm/trunk-jpl/test/NightlyRun/test1201.py
r24214 r24261 28 28 print(" initial velocity") 29 29 md.initialization.vx = np.zeros((md.mesh.numberofvertices)) 30 md.initialization.vy = - 30 md.initialization.vy = -400. * np.ones((md.mesh.numberofvertices)) 31 31 32 32 #Stabilization -
issm/trunk-jpl/test/NightlyRun/test1202.py
r24256 r24261 38 38 # system(['mv eismintdiag1vx.png ' ISSM_DIR '/website/doc_pdf/validation/Images/EISMINT/IceShelf ']) 39 39 40 #plotmodel(md, 'data', vy, 'contourlevels', { - 40 #plotmodel(md, 'data', vy, 'contourlevels', { -100, -200, -300, -400, -500, -600, -700, -800, -900, -1000}, ... 41 41 # 'contourcolor', 'k') 42 42 if printingflag: -
issm/trunk-jpl/test/NightlyRun/test1203.py
r24256 r24261 45 45 # printmodel('eismintdiag2vx', 'png', 'margin', 'on', 'marginsize', 25, 'frame', 'off', 'resolution', 2, 'hardcopy', 'off') 46 46 # system(['mv eismintdiag2vx.png ' ISSM_DIR '/website/doc_pdf/validation/Images/EISMINT/IceShelf ']) 47 #plotmodel(md, 'data', vy, 'contourlevels', { - 47 #plotmodel(md, 'data', vy, 'contourlevels', { -100, -200, -300, -400, -500, -600, -700, -800, -900, -1000}, ... 48 48 # 'contourcolor', 'k') 49 49 if printingflag: -
issm/trunk-jpl/test/NightlyRun/test1301.py
r24214 r24261 49 49 #plotmodel(md, 'data', comp_melting, 'title', 'Modeled melting', 'data', melting, 'title', 'Analytical melting', ... 50 50 # 'data', comp_melting - melting, 'title', 'Absolute error', 'data', relative, 'title', 'Relative error [%]', ... 51 # 'layer #all', 1, 'caxis #2', [1.02964 1.02966] * 1 0^- 4, 'FontSize #all', 20, 'figposition', 'mathieu')51 # 'layer #all', 1, 'caxis #2', [1.02964 1.02966] * 1.0e - 4, 'FontSize #all', 20, 'figposition', 'mathieu') 52 52 if printingflag: 53 53 pass -
issm/trunk-jpl/test/NightlyRun/test1302.py
r24256 r24261 22 22 md = setmask(md, '', '') 23 23 md = parameterize(md, '../Par/SquareThermal.py') 24 md.extrude(30, 1.) #NB: the more one extrudes, the better (10 - > relative~0.35%, 20 - > 0.1%, 30 -> 0.05%)24 md.extrude(30, 1.) #NB: the more one extrudes, the better (10 -> relative~0.35%, 20 -> 0.1%, 30 -> 0.05%) 25 25 md = setflowequation(md, 'HO', 'all') 26 26 … … 38 38 #d2T / dz2 - w * rho_ice * c / k * dT / dz = 0 T(surface)=0 T(bed)=10 = > T = A exp(alpha z) + B 39 39 alpha = 0.1 / md.constants.yts * md.materials.rho_ice * md.materials.heatcapacity / md.materials.thermalconductivity #alpha = w rho_ice c / k and w = 0.1m / an 40 A = 10. / (np.exp(alpha * (-1000.)) - 1.) #A = T(bed) / (exp(alpha * bed) - 1) with bed= - 41 B = - 40 A = 10. / (np.exp(alpha * (-1000.)) - 1.) #A = T(bed) / (exp(alpha * bed) - 1) with bed= -1000 T(bed)=10 41 B = -A 42 42 md.initialization.temperature = A * np.exp(alpha * md.mesh.z) + B 43 43 -
issm/trunk-jpl/test/NightlyRun/test1304.py
r24214 r24261 33 33 #analytical results 34 34 #the result is linear with depth and is equal to 0 on the upper surface (See BC) 35 #d2T / dz2 = 0 - k * dT / dz(bed)=G T(surface)=0 = > T= - 36 md.initialization.temperature = - 35 #d2T / dz2 = 0 - k * dT / dz(bed)=G T(surface)=0 = > T= -G / k * (z - surface) 36 md.initialization.temperature = -0.1 / md.materials.thermalconductivity * (md.mesh.z - md.geometry.surface) #G = 0.1 W / m2 37 37 38 38 #modeled results -
issm/trunk-jpl/test/NightlyRun/test2002.py
r24256 r24261 24 24 longe = np.sum(md.mesh.long[md.mesh.elements - 1], axis=1) / 3 25 25 pos = np.where(late < -80) 26 md.slr.deltathickness[pos] = - 26 md.slr.deltathickness[pos] = -100 27 27 #greenland 28 28 pos = np.where(np.logical_and.reduce((late > 70, late < 80, longe > -60, longe < -30))) 29 md.slr.deltathickness[pos] = - 29 md.slr.deltathickness[pos] = -100 30 30 31 31 #elastic loading from love numbers: … … 41 41 icemask = np.ones((md.mesh.numberofvertices)) 42 42 pos = np.where(mask == 0)[0] 43 icemask[pos] = - 43 icemask[pos] = -1 44 44 pos = np.where(np.sum(mask[md.mesh.elements.astype(int) - 1], axis=1) < 3)[0] 45 icemask[md.mesh.elements[pos, :].astype(int) - 1] = - 45 icemask[md.mesh.elements[pos, :].astype(int) - 1] = -1 46 46 md.mask.ice_levelset = icemask 47 47 md.mask.ocean_levelset = np.zeros((md.mesh.numberofvertices)) … … 51 51 #make sure that the ice level set is all inclusive: 52 52 md.mask.land_levelset = np.zeros((md.mesh.numberofvertices)) 53 md.mask.groundedice_levelset = - 53 md.mask.groundedice_levelset = -np.ones((md.mesh.numberofvertices)) 54 54 55 55 #make sure that the elements that have loads are fully grounded: … … 58 58 59 59 #make sure wherever there is an ice load, that the mask is set to ice: 60 icemask[md.mesh.elements[pos, :] - 1] = - 60 icemask[md.mesh.elements[pos, :] - 1] = -1 61 61 md.mask.ice_levelset = icemask 62 62 -
issm/trunk-jpl/test/NightlyRun/test2003.py
r24256 r24261 26 26 longe = sum(md.mesh.long[md.mesh.elements - 1], 1) / 3 27 27 pos = np.intersect1d(np.array(np.where(late < -75)), np.array(np.where(longe < 0))) 28 md.slr.deltathickness[pos] = - 28 md.slr.deltathickness[pos] = -1 29 29 30 30 #elastic loading from love numbers: … … 45 45 pos = np.where(mask == 0) 46 46 #pos[0] because np.where(mask = 0) returns a 2d array, the latter parts of which are all array / s of 0s 47 icemask[pos[0]] = - 47 icemask[pos[0]] = -1 48 48 pos = np.where(sum(mask[md.mesh.elements - 1], 1) < 3) 49 icemask[md.mesh.elements[pos, :] - 1] = - 49 icemask[md.mesh.elements[pos, :] - 1] = -1 50 50 md.mask.ice_levelset = icemask 51 51 md.mask.ocean_levelset = np.zeros((md.mesh.numberofvertices, )) … … 55 55 #make sure that the ice level set is all inclusive: 56 56 md.mask.land_levelset = np.zeros((md.mesh.numberofvertices, )) 57 md.mask.groundedice_levelset = - 57 md.mask.groundedice_levelset = -np.ones((md.mesh.numberofvertices, )) 58 58 59 59 #make sure that the elements that have loads are fully grounded: … … 62 62 63 63 #make sure wherever there is an ice load, that the mask is set to ice: 64 icemask[md.mesh.elements[pos, :] - 1] = - 64 icemask[md.mesh.elements[pos, :] - 1] = -1 65 65 md.mask.ice_levelset = icemask 66 66 # }}} -
issm/trunk-jpl/test/NightlyRun/test2010.py
r24256 r24261 22 22 md.slr.deltathickness = np.zeros((md.mesh.numberofelements, )) 23 23 pos = np.intersect1d(np.array(np.where(late < -75)), np.array(np.where(longe > 0))) 24 #python does not include last element in array slices, (6:7) - 25 md.slr.deltathickness[pos[5:7]] = - 24 #python does not include last element in array slices, (6:7) -> [5:7] 25 md.slr.deltathickness[pos[5:7]] = -1 26 26 27 27 md.slr.sealevel = np.zeros((md.mesh.numberofvertices, )) … … 45 45 icemask = np.ones((md.mesh.numberofvertices, )) 46 46 pos = np.where(mask == 0) 47 icemask[pos[0]] = - 47 icemask[pos[0]] = -1 48 48 pos = np.where(sum(mask[md.mesh.elements - 1], 1) < 3) 49 icemask[md.mesh.elements[pos, :] - 1] = - 49 icemask[md.mesh.elements[pos, :] - 1] = -1 50 50 md.mask.ice_levelset = icemask 51 51 md.mask.ocean_levelset = np.zeros((md.mesh.numberofvertices, )) … … 55 55 #make sure that the ice level set is all inclusive: 56 56 md.mask.land_levelset = np.zeros((md.mesh.numberofvertices, )) 57 md.mask.groundedice_levelset = - 57 md.mask.groundedice_levelset = -np.ones((md.mesh.numberofvertices, )) 58 58 59 59 #make sure that the elements that have loads are fully grounded: … … 62 62 63 63 #make sure wherever there is an ice load, that the mask is set to ice: 64 icemask[md.mesh.elements[pos, :] - 1] = - 64 icemask[md.mesh.elements[pos, :] - 1] = -1 65 65 md.mask.ice_levelset = icemask 66 66 # }}} -
issm/trunk-jpl/test/NightlyRun/test2101.py
r24214 r24261 19 19 md.esa.deltathickness = np.zeros((md.mesh.numberofelements, )) 20 20 pos = 449 21 md.esa.deltathickness[pos] = - 21 md.esa.deltathickness[pos] = -100 # this is the only "icy" element 22 22 23 23 #love numbers: … … 35 35 md.mask.ice_levelset = np.ones((md.mesh.numberofvertices, )) 36 36 pos = np.where(md.esa.deltathickness) 37 md.mask.ice_levelset[md.mesh.elements[pos, :]] = - 37 md.mask.ice_levelset[md.mesh.elements[pos, :]] = -1 38 38 39 39 #is ice grounded? 40 md.mask.groundedice_levelset = - 40 md.mask.groundedice_levelset = -np.ones((md.mesh.numberofvertices, )) 41 41 pos = np.where(md.mask.ice_levelset <= 0) 42 42 md.mask.groundedice_levelset[pos] = 1 -
issm/trunk-jpl/test/NightlyRun/test2110.py
r24214 r24261 21 21 y_element = np.mean(md.mesh.y[index - 1], 1) 22 22 rad_dist = np.sqrt(x_element**2 + y_element**2) / 1000 # radial distance in km 23 md.esa.deltathickness[np.where(rad_dist <= disc_radius)] = - 23 md.esa.deltathickness[np.where(rad_dist <= disc_radius)] = -1 # 1 m water withdrawl 24 24 25 25 #love numbers: … … 34 34 md.mask.ice_levelset = np.ones((md.mesh.numberofvertices, )) 35 35 pos = np.where(md.esa.deltathickness) 36 md.mask.ice_levelset[md.mesh.elements[pos, :] - 1] = - 36 md.mask.ice_levelset[md.mesh.elements[pos, :] - 1] = -1 37 37 38 38 #is ice grounded? 39 md.mask.groundedice_levelset = - 39 md.mask.groundedice_levelset = -np.ones((md.mesh.numberofvertices, )) 40 40 pos = np.where(md.mask.ice_levelset <= 0) 41 41 md.mask.groundedice_levelset[pos] = 1 -
issm/trunk-jpl/test/NightlyRun/test2111.py
r24214 r24261 21 21 y_element = np.mean(md.mesh.y[index - 1], 1) - 1.0e6 22 22 rad_dist = np.sqrt(x_element**2 + y_element**2) / 1000 # radial distance in km 23 md.esa.deltathickness[np.where(rad_dist <= disc_radius)] = - 23 md.esa.deltathickness[np.where(rad_dist <= disc_radius)] = -1 # 1 m water withdrawl 24 24 # }}} 25 25 #love numbers: {{{ … … 34 34 md.mask.ice_levelset = np.ones((md.mesh.numberofvertices, )) 35 35 pos = np.where(md.esa.deltathickness) 36 md.mask.ice_levelset[md.mesh.elements[pos, :]] = - 36 md.mask.ice_levelset[md.mesh.elements[pos, :]] = -1 37 37 38 38 #is ice grounded? 39 md.mask.groundedice_levelset = - 39 md.mask.groundedice_levelset = -np.ones((md.mesh.numberofvertices, )) 40 40 pos = np.where(md.mask.ice_levelset <= 0) 41 41 md.mask.groundedice_levelset[pos] = 1 … … 56 56 md.miscellaneous.name = 'test2111' 57 57 md.esa.degacc = 0.01 58 md.esa.hemisphere = - 58 md.esa.hemisphere = -1 59 59 # }}} 60 60 -
issm/trunk-jpl/test/NightlyRun/test2112.py
r24214 r24261 20 20 y_element = np.mean(md.mesh.y[index - 1], 1) 21 21 rad_dist = np.sqrt(x_element**2 + y_element**2) / 1000 # radial distance in km 22 md.esa.deltathickness[np.where(rad_dist <= disc_radius)] = - 22 md.esa.deltathickness[np.where(rad_dist <= disc_radius)] = -1 # 1 m water withdrawl 23 23 # }}} 24 24 #love numbers: {{{ … … 33 33 md.mask.ice_levelset = np.ones((md.mesh.numberofvertices, )) 34 34 pos = np.where(md.esa.deltathickness) 35 md.mask.ice_levelset[md.mesh.elements[pos, :]] = - 35 md.mask.ice_levelset[md.mesh.elements[pos, :]] = -1 36 36 37 37 #is ice grounded? 38 md.mask.groundedice_levelset = - 38 md.mask.groundedice_levelset = -np.ones((md.mesh.numberofvertices, )) 39 39 pos = np.where(md.mask.ice_levelset <= 0) 40 40 md.mask.groundedice_levelset[pos] = 1 … … 55 55 md.miscellaneous.name = 'test2112' 56 56 md.esa.degacc = 0.01 57 md.esa.hemisphere = - 57 md.esa.hemisphere = -1 58 58 # }}} 59 59 -
issm/trunk-jpl/test/NightlyRun/test2113.py
r24214 r24261 22 22 y_element = np.mean(md.mesh.y[index - 1], 1) + 1.0e6 23 23 rad_dist = np.sqrt(x_element**2 + y_element**2) / 1000 # radial distance in km 24 md.esa.deltathickness[np.where(rad_dist <= disc_radius)] = - 24 md.esa.deltathickness[np.where(rad_dist <= disc_radius)] = -1 # 1 m water withdrawl 25 25 # }}} 26 26 #love numbers: {{{ … … 35 35 md.mask.ice_levelset = np.ones((md.mesh.numberofvertices, )) 36 36 pos = np.where(md.esa.deltathickness) 37 md.mask.ice_levelset[md.mesh.elements[pos, :]] = - 37 md.mask.ice_levelset[md.mesh.elements[pos, :]] = -1 38 38 39 39 #is ice grounded? 40 md.mask.groundedice_levelset = - 40 md.mask.groundedice_levelset = -np.ones((md.mesh.numberofvertices, )) 41 41 pos = np.where(md.mask.ice_levelset <= 0) 42 42 md.mask.groundedice_levelset[pos] = 1 -
issm/trunk-jpl/test/NightlyRun/test217.py
r24214 r24261 34 34 h = 1000. 35 35 md.geometry.thickness = h * np.ones((md.mesh.numberofvertices)) 36 md.geometry.base = - 36 md.geometry.base = -md.materials.rho_ice / md.materials.rho_water * md.geometry.thickness 37 37 md.geometry.surface = md.geometry.base + md.geometry.thickness 38 38 … … 67 67 pos = np.where(md.mesh.y == ymax) 68 68 nodeonicefront[pos] = 1 69 md.mask.ice_levelset = - 69 md.mask.ice_levelset = -1 + nodeonicefront 70 70 71 71 md = solve(md, 'Stressbalance') -
issm/trunk-jpl/test/NightlyRun/test218.py
r24256 r24261 42 42 h = 1000. 43 43 md.geometry.thickness = h * np.ones((md.mesh.numberofvertices, )) 44 md.geometry.base = - 44 md.geometry.base = -md.materials.rho_ice / md.materials.rho_water * md.geometry.thickness 45 45 md.geometry.surface = md.geometry.base + md.geometry.thickness 46 46 … … 80 80 #dakota version 81 81 version = IssmConfig('_DAKOTA_VERSION_') 82 # returns tuple "(u'6.2', )" - 82 # returns tuple "(u'6.2', )" -> unicode string '6.2', convert to float 83 83 version = float(version[0]) 84 84 … … 106 106 107 107 #imperative! 108 md.stressbalance.reltol = 10**- 108 md.stressbalance.reltol = 10**-10 #tighten for qmu analysis 109 109 md.qmu.isdakota = 1 110 110 -
issm/trunk-jpl/test/NightlyRun/test234.py
r24214 r24261 81 81 md.qmu.params.evaluation_concurrency = 1 82 82 83 md.stressbalance.reltol = 10**- 83 md.stressbalance.reltol = 10**-5 #tighten for qmu analyses 84 84 md.transient.requested_outputs = ['IceVolume'] 85 85 -
issm/trunk-jpl/test/NightlyRun/test235.py
r24214 r24261 77 77 md.qmu.params.evaluation_concurrency = 1 78 78 79 md.stressbalance.reltol = 10**- 79 md.stressbalance.reltol = 10**-5 #tighten for qmu analyses 80 80 md.transient.requested_outputs = ['IceVolume'] 81 81 -
issm/trunk-jpl/test/NightlyRun/test236.py
r24256 r24261 52 52 md.smb.precipitations_lgm = np.zeros((md.mesh.numberofvertices + 1, 12)) 53 53 for imonth in range(0, 12): 54 md.smb.precipitations_presentday[0:md.mesh.numberofvertices, imonth] = - 54 md.smb.precipitations_presentday[0:md.mesh.numberofvertices, imonth] = -0.4 * 10**(-6) * md.mesh.y + 0.5 55 55 md.smb.precipitations_presentday[md.mesh.numberofvertices, imonth] = ((float(imonth) + 1.) / 12.) 56 md.smb.precipitations_lgm[0:md.mesh.numberofvertices, imonth] = - 56 md.smb.precipitations_lgm[0:md.mesh.numberofvertices, imonth] = -0.4 * 10**(-6) * md.mesh.y + 0.5 57 57 md.smb.precipitations_lgm[md.mesh.numberofvertices, imonth] = ((float(imonth) + 1.) / 12.) 58 58 -
issm/trunk-jpl/test/NightlyRun/test237.py
r24256 r24261 50 50 md.smb.precipitations_lgm = np.zeros((md.mesh.numberofvertices + 1, 12)) 51 51 for imonth in range(0, 12): 52 md.smb.precipitations_presentday[0:md.mesh.numberofvertices, imonth] = - 52 md.smb.precipitations_presentday[0:md.mesh.numberofvertices, imonth] = -0.4 * 10**(-6) * md.mesh.y + 0.5 53 53 md.smb.precipitations_presentday[md.mesh.numberofvertices, imonth] = ((float(imonth) + 1.) / 12.) 54 md.smb.precipitations_lgm[0:md.mesh.numberofvertices, imonth] = - 54 md.smb.precipitations_lgm[0:md.mesh.numberofvertices, imonth] = -0.4 * 10**(-6) * md.mesh.y + 0.5 55 55 md.smb.precipitations_lgm[md.mesh.numberofvertices, imonth] = ((float(imonth) + 1.) / 12.) 56 56 -
issm/trunk-jpl/test/NightlyRun/test238.py
r24256 r24261 41 41 md.smb.precipitations_presentday = np.zeros((md.mesh.numberofvertices + 1, 12)) 42 42 for imonth in range(0, 12): 43 md.smb.precipitations_presentday[0:md.mesh.numberofvertices, imonth] = - 43 md.smb.precipitations_presentday[0:md.mesh.numberofvertices, imonth] = -0.4 * 10**(-6) * md.mesh.y + 0.5 44 44 md.smb.precipitations_presentday[md.mesh.numberofvertices, imonth] = (float(imonth) / 12.) 45 45 -
issm/trunk-jpl/test/NightlyRun/test239.py
r24256 r24261 41 41 md.smb.precipitations_presentday = np.zeros((md.mesh.numberofvertices + 1, 12)) 42 42 for imonth in range(0, 12): 43 md.smb.precipitations_presentday[0:md.mesh.numberofvertices, imonth] = - 43 md.smb.precipitations_presentday[0:md.mesh.numberofvertices, imonth] = -0.4 * 10**(-6) * md.mesh.y + 0.5 44 44 md.smb.precipitations_presentday[md.mesh.numberofvertices, imonth] = ((float(imonth) + 1.) / 12.) 45 45 -
issm/trunk-jpl/test/NightlyRun/test240.py
r24256 r24261 41 41 md.smb.precipitations_presentday = np.zeros((md.mesh.numberofvertices + 1, 12)) 42 42 for imonth in range(0, 12): 43 md.smb.precipitations_presentday[0:md.mesh.numberofvertices, imonth] = - 43 md.smb.precipitations_presentday[0:md.mesh.numberofvertices, imonth] = -0.4 * 10**(-6) * md.mesh.y + 0.5 44 44 md.smb.precipitations_presentday[md.mesh.numberofvertices, imonth] = ((float(imonth) + 1.) / 12.) 45 45 -
issm/trunk-jpl/test/NightlyRun/test2424.py
r24256 r24261 18 18 md.smb.mass_balance[:] = 0. 19 19 20 md.geometry.base = - 21 md.geometry.bed = - 20 md.geometry.base = -700. - np.abs(md.mesh.y - 500000.) / 1000. 21 md.geometry.bed = -700. - np.abs(md.mesh.y - 500000.) / 1000. 22 22 md.geometry.thickness[:] = 1000. 23 23 md.geometry.surface = md.geometry.base + md.geometry.thickness -
issm/trunk-jpl/test/NightlyRun/test2425.py
r24214 r24261 15 15 md.initialization.vx[:] = 0. 16 16 md.initialization.vy[:] = 0. 17 md.geometry.base = - 18 md.geometry.bed = - 17 md.geometry.base = -700. - (md.mesh.y - 500000.) / 1000. 18 md.geometry.bed = -700. - (md.mesh.y - 500000.) / 1000. 19 19 md.geometry.thickness[:] = 1300. 20 20 md.geometry.surface = md.geometry.base + md.geometry.thickness … … 31 31 32 32 #get same results with offset in bed and sea level: 33 md.geometry.base = - 34 md.geometry.bed = - 33 md.geometry.base = -700. - (md.mesh.y - 500000.) / 1000. 34 md.geometry.bed = -700. - (md.mesh.y - 500000.) / 1000. 35 35 md.geometry.thickness[:] = 1300. 36 36 md.geometry.surface = md.geometry.base + md.geometry.thickness -
issm/trunk-jpl/test/NightlyRun/test244.py
r24255 r24261 84 84 mint_on_partition[pa] = max(mint / telms[0, vi]) 85 85 86 mint_on_partition[np.where(np.isnan(mint_on_partition))] = 10**- 86 mint_on_partition[np.where(np.isnan(mint_on_partition))] = 10**-10 87 87 md.qmu.variables.surface_mass_balanceTa = uniform_uncertain.uniform_uncertain('scaled_SmbTa', 1, 0.05) 88 88 md.qmu.variables.surface_mass_balanceTa[0].lower = 0.95 … … 117 117 118 118 119 md.stressbalance.reltol = 10**- 119 md.stressbalance.reltol = 10**-5 #tighten for qmu analyses 120 120 md.transient.requested_outputs = ['IceVolume', 'TotalSmb', 'IceMass'] 121 121 -
issm/trunk-jpl/test/NightlyRun/test245.py
r24256 r24261 25 25 md.smb.monthlytemperatures = np.empty((md.mesh.numberofvertices + 1, 12)) 26 26 md.smb.precipitation = np.empty((md.mesh.numberofvertices + 1, 12)) 27 temp_ma_present = - 27 temp_ma_present = -10. * np.ones((md.mesh.numberofvertices, )) - md.smb.rlaps * md.geometry.surface / 1000. 28 28 temp_mj_present = 10. * np.ones((md.mesh.numberofvertices, )) - md.smb.rlaps * md.geometry.surface / 1000. 29 29 precipitation = 5. * np.ones((md.mesh.numberofvertices, )) -
issm/trunk-jpl/test/NightlyRun/test250.py
r24214 r24261 79 79 md.qmu.params.evaluation_concurrency = 1 80 80 81 md.stressbalance.reltol = 10**- 81 md.stressbalance.reltol = 10**-5 #tighten for qmu analyses 82 82 md.transient.requested_outputs = ['IceVolume'] 83 83 -
issm/trunk-jpl/test/NightlyRun/test251.py
r24214 r24261 76 76 md.qmu.params.evaluation_concurrency = 1 77 77 78 md.stressbalance.reltol = 10**- 78 md.stressbalance.reltol = 10**-5 #tighten for qmu analyses 79 79 md.transient.requested_outputs = ['IceVolume'] 80 80 -
issm/trunk-jpl/test/NightlyRun/test272.py
r24214 r24261 25 25 md.inversion.iscontrol = 1 26 26 md.inversion.control_parameters = ['DamageDbar'] 27 md.inversion.min_parameters = 10**- 27 md.inversion.min_parameters = 10**-13 * np.ones((md.mesh.numberofvertices, len(md.inversion.control_parameters))) 28 28 md.inversion.max_parameters = np.ones((md.mesh.numberofvertices, len(md.inversion.control_parameters))) 29 29 md.inversion.nsteps = 2 -
issm/trunk-jpl/test/NightlyRun/test3015.py
r24214 r24261 49 49 md.autodiff.isautodiff = False 50 50 md.geometry.thickness[index] = h0 51 md.geometry.base = - 51 md.geometry.base = -md.materials.rho_ice / md.materials.rho_water * md.geometry.thickness 52 52 md.geometry.surface = md.geometry.base + md.geometry.thickness 53 53 md = SetIceShelfBC(md) … … 60 60 md.autodiff.isautodiff = False 61 61 md.geometry.thickness[index] = h2 62 md.geometry.base = - 62 md.geometry.base = -md.materials.rho_ice / md.materials.rho_water * md.geometry.thickness 63 63 md.geometry.surface = md.geometry.base + md.geometry.thickness 64 64 md = SetIceShelfBC(md) … … 74 74 md.autodiff.isautodiff = True 75 75 md.geometry.thickness[index] = h1 76 md.geometry.base = - 76 md.geometry.base = -md.materials.rho_ice / md.materials.rho_water * md.geometry.thickness 77 77 md.geometry.surface = md.geometry.base + md.geometry.thickness 78 78 md = SetIceShelfBC(md) -
issm/trunk-jpl/test/NightlyRun/test3020.py
r24214 r24261 51 51 md.autodiff.isautodiff = False 52 52 md.geometry.thickness[index] = h0 53 md.geometry.base = - 53 md.geometry.base = -md.materials.rho_ice / md.materials.rho_water * md.geometry.thickness 54 54 md.geometry.surface = md.geometry.base + md.geometry.thickness 55 55 md = SetIceShelfBC(md) … … 63 63 md.autodiff.isautodiff = False 64 64 md.geometry.thickness[index] = h2 65 md.geometry.base = - 65 md.geometry.base = -md.materials.rho_ice / md.materials.rho_water * md.geometry.thickness 66 66 md.geometry.surface = md.geometry.base + md.geometry.thickness 67 67 md = SetIceShelfBC(md) … … 79 79 md.autodiff.isautodiff = True 80 80 md.geometry.thickness[index] = h1 81 md.geometry.base = - 81 md.geometry.base = -md.materials.rho_ice / md.materials.rho_water * md.geometry.thickness 82 82 md.geometry.surface = md.geometry.base + md.geometry.thickness 83 83 md = SetIceShelfBC(md) -
issm/trunk-jpl/test/NightlyRun/test319.py
r24214 r24261 24 24 md.inversion.cost_functions = [103, 501] 25 25 md.inversion.cost_functions_coefficients = np.ones((md.mesh.numberofvertices, 2)) 26 md.inversion.cost_functions_coefficients[:, 1] = 2. * 10**- 26 md.inversion.cost_functions_coefficients[:, 1] = 2. * 10**-7 27 27 md.inversion.gradient_scaling = 3. * np.ones((md.inversion.nsteps, len(md.inversion.control_parameters))) 28 28 md.inversion.maxiter_per_step = 2 * np.ones(md.inversion.nsteps) -
issm/trunk-jpl/test/NightlyRun/test320.py
r24214 r24261 24 24 md.inversion.cost_functions = [103, 501] 25 25 md.inversion.cost_functions_coefficients = np.ones((md.mesh.numberofvertices, 2)) 26 md.inversion.cost_functions_coefficients[:, 1] = 2. * 10**- 26 md.inversion.cost_functions_coefficients[:, 1] = 2. * 10**-7 27 27 md.inversion.gradient_scaling = 3. * np.ones((md.inversion.nsteps, len(md.inversion.control_parameters))) 28 28 md.inversion.maxiter_per_step = 2 * np.ones(md.inversion.nsteps) -
issm/trunk-jpl/test/NightlyRun/test321.py
r24214 r24261 24 24 md.inversion.cost_functions = [102, 501] 25 25 md.inversion.cost_functions_coefficients = np.ones((md.mesh.numberofvertices, 2)) 26 md.inversion.cost_functions_coefficients[:, 1] = 2 * 10**- 26 md.inversion.cost_functions_coefficients[:, 1] = 2 * 10**-7 27 27 md.inversion.gradient_scaling = 3. * np.ones((md.inversion.nsteps, len(md.inversion.control_parameters))) 28 28 md.inversion.maxiter_per_step = 2 * np.ones(md.inversion.nsteps) -
issm/trunk-jpl/test/NightlyRun/test322.py
r24214 r24261 24 24 md.inversion.cost_functions = [104, 501] 25 25 md.inversion.cost_functions_coefficients = np.ones((md.mesh.numberofvertices, 2)) 26 md.inversion.cost_functions_coefficients[:, 1] = 2. * 10**- 26 md.inversion.cost_functions_coefficients[:, 1] = 2. * 10**-7 27 27 md.inversion.gradient_scaling = 3. * np.ones((md.inversion.nsteps, len(md.inversion.control_parameters))) 28 28 md.inversion.maxiter_per_step = 2 * np.ones(md.inversion.nsteps) -
issm/trunk-jpl/test/NightlyRun/test328.py
r24214 r24261 14 14 md = setflowequation(md, 'SSA', 'all') 15 15 md.smb = SMBgradients() 16 md.smb.b_pos = - 16 md.smb.b_pos = -100. + 0.00005 * md.mesh.x - 0.0001 * md.mesh.y 17 17 md.smb.b_neg = 250. + 0.000051 * md.mesh.x - 0.00011 * md.mesh.y 18 18 md.transient.requested_outputs = ['default', 'TotalSmb'] -
issm/trunk-jpl/test/NightlyRun/test329.py
r23793 r24261 15 15 md = setflowequation(md, 'HO', 'all') 16 16 md.smb = SMBgradients() 17 md.smb.b_pos = - 17 md.smb.b_pos = -100. + 0.00005 * md.mesh.x - 0.0001 * md.mesh.y 18 18 md.smb.b_neg = 250. + 0.000051 * md.mesh.x - 0.00011 * md.mesh.y 19 19 md.smb.href = copy.deepcopy(md.geometry.surface) -
issm/trunk-jpl/test/NightlyRun/test330.py
r24240 r24261 38 38 md.hydrology.sediment_transmitivity = (1.0e-3 * md.hydrology.sediment_thickness) * np.ones((md.mesh.numberofvertices)) 39 39 #init 40 md.initialization.sediment_head = - 40 md.initialization.sediment_head = -5.0 * np.ones((md.mesh.numberofvertices)) 41 41 #BC 42 42 md.hydrology.spcsediment_head = np.nan * np.ones((md.mesh.numberofvertices)) -
issm/trunk-jpl/test/NightlyRun/test3300.py
r24240 r24261 50 50 md.basalforcings.groundedice_melting_rate = np.zeros((md.mesh.numberofvertices + 1, len(times))) 51 51 52 md.basalforcings.groundedice_melting_rate[:, np.where(times <= 6.0)] = - 52 md.basalforcings.groundedice_melting_rate[:, np.where(times <= 6.0)] = -0.2 53 53 md.basalforcings.groundedice_melting_rate[:, np.where(times <= 1.0)] = 1.0 54 54 md.basalforcings.groundedice_melting_rate[-1, :] = times -
issm/trunk-jpl/test/NightlyRun/test341.py
r24214 r24261 27 27 md.inversion.cost_functions = [102, 501] 28 28 md.inversion.cost_functions_coefficients = np.ones((md.mesh.numberofvertices, 2)) 29 md.inversion.cost_functions_coefficients[:, 1] = 2. * 10**- 29 md.inversion.cost_functions_coefficients[:, 1] = 2. * 10**-7 30 30 md.inversion.vx_obs = md.initialization.vx 31 31 md.inversion.vy_obs = md.initialization.vy -
issm/trunk-jpl/test/NightlyRun/test343.py
r24214 r24261 19 19 md.smb.b_neg = 0.005 * np.ones((md.mesh.numberofvertices + 1, )) 20 20 md.smb.b_max = 4. * (md.materials.rho_freshwater / md.materials.rho_ice) * np.ones((md.mesh.numberofvertices + 1, )) 21 md.smb.b_min = - 21 md.smb.b_min = -4. * (md.materials.rho_freshwater / md.materials.rho_ice) * np.ones((md.mesh.numberofvertices + 1, )) 22 22 23 23 #Change geometry -
issm/trunk-jpl/test/NightlyRun/test344.py
r24214 r24261 25 25 md.smb.b_neg = 0.005 * np.ones((md.mesh.numberofvertices + 1, )) 26 26 md.smb.b_max = 4. * (md.materials.rho_freshwater / md.materials.rho_ice) * np.ones((md.mesh.numberofvertices + 1, )) 27 md.smb.b_min = - 27 md.smb.b_min = -4. * (md.materials.rho_freshwater / md.materials.rho_ice) * np.ones((md.mesh.numberofvertices + 1, )) 28 28 29 29 -
issm/trunk-jpl/test/NightlyRun/test350.py
r24256 r24261 30 30 31 31 #Change geometry 32 md.geometry.base = - 32 md.geometry.base = -.02 * md.mesh.x + 20. 33 33 md.geometry.thickness = 300. * np.ones((md.mesh.numberofvertices, )) 34 34 md.geometry.bed = md.geometry.base -
issm/trunk-jpl/test/NightlyRun/test412.py
r24214 r24261 53 53 54 54 #imperative! 55 md.stressbalance.reltol = 10**- 55 md.stressbalance.reltol = 10**-5 #tighten for qmu analyses 56 56 57 57 #solve -
issm/trunk-jpl/test/NightlyRun/test413.py
r24214 r24261 51 51 52 52 #imperative! 53 md.stressbalance.reltol = 10**- 53 md.stressbalance.reltol = 10**-5 #tighten for qmu analyses 54 54 md.qmu.isdakota = 1 55 55 -
issm/trunk-jpl/test/NightlyRun/test414.py
r24214 r24261 60 60 md.qmu.params.interval_type = 'forward' 61 61 md.qmu.isdakota = 1 62 md.stressbalance.reltol = 10**- 62 md.stressbalance.reltol = 10**-5 #tighten for qmu analyses 63 63 64 64 if version >= 6: -
issm/trunk-jpl/test/NightlyRun/test415.py
r24214 r24261 24 24 md.inversion.cost_functions = [103, 501] 25 25 md.inversion.cost_functions_coefficients = np.ones((md.mesh.numberofvertices, 2)) 26 md.inversion.cost_functions_coefficients[:, 1] = 2. * 10**- 26 md.inversion.cost_functions_coefficients[:, 1] = 2. * 10**-7 27 27 md.inversion.gradient_scaling = 3. * np.ones((md.inversion.nsteps, len(md.inversion.control_parameters))) 28 28 md.inversion.maxiter_per_step = 2 * np.ones((md.inversion.nsteps)) -
issm/trunk-jpl/test/NightlyRun/test416.py
r24214 r24261 24 24 md.inversion.cost_functions = [102, 501] 25 25 md.inversion.cost_functions_coefficients = np.ones((md.mesh.numberofvertices, 2)) 26 md.inversion.cost_functions_coefficients[:, 1] = 2. * 10**- 26 md.inversion.cost_functions_coefficients[:, 1] = 2. * 10**-7 27 27 md.inversion.gradient_scaling = 3. * np.ones((md.inversion.nsteps, len(md.inversion.control_parameters))) 28 28 md.inversion.maxiter_per_step = 2 * np.ones((md.inversion.nsteps)) -
issm/trunk-jpl/test/NightlyRun/test417.py
r24214 r24261 76 76 md.qmu.isdakota = 1 77 77 78 md.stressbalance.reltol = 10**- 78 md.stressbalance.reltol = 10**-5 #tighten for qmu analyses 79 79 80 80 #solve -
issm/trunk-jpl/test/NightlyRun/test420.py
r24214 r24261 50 50 51 51 #imperative! 52 md.stressbalance.reltol = 10**- 52 md.stressbalance.reltol = 10**-5 #tighten for qmu analysese 53 53 54 54 #solve -
issm/trunk-jpl/test/NightlyRun/test424.py
r24214 r24261 14 14 md.initialization.vx[:] = 0. 15 15 md.initialization.vy[:] = 0. 16 md.geometry.base = - 17 md.geometry.bed = - 16 md.geometry.base = -700. - abs(md.mesh.y - 500000.) / 1000. 17 md.geometry.bed = -700. - abs(md.mesh.y - 500000.) / 1000. 18 18 md.geometry.thickness[:] = 1000. 19 19 md.geometry.surface = md.geometry.base + md.geometry.thickness -
issm/trunk-jpl/test/NightlyRun/test425.py
r24214 r24261 14 14 md.initialization.vx[:] = 0. 15 15 md.initialization.vy[:] = 0. 16 md.geometry.base = - 17 md.geometry.bed = - 16 md.geometry.base = -700. - abs(md.mesh.y - 500000.) / 1000. 17 md.geometry.bed = -700. - abs(md.mesh.y - 500000.) / 1000. 18 18 md.geometry.thickness[:] = 1300. 19 19 md.geometry.surface = md.geometry.base + md.geometry.thickness 20 md.smb.mass_balance[:] = - 20 md.smb.mass_balance[:] = -150. 21 21 md.transient.isstressbalance = False 22 22 md.transient.isgroundingline = True -
issm/trunk-jpl/test/NightlyRun/test426.py
r24214 r24261 13 13 md.initialization.vx[:] = 0. 14 14 md.initialization.vy[:] = 0. 15 md.geometry.base = - 16 md.geometry.bed = - 15 md.geometry.base = -700. - abs(md.mesh.y - 500000.) / 1000. 16 md.geometry.bed = -700. - abs(md.mesh.y - 500000.) / 1000. 17 17 md.geometry.thickness[:] = 1000. 18 18 md.geometry.surface = md.geometry.base + md.geometry.thickness -
issm/trunk-jpl/test/NightlyRun/test427.py
r24214 r24261 13 13 md.initialization.vx[:] = 0. 14 14 md.initialization.vy[:] = 0. 15 md.geometry.base = - 16 md.geometry.bed = - 15 md.geometry.base = -700. - abs(md.mesh.y - 500000.) / 1000. 16 md.geometry.bed = -700. - abs(md.mesh.y - 500000.) / 1000. 17 17 md.geometry.thickness[:] = 1300 18 18 md.geometry.surface = md.geometry.base + md.geometry.thickness … … 20 20 md.extrude(3, 1.) 21 21 22 md.smb.mass_balance[:] = - 22 md.smb.mass_balance[:] = -150 23 23 md.transient.isstressbalance = False 24 24 md.transient.isgroundingline = True -
issm/trunk-jpl/test/NightlyRun/test430.py
r24256 r24261 15 15 md.initialization.vy[:] = 1. 16 16 md.geometry.thickness[:] = 500. - md.mesh.x / 10000. 17 md.geometry.bed = - 18 md.geometry.base = - 17 md.geometry.bed = -100. - md.mesh.x / 1000. 18 md.geometry.base = -md.geometry.thickness * md.materials.rho_ice / md.materials.rho_water 19 19 md.mask.groundedice_levelset = md.geometry.thickness + md.materials.rho_water / md.materials.rho_ice * md.geometry.bed 20 20 pos = np.where(md.mask.groundedice_levelset >= 0.) … … 24 24 25 25 #Boundary conditions: 26 md.mask.ice_levelset = - 26 md.mask.ice_levelset = -np.ones((md.mesh.numberofvertices, )) 27 27 md.mask.ice_levelset[np.where(md.mesh.x == max(md.mesh.x))] = 0. 28 28 md.stressbalance.spcvx[:] = float('NaN') … … 37 37 md.stressbalance.spcvy[pos2] = 0. 38 38 39 md.materials.rheology_B = 1. / ((10**- 39 md.materials.rheology_B = 1. / ((10**-25)**(1. / 3.)) * np.ones((md.mesh.numberofvertices, )) 40 40 md.materials.rheology_law = 'None' 41 41 md.friction.coefficient[:] = np.sqrt(10**7) * np.ones((md.mesh.numberofvertices, )) -
issm/trunk-jpl/test/NightlyRun/test435.py
r24256 r24261 15 15 md.initialization.vy[:] = 1. 16 16 md.geometry.thickness[:] = 500. - md.mesh.x / 10000. 17 md.geometry.bed = - 18 md.geometry.base = - 17 md.geometry.bed = -100. - md.mesh.x / 1000. 18 md.geometry.base = -md.geometry.thickness * md.materials.rho_ice / md.materials.rho_water 19 19 md.mask.groundedice_levelset = md.geometry.thickness + md.materials.rho_water / md.materials.rho_ice * md.geometry.bed 20 20 pos = np.where(md.mask.groundedice_levelset >= 0) … … 25 25 26 26 #Boundary conditions: 27 md.mask.ice_levelset = - 27 md.mask.ice_levelset = -np.ones((md.mesh.numberofvertices, )) 28 28 md.mask.ice_levelset[np.where(md.mesh.x == max(md.mesh.x))] = 0. 29 29 md.stressbalance.spcvx[:] = float('Nan') … … 38 38 md.stressbalance.spcvy[pos2] = 0. 39 39 40 md.materials.rheology_B = 1. / ((10**- 40 md.materials.rheology_B = 1. / ((10**-25)**(1. / 3.)) * np.ones((md.mesh.numberofvertices, )) 41 41 md.materials.rheology_law = 'None' 42 42 md.friction.coefficient[:] = np.sqrt(1e7) * np.ones((md.mesh.numberofvertices, )) -
issm/trunk-jpl/test/NightlyRun/test437.py
r24214 r24261 15 15 h = 100. 16 16 md.geometry.thickness = h * np.ones((md.mesh.numberofvertices, )) 17 md.geometry.base = - 17 md.geometry.base = -h * np.ones((md.mesh.numberofvertices, )) 18 18 md.geometry.surface = md.geometry.base + md.geometry.thickness 19 19 -
issm/trunk-jpl/test/NightlyRun/test440.py
r24214 r24261 51 51 52 52 #imperative! 53 md.stressbalance.reltol = 10**- 53 md.stressbalance.reltol = 10**-5 #tighten for qmu analysese 54 54 55 55 #solve -
issm/trunk-jpl/test/NightlyRun/test441.py
r24256 r24261 15 15 md.initialization.vy[:] = 1. 16 16 md.geometry.thickness[:] = 500. - md.mesh.x / 10000. 17 md.geometry.bed = - 18 md.geometry.base = - 17 md.geometry.bed = -100. - md.mesh.x / 1000. 18 md.geometry.base = -md.geometry.thickness * md.materials.rho_ice / md.materials.rho_water 19 19 md.mask.groundedice_levelset = md.geometry.thickness + md.materials.rho_water / md.materials.rho_ice * md.geometry.bed 20 20 pos = np.array(np.where(md.mask.groundedice_levelset >= 0.)) … … 24 24 25 25 #Boundary conditions: 26 md.mask.ice_levelset = - 26 md.mask.ice_levelset = -np.ones((md.mesh.numberofvertices, )) 27 27 md.mask.ice_levelset[np.where(md.mesh.x == max(md.mesh.x))] = 0. 28 28 md.stressbalance.spcvx[:] = float('Nan') … … 37 37 md.stressbalance.spcvy[pos2] = 0. 38 38 39 md.materials.rheology_B = 1. / ((10**- 39 md.materials.rheology_B = 1. / ((10**-25)**(1. / 3.)) * np.ones((md.mesh.numberofvertices, )) 40 40 md.materials.rheology_law = 'None' 41 41 md.friction.coefficient[:] = np.sqrt(1e7) * np.ones((md.mesh.numberofvertices, )) -
issm/trunk-jpl/test/NightlyRun/test442.py
r24256 r24261 15 15 md.initialization.vy[:] = 1. 16 16 md.geometry.thickness[:] = 500. - md.mesh.x / 10000. 17 md.geometry.bed = - 18 md.geometry.base = - 17 md.geometry.bed = -100. - md.mesh.x / 1000. 18 md.geometry.base = -md.geometry.thickness * md.materials.rho_ice / md.materials.rho_water 19 19 md.mask.groundedice_levelset = md.geometry.thickness + md.materials.rho_water / md.materials.rho_ice * md.geometry.bed 20 20 pos = np.where(md.mask.groundedice_levelset >= 0.) … … 25 25 26 26 #Boundary conditions: 27 md.mask.ice_levelset = - 27 md.mask.ice_levelset = -np.ones((md.mesh.numberofvertices, )) 28 28 md.mask.ice_levelset[np.where(md.mesh.x == max(md.mesh.x))] = 0. 29 29 md.stressbalance.spcvx[:] = float('Nan') … … 38 38 md.stressbalance.spcvy[pos2] = 0. 39 39 40 md.materials.rheology_B = 1. / ((10**- 40 md.materials.rheology_B = 1. / ((10**-25)**(1. / 3.)) * np.ones((md.mesh.numberofvertices, )) 41 41 md.materials.rheology_law = 'None' 42 42 md.friction.coefficient[:] = np.sqrt(1e7) * np.ones((md.mesh.numberofvertices, )) -
issm/trunk-jpl/test/NightlyRun/test444.py
r24214 r24261 104 104 md.qmu.isdakota = 1 105 105 106 md.stressbalance.reltol = 10**- 106 md.stressbalance.reltol = 10**-5 #tighten for qmu analyses 107 107 108 108 #solve -
issm/trunk-jpl/test/NightlyRun/test445.py
r24214 r24261 75 75 md.qmu.isdakota = 1 76 76 77 md.stressbalance.reltol = 10**- 77 md.stressbalance.reltol = 10**-5 #tighten for qmu analyses 78 78 79 79 -
issm/trunk-jpl/test/NightlyRun/test511.py
r24214 r24261 14 14 15 15 #impose hydrostatic equilibrium (required by Stokes) 16 md.geometry.base = - 16 md.geometry.base = -md.materials.rho_ice / md.materials.rho_water * md.geometry.thickness 17 17 md.geometry.surface = md.geometry.base + md.geometry.thickness 18 18 md.extrude(3, 1.) -
issm/trunk-jpl/test/NightlyRun/test512.py
r24214 r24261 25 25 md.inversion.cost_functions = [103, 501] 26 26 md.inversion.cost_functions_coefficients = np.ones((md.mesh.numberofvertices, 2)) 27 md.inversion.cost_functions_coefficients[:, 1] = 2. * 10**- 27 md.inversion.cost_functions_coefficients[:, 1] = 2. * 10**-7 28 28 md.inversion.gradient_scaling = 3. * np.ones((md.inversion.nsteps, len(md.inversion.control_parameters))) 29 29 md.inversion.maxiter_per_step = 2. * np.ones((md.inversion.nsteps)) -
issm/trunk-jpl/test/NightlyRun/test513.py
r24214 r24261 23 23 md.inversion.cost_functions = [103, 501] 24 24 md.inversion.cost_functions_coefficients = np.ones((md.mesh.numberofvertices, 2)) 25 md.inversion.cost_functions_coefficients[:, 1] = 2. * 10**- 25 md.inversion.cost_functions_coefficients[:, 1] = 2. * 10**-7 26 26 md.inversion.gradient_scaling = 3. * np.ones((md.inversion.nsteps, len(md.inversion.control_parameters))) 27 27 md.inversion.maxiter_per_step = 2. * np.ones((md.inversion.nsteps)) -
issm/trunk-jpl/test/NightlyRun/test611.py
r24214 r24261 20 20 md.inversion.control_parameters = ['BalancethicknessThickeningRate'] 21 21 md.inversion.thickness_obs = md.geometry.thickness 22 md.inversion.min_parameters = - 22 md.inversion.min_parameters = -50. * np.ones((md.mesh.numberofvertices, len(md.inversion.control_parameters))) 23 23 md.inversion.max_parameters = 50. * np.ones((md.mesh.numberofvertices, len(md.inversion.control_parameters))) 24 24 md.inversion.cost_functions = [201] -
issm/trunk-jpl/test/NightlyRun/test701.py
r24214 r24261 9 9 x = np.arange(1, 3001, 100).T 10 10 h = np.linspace(1000, 300, np.size(x)).T 11 b = - 11 b = -917. / 1023. * h 12 12 13 13 md = bamgflowband(model(), x, b + h, b, 'hmax', 80.) … … 21 21 22 22 #mask 23 md.mask.ice_levelset = - 23 md.mask.ice_levelset = -np.ones((md.mesh.numberofvertices, )) 24 24 md.mask.ice_levelset[np.where(md.mesh.vertexflags(2))] = 0. 25 25 md.mask.groundedice_levelset = np.zeros((md.mesh.numberofvertices, )) - 0.5 … … 51 51 md = setflowequation(md, 'FS', 'all') 52 52 md.stressbalance.abstol = np.nan 53 #md.stressbalance.reltol = 10**- 53 #md.stressbalance.reltol = 10**-16 54 54 md.stressbalance.FSreconditioning = 1. 55 55 md.stressbalance.maxiter = 20 -
issm/trunk-jpl/test/NightlyRun/test702.py
r24256 r24261 25 25 26 26 #mask 27 md.mask.ice_levelset = - 27 md.mask.ice_levelset = -np.ones((md.mesh.numberofvertices, )) 28 28 md.mask.ice_levelset[np.where(md.mesh.vertexflags(2))] = 0 29 md.mask.groundedice_levelset = - 29 md.mask.groundedice_levelset = -0.5 * np.ones((md.mesh.numberofvertices)) 30 30 md.mask.groundedice_levelset[np.where(md.mesh.x < 0)] = 0.5 31 31 -
issm/trunk-jpl/test/NightlyRun/test703.py
r24256 r24261 38 38 39 39 #mask 40 md.mask.ice_levelset = - 40 md.mask.ice_levelset = -np.ones((md.mesh.numberofvertices)) 41 41 md.mask.ice_levelset[np.where(md.mesh.vertexflags(2))] = 0 42 md.mask.groundedice_levelset = - 42 md.mask.groundedice_levelset = -0.5 * np.ones((md.mesh.numberofvertices)) 43 43 md.mask.groundedice_levelset[np.where(md.mesh.x < 0)] = 0.5 44 44 -
issm/trunk-jpl/test/NightlyRun/test808.py
r24214 r24261 24 24 Lx = (xmax - xmin) 25 25 alpha = 2. / 3. 26 md.mask.ice_levelset = - 26 md.mask.ice_levelset = -1 + 2 * (md.mesh.y > 9e5) 27 27 28 28 md.timestepping.time_step = 1 -
issm/trunk-jpl/test/Par/ISMIPF.py
r24256 r24261 12 12 13 13 print(" creating drag") 14 md.friction.coefficient = np.sqrt(md.constants.yts / (2.140373 * 10**- 14 md.friction.coefficient = np.sqrt(md.constants.yts / (2.140373 * 10**-7 * 1000.)) * np.ones((md.mesh.numberofvertices)) 15 15 md.friction.p = np.ones((md.mesh.numberofelements)) 16 16 md.friction.q = np.zeros((md.mesh.numberofelements)) -
issm/trunk-jpl/test/Par/RoundSheetEISMINT.py
r24214 r24261 15 15 print(" creating temperatures") 16 16 tmin = 238.15 #K 17 st = 1.67 * 10**- 17 st = 1.67 * 10**-2 / 1000. #k / m 18 18 radius = numpy.sqrt((md.mesh.x)**2 + (md.mesh.y)**2) 19 19 md.initialization.temperature = tmin + st * radius 20 md.basalforcings.geothermalflux = 4.2 * 10**- 20 md.basalforcings.geothermalflux = 4.2 * 10**-2 * numpy.ones((md.mesh.numberofvertices)) 21 21 22 22 print(" creating flow law parameter") … … 26 26 print(" creating surface mass balance") 27 27 smb_max = 0.5 #m / yr 28 sb = 10**- 28 sb = 10**-2 / 1000. #m / yr / m 29 29 rel = 450. * 1000. #m 30 30 md.smb.mass_balance = numpy.minimum(smb_max * numpy.ones_like(radius), sb * (rel - radius)) … … 60 60 md.materials.thermalconductivity = 2.1 61 61 md.materials.latentheat = 3.35 * 10**5 62 md.materials.beta = 8.66 * 10**- 62 md.materials.beta = 8.66 * 10**-4 / (md.materials.rho_ice * md.constants.g) #conversion from K / m to K / Pa 63 63 md.constants.yts = 31556926. -
issm/trunk-jpl/test/Par/RoundSheetStaticEISMINT.par
r19527 r24261 22 22 23 23 disp(' creating flow law parameter'); 24 md.materials.rheology_B=6.81*10^7*ones(md.mesh.numberofvertices,1); %to have the same B as the analytical solution 24 md.materials.rheology_B=6.81*10^7*ones(md.mesh.numberofvertices,1); %to have the same B as the analytical solution 25 25 md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1); 26 26 -
issm/trunk-jpl/test/Par/RoundSheetStaticEISMINT.py
r24214 r24261 7 7 radius = numpy.sqrt((md.mesh.x)**2 + (md.mesh.y)**2) 8 8 radiusmax = numpy.max(radius) 9 radius[numpy.nonzero(radius > (1. - 10**- 9 radius[numpy.nonzero(radius > (1. - 10**-9) * radiusmax)] = radiusmax #eliminate roundoff issues in next statement 10 10 md.geometry.thickness = hmin * numpy.ones((numpy.size(md.mesh.x))) + hmax * (4. * ((1. / 2.)**(4. / 3.) * numpy.ones((numpy.size(md.mesh.x))) - ((radius) / (2. * radiusmax))**(4. / 3.)))**(3. / 8.) 11 11 md.geometry.base = 0. * md.geometry.thickness … … 20 20 print(" creating temperatures") 21 21 tmin = 238.15 #K 22 st = 1.67 * 10**- 22 st = 1.67 * 10**-2 / 1000. #k / m 23 23 md.initialization.temperature = tmin + st * radius 24 md.basalforcings.geothermalflux = 4.2 * 10**- 24 md.basalforcings.geothermalflux = 4.2 * 10**-2 * numpy.ones((md.mesh.numberofvertices)) 25 25 26 26 print(" creating flow law parameter") … … 30 30 print(" creating surface mass balance") 31 31 smb_max = 0.5 #m / yr 32 sb = 10**- 32 sb = 10**-2 / 1000. #m / yr / m 33 33 rel = 450. * 1000. #m 34 34 md.smb.mass_balance = numpy.minimum(smb_max * numpy.ones_like(radius), sb * (rel - radius)) -
issm/trunk-jpl/test/Par/SquareSheetConstrainedCO2.py
r24214 r24261 16 16 CO2_heatCapacity = 700. 17 17 CO2_thermalCond = 0.5 18 CO2_dynViscosity = 13.72 * 10**- 18 CO2_dynViscosity = 13.72 * 10**-6 19 19 CO2_rhoLiquidZeroDeg = 929. 20 20 md.materials.rho_ice = CO2_rhoIce … … 34 34 xmax = max(md.mesh.x) 35 35 md.geometry.thickness = hmax + (hmin - hmax) * (md.mesh.y - ymin) / (ymax - ymin) + 0.1 * (hmin - hmax) * (md.mesh.x - xmin) / (xmax - xmin) 36 md.geometry.base = - 36 md.geometry.base = -md.materials.rho_ice / md.materials.rho_water * md.geometry.thickness + 20. 37 37 md.geometry.surface = md.geometry.base + md.geometry.thickness 38 38 -
issm/trunk-jpl/test/Par/SquareSheetShelf.py
r24214 r24261 18 18 xmax = max(md.mesh.x) 19 19 md.geometry.thickness = hmax + (hmin - hmax) * (md.mesh.y - ymin) / (ymax - ymin) + 0.1 * (hmin - hmax) * (md.mesh.x - xmin) / (xmax - xmin) 20 md.geometry.base = - 21 bed_sheet = - 20 md.geometry.base = -md.materials.rho_ice / md.materials.rho_water * md.geometry.thickness 21 bed_sheet = -md.materials.rho_ice / md.materials.rho_water * (hmax + (hmin - hmax) * (ymax / 2 - ymin) / (ymax - ymin)) 22 22 pos = np.nonzero(md.mesh.y <= ymax / 2.) 23 23 md.geometry.base[pos] = bed_sheet -
issm/trunk-jpl/test/Par/SquareShelfConstrained.py
r24214 r24261 17 17 xmax = max(md.mesh.x) 18 18 md.geometry.thickness = hmax + (hmin - hmax) * (md.mesh.y - ymin) / (ymax - ymin) + 0.1 * (hmin - hmax) * (md.mesh.x - xmin) / (xmax - xmin) 19 md.geometry.base = - 19 md.geometry.base = -md.materials.rho_ice / md.materials.rho_water * md.geometry.thickness 20 20 md.geometry.surface = md.geometry.base + md.geometry.thickness 21 21 md.geometry.bed = md.geometry.base - 10 -
issm/trunk-jpl/test/Par/SquareThermal.py
r24214 r24261 11 11 h = 1000. 12 12 md.geometry.thickness = h * np.ones((md.mesh.numberofvertices)) 13 md.geometry.base = - 13 md.geometry.base = -1000. * np.ones((md.mesh.numberofvertices)) 14 14 md.geometry.surface = md.geometry.base + md.geometry.thickness 15 15 … … 49 49 md.thermal.spctemperature[:] = md.initialization.temperature 50 50 md.basalforcings.geothermalflux = np.zeros((md.mesh.numberofvertices)) 51 md.basalforcings.geothermalflux[np.nonzero(md.mask.groundedice_levelset > 0.)[0]] = 1. * 10**- 51 md.basalforcings.geothermalflux[np.nonzero(md.mask.groundedice_levelset > 0.)[0]] = 1. * 10**-3 #1 mW / m^2
Note:
See TracChangeset
for help on using the changeset viewer.