source:
issm/oecreview/Archive/24684-25833/ISSM-25171-25172.diff
Last change on this file was 25834, checked in by , 4 years ago | |
---|---|
File size: 11.8 KB |
-
../trunk-jpl/test/Par/GiaIvinsBenchmarksAB.py
14 14 rad = 600000. 15 15 nv = md.mesh.numberofvertices 16 16 if (np.isnan(md.geometry.thickness)): 17 md.geometry.thickness = np.zeros((md.mesh.numberofvertices, ))17 md.geometry.thickness = np.zeros((md.mesh.numberofvertices, 1)) 18 18 for i in range(nv): 19 19 dist = np.sqrt(md.mesh.x[i]**2 + md.mesh.y[i]**2) 20 20 if (dist <= rad): 21 21 md.geometry.thickness[i] = 2000.0 22 22 else: 23 md.geometry.thickness[i] = 1.0 # non -zero thickness23 md.geometry.thickness[i] = 1.0 # non-zero thickness 24 24 25 25 md.geometry.thickness = md.geometry.thickness.reshape(-1, 1) 26 md.geometry.base = np.zeros((md.mesh.numberofvertices, ))26 md.geometry.base = np.zeros((md.mesh.numberofvertices, 1)) 27 27 md.geometry.surface = md.geometry.thickness + md.geometry.base.reshape(-1, 1) #would otherwise create a 91x91 matrix 28 28 29 #Ice density used for benchmarking, not 917 kg /m^330 md.materials.rho_ice = 1000 #kg 29 #Ice density used for benchmarking, not 917 kg/m^3 30 md.materials.rho_ice = 1000 #kg/m^3 31 31 32 #GIA parameters specific to Experiments A 32 #GIA parameters specific to Experiments A and B 33 33 md.gia=giaivins(); 34 md.gia.mantle_viscosity = 1e21 * np.ones((md.mesh.numberofvertices, )) #in Pa.s35 md.gia.lithosphere_thickness = 100 * np.ones((md.mesh.numberofvertices, )) #in km34 md.gia.mantle_viscosity = 1e21 * np.ones((md.mesh.numberofvertices, 1)) #in Pa.s 35 md.gia.lithosphere_thickness = 100 * np.ones((md.mesh.numberofvertices, 1)) #in km 36 36 md.materials.lithosphere_shear_modulus = 6.7 * 1e10 #in Pa 37 md.materials.lithosphere_density = 3.36 #in g /cm^337 md.materials.lithosphere_density = 3.36 #in g/cm^3 38 38 md.materials.mantle_shear_modulus = 1.45 * 1e11 #in Pa 39 md.materials.mantle_density = 3.38 #in g /cm^339 md.materials.mantle_density = 3.38 #in g/cm^3 40 40 41 41 #Initial velocity 42 42 x = archread('../Data/SquareSheetConstrained.arch', 'x') … … 52 52 x = None 53 53 y = None 54 54 index = None 55 md.initialization.vz = np.zeros((md.mesh.numberofvertices, ))56 md.initialization.pressure = np.zeros((md.mesh.numberofvertices, ))55 md.initialization.vz = np.zeros((md.mesh.numberofvertices, 1)) 56 md.initialization.pressure = np.zeros((md.mesh.numberofvertices, 1)) 57 57 58 58 #Materials 59 md.initialization.temperature = (273. - 20.) * np.ones((md.mesh.numberofvertices, ))59 md.initialization.temperature = (273. - 20.) * np.ones((md.mesh.numberofvertices, 1)) 60 60 md.materials.rheology_B = paterson(md.initialization.temperature) 61 md.materials.rheology_n = 3. * np.ones((md.mesh.numberofelements, ))61 md.materials.rheology_n = 3. * np.ones((md.mesh.numberofelements, 1)) 62 62 63 63 #Friction 64 md.friction.coefficient = 20. * np.ones((md.mesh.numberofvertices, ))64 md.friction.coefficient = 20. * np.ones((md.mesh.numberofvertices, 1)) 65 65 md.friction.coefficient[np.where(md.mask.ocean_levelset < 0.)] = 0. 66 md.friction.p = np.ones((md.mesh.numberofelements, ))67 md.friction.q = np.ones((md.mesh.numberofelements, ))66 md.friction.p = np.ones((md.mesh.numberofelements, 1)) 67 md.friction.q = np.ones((md.mesh.numberofelements, 1)) 68 68 69 69 #Numerical parameters 70 70 md.groundingline.migration = 'None' … … 75 75 md.stressbalance.restol = 0.05 76 76 md.steadystate.reltol = 0.05 77 77 md.stressbalance.reltol = 0.05 78 md.stressbalance.abstol = float('NaN')78 md.stressbalance.abstol = np.nan 79 79 md.timestepping.time_step = 1. 80 80 md.timestepping.final_time = 3. 81 81 -
../trunk-jpl/test/Par/GiaIvinsBenchmarksCD.py
1 1 #Geometry specific to Experiments C and D 2 2 3 import inspect 3 4 import os.path 4 import inspect 5 5 6 import numpy as np 7 6 8 from arch import * 9 from giaivins import giaivins 7 10 from InterpFromMeshToMesh2d import * 8 11 from paterson import * 9 12 from verbose import * 10 13 from SetIceSheetBC import * 11 14 15 12 16 rad = 800000 13 17 nv = md.mesh.numberofvertices 14 18 if (np.isnan(md.geometry.thickness)): 15 md.geometry.thickness = np.zeros((md.mesh.numberofvertices, ))19 md.geometry.thickness = np.zeros((md.mesh.numberofvertices, 1)) 16 20 for i in range(nv): 17 21 dist = np.sqrt(md.mesh.x[i]**2 + md.mesh.y[i]**2) 18 22 if (dist <= rad): … … 21 25 md.geometry.thickness[i] = 1.0 # non - zero thickness 22 26 23 27 md.geometry.thickness = md.geometry.thickness.reshape(-1, 1) 24 md.geometry.base = np.zeros((md.mesh.numberofvertices, ))28 md.geometry.base = np.zeros((md.mesh.numberofvertices, 1)) 25 29 md.geometry.surface = md.geometry.thickness + md.geometry.base.reshape(-1, 1) #would otherwise create a 91x91 matrix 26 30 27 31 #Ice density used for benchmarking, not 917 kg / m^3 28 md.materials.rho_ice = 1000 32 md.materials.rho_ice = 1000 #kg m^3 29 33 30 #GIA parameters specific to Experiments A and B 31 md.gia.mantle_viscosity = 1e21 * np.ones((md.mesh.numberofvertices, )) #in Pa.s 32 md.gia.lithosphere_thickness = 100 * np.ones((md.mesh.numberofvertices, )) #in km 34 #GIA parameters specific to Experiments A and B 35 md.gia=giaivins(); 36 md.gia.mantle_viscosity = 1e21 * np.ones((md.mesh.numberofvertices, 1)) #in Pa.s 37 md.gia.lithosphere_thickness = 100 * np.ones((md.mesh.numberofvertices, 1)) #in km 33 38 md.materials.lithosphere_shear_modulus = 6.7e10 #in Pa 34 39 md.materials.lithosphere_density = 3.32 #in g / cm^3 35 40 md.materials.mantle_shear_modulus = 1.45e11 #in Pa … … 49 54 x = None 50 55 y = None 51 56 index = None 52 md.initialization.vz = np.zeros((md.mesh.numberofvertices, ))53 md.initialization.pressure = np.zeros((md.mesh.numberofvertices, ))57 md.initialization.vz = np.zeros((md.mesh.numberofvertices, 1)) 58 md.initialization.pressure = np.zeros((md.mesh.numberofvertices, 1)) 54 59 55 60 #Materials 56 md.initialization.temperature = (273. - 20.) * np.ones((md.mesh.numberofvertices, ))61 md.initialization.temperature = (273. - 20.) * np.ones((md.mesh.numberofvertices, 1)) 57 62 md.materials.rheology_B = paterson(md.initialization.temperature) 58 md.materials.rheology_n = 3. * np.ones((md.mesh.numberofelements, ))63 md.materials.rheology_n = 3. * np.ones((md.mesh.numberofelements, 1)) 59 64 60 65 #Friction 61 md.friction.coefficient = 20. * np.ones((md.mesh.numberofvertices, ))66 md.friction.coefficient = 20. * np.ones((md.mesh.numberofvertices, 1)) 62 67 md.friction.coefficient[np.where(md.mask.ocean_levelset < 0.)] = 0. 63 md.friction.p = np.ones((md.mesh.numberofelements, ))64 md.friction.q = np.ones((md.mesh.numberofelements, ))68 md.friction.p = np.ones((md.mesh.numberofelements, 1)) 69 md.friction.q = np.ones((md.mesh.numberofelements, 1)) 65 70 66 71 #Numerical parameters 67 72 md.groundingline.migration = 'None' … … 72 77 md.stressbalance.restol = 0.05 73 78 md.steadystate.reltol = 0.05 74 79 md.stressbalance.reltol = 0.05 75 md.stressbalance.abstol = float('NaN')80 md.stressbalance.abstol = np.nan 76 81 md.timestepping.time_step = 1. 77 82 md.timestepping.final_time = 3. 78 83 -
../trunk-jpl/test/NightlyRun/test2071.py
16 16 md = parameterize(md, '../Par/GiaIvinsBenchmarksCD.py') 17 17 18 18 #indicate what you want to compute 19 md.gia.cross_section_shape = 1 # for square-edged x -section19 md.gia.cross_section_shape = 1 # for square-edged x-section 20 20 21 21 #define loading history 22 22 md.timestepping.start_time = 0.3 # for t \approx 0 kyr : to get eleastic response! 23 md.timestepping.final_time = 2500000 # 2, 23 md.timestepping.final_time = 2500000 # 2,500 kyr 24 24 md.geometry.thickness = np.array([np.append(md.geometry.thickness * 0.0, 0.0), 25 25 np.append(md.geometry.thickness / 2.0, 0.1), 26 26 np.append(md.geometry.thickness, 0.2), -
../trunk-jpl/src/m/classes/model.m
1263 1263 md.calving = calving(); 1264 1264 md.frontalforcings = frontalforcings(); 1265 1265 md.gia = giamme(); 1266 md.esa = esa();1267 1266 md.love = fourierlove(); 1268 1267 md.esa = esa(); 1269 1268 md.autodiff = autodiff(); -
../trunk-jpl/src/m/classes/model.py
86 86 ''' 87 87 self.mesh = mesh2d() 88 88 self.mask = mask() 89 self.constants = constants() 89 90 self.geometry = geometry() 90 self. constants = constants()91 self.initialization = initialization() 91 92 self.smb = SMBforcing() 92 93 self.basalforcings = basalforcings() 94 self.friction = friction() 95 self.rifts = rifts() 96 self.solidearth = solidearth() 97 self.dsl = dsl() 98 self.timestepping = timestepping() 99 self.groundingline = groundingline() 93 100 self.materials = matice() 94 101 self.damage = damage() 95 self.friction = friction()96 102 self.flowequation = flowequation() 97 self.timestepping = timestepping()98 self.initialization = initialization()99 self.rifts = rifts()100 self.dsl = dsl()101 self.solidearth = solidearth()102 103 103 self.debug = debug() 104 104 self.verbose = verbose() 105 105 self.settings = issmsettings() 106 106 self.toolkits = toolkits() 107 107 self.cluster = generic() 108 109 108 self.balancethickness = balancethickness() 110 109 self.stressbalance = stressbalance() 111 self.groundingline = groundingline()112 110 self.hydrology = hydrologyshreve() 113 111 self.masstransport = masstransport() 114 112 self.thermal = thermal() … … 124 122 self.inversion = inversion() 125 123 self.qmu = qmu() 126 124 self.amr = amr() 127 125 self.radaroverlay = radaroverlay() 128 126 self.results = results() 129 127 self.outputdefinition = outputdefinition() 130 self.radaroverlay = radaroverlay()131 128 self.miscellaneous = miscellaneous() 132 129 self.private = private() 133 130 #}}} … … 136 133 # ordered list of properties since vars(self) is random 137 134 return ['mesh', 138 135 'mask', 136 'constants', 139 137 'geometry', 140 ' constants',138 'initialization', 141 139 'smb', 142 140 'basalforcings', 141 'friction', 142 'rifts', 143 'solidearth', 144 'dsl', 145 'timestepping', 146 'groundingline', 143 147 'materials', 144 148 'damage', 145 'friction',146 149 'flowequation', 147 'timestepping',148 'initialization',149 'rifts',150 'dsl',151 'solidearth',152 150 'debug', 153 151 'verbose', 154 152 'settings', … … 156 154 'cluster', 157 155 'balancethickness', 158 156 'stressbalance', 159 'groundingline',160 157 'hydrology', 161 158 'masstransport', 162 159 'thermal', … … 165 162 'levelset', 166 163 'calving', 167 164 'frontalforcings', 165 'gia', 168 166 'love', 169 'gia',170 167 'esa', 171 168 'autodiff', 172 169 'inversion', 173 170 'qmu', 174 171 'amr', 172 'radaroverlay', 173 'results', 175 174 'outputdefinition', 176 'results',177 'radaroverlay',178 175 'miscellaneous', 179 176 'private'] 180 177 # }}}
Note:
See TracBrowser
for help on using the repository browser.