Changeset 24214 for issm/trunk-jpl/test/Par/RoundSheetEISMINT.py
- Timestamp:
- 10/11/19 00:27:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/test/Par/RoundSheetEISMINT.py
r23707 r24214 4 4 #Ok, start defining model parameters here 5 5 print(" creating thickness") 6 md.geometry.thickness =10.*numpy.ones((md.mesh.numberofvertices))7 md.geometry.base =numpy.zeros((md.mesh.numberofvertices))8 md.geometry.surface =md.geometry.base+md.geometry.thickness6 md.geometry.thickness = 10. * numpy.ones((md.mesh.numberofvertices)) 7 md.geometry.base = numpy.zeros((md.mesh.numberofvertices)) 8 md.geometry.surface = md.geometry.base + md.geometry.thickness 9 9 10 10 print(" creating drag") 11 md.friction.coefficient =20.*numpy.ones((md.mesh.numberofvertices))12 md.friction.p =numpy.ones((md.mesh.numberofelements))13 md.friction.q =numpy.ones((md.mesh.numberofelements))11 md.friction.coefficient = 20. * numpy.ones((md.mesh.numberofvertices)) 12 md.friction.p = numpy.ones((md.mesh.numberofelements)) 13 md.friction.q = numpy.ones((md.mesh.numberofelements)) 14 14 15 15 print(" creating temperatures") 16 tmin =238.15#K17 st =1.67*10**-2/1000. #k/m18 radius =numpy.sqrt((md.mesh.x)**2+(md.mesh.y)**2)19 md.initialization.temperature =tmin+st*radius20 md.basalforcings.geothermalflux =4.2*10**-2*numpy.ones((md.mesh.numberofvertices))16 tmin = 238.15 #K 17 st = 1.67 * 10**- 2 / 1000. #k / m 18 radius = numpy.sqrt((md.mesh.x)**2 + (md.mesh.y)**2) 19 md.initialization.temperature = tmin + st * radius 20 md.basalforcings.geothermalflux = 4.2 * 10**- 2 * numpy.ones((md.mesh.numberofvertices)) 21 21 22 22 print(" creating flow law parameter") 23 md.materials.rheology_B =6.81*10**7*numpy.ones((md.mesh.numberofvertices)) #to have the same B as the analytical solution24 md.materials.rheology_n =3.*numpy.ones((md.mesh.numberofelements))23 md.materials.rheology_B = 6.81 * 10**7 * numpy.ones((md.mesh.numberofvertices)) #to have the same B as the analytical solution 24 md.materials.rheology_n = 3. * numpy.ones((md.mesh.numberofelements)) 25 25 26 26 print(" creating surface mass balance") 27 smb_max =0.5 #m/yr28 sb =10**-2/1000. #m/yr/m29 rel =450.*1000.#m30 md.smb.mass_balance =numpy.minimum(smb_max*numpy.ones_like(radius),sb*(rel-radius))27 smb_max = 0.5 #m / yr 28 sb = 10**- 2 / 1000. #m / yr / m 29 rel = 450. * 1000. #m 30 md.smb.mass_balance = numpy.minimum(smb_max * numpy.ones_like(radius), sb * (rel - radius)) 31 31 32 32 print(" creating velocities") 33 constant =0.334 md.inversion.vx_obs =constant/2.*md.mesh.x*(md.geometry.thickness)**-135 md.inversion.vy_obs =constant/2.*md.mesh.y*(md.geometry.thickness)**-136 md.inversion.vel_obs =numpy.sqrt((md.inversion.vx_obs)**2+(md.inversion.vy_obs)**2)37 md.initialization.vx =numpy.zeros((md.mesh.numberofvertices))38 md.initialization.vy =numpy.zeros((md.mesh.numberofvertices))39 md.initialization.vz =numpy.zeros((md.mesh.numberofvertices))40 md.initialization.pressure =numpy.zeros((md.mesh.numberofvertices))33 constant = 0.3 34 md.inversion.vx_obs = constant / 2. * md.mesh.x * (md.geometry.thickness)**- 1 35 md.inversion.vy_obs = constant / 2. * md.mesh.y * (md.geometry.thickness)**- 1 36 md.inversion.vel_obs = numpy.sqrt((md.inversion.vx_obs)**2 + (md.inversion.vy_obs)**2) 37 md.initialization.vx = numpy.zeros((md.mesh.numberofvertices)) 38 md.initialization.vy = numpy.zeros((md.mesh.numberofvertices)) 39 md.initialization.vz = numpy.zeros((md.mesh.numberofvertices)) 40 md.initialization.pressure = numpy.zeros((md.mesh.numberofvertices)) 41 41 42 42 #Deal with boundary conditions: 43 43 print(" boundary conditions for stressbalance model:") 44 md =SetMarineIceSheetBC(md,'../Exp/RoundFrontEISMINT.exp')44 md = SetMarineIceSheetBC(md, '../Exp/RoundFrontEISMINT.exp') 45 45 46 radius =numpy.sqrt((md.mesh.x)**2+(md.mesh.y)**2)47 pos =numpy.nonzero(radius==numpy.min(radius))[0]48 md.mesh.x[pos] =0.49 md.mesh.y[pos] =0.#the closest node to the center is changed to be exactly at the center46 radius = numpy.sqrt((md.mesh.x)**2 + (md.mesh.y)**2) 47 pos = numpy.nonzero(radius == numpy.min(radius))[0] 48 md.mesh.x[pos] = 0. 49 md.mesh.y[pos] = 0. #the closest node to the center is changed to be exactly at the center 50 50 51 md.stressbalance.spcvx[pos] =0.52 md.stressbalance.spcvy[pos] =0.53 md.stressbalance.spcvz[pos] =0.51 md.stressbalance.spcvx[pos] = 0. 52 md.stressbalance.spcvy[pos] = 0. 53 md.stressbalance.spcvz[pos] = 0. 54 54 55 55 #parallel options 56 md.timestepping.final_time =50000.56 md.timestepping.final_time = 50000. 57 57 58 58 #Constants 59 md.materials.rho_ice =910.60 md.materials.thermalconductivity =2.161 md.materials.latentheat =3.35*10**562 md.materials.beta =8.66*10**-4/(md.materials.rho_ice*md.constants.g) #conversion from K/m to K/Pa63 md.constants.yts =31556926.59 md.materials.rho_ice = 910. 60 md.materials.thermalconductivity = 2.1 61 md.materials.latentheat = 3.35 * 10**5 62 md.materials.beta = 8.66 * 10**- 4 / (md.materials.rho_ice * md.constants.g) #conversion from K / m to K / Pa 63 md.constants.yts = 31556926.
Note:
See TracChangeset
for help on using the changeset viewer.