توسعه شرایط مرزی مدل MODFLOW با کد برنامه نویسی پایتون
تعریف دوره های تنش
برای ایجاد مدل با دوره های تنش های مختلف، ما نیاز به تعریف nper، perlen، nstp و steady داریم. این کار در بلوک زیر انجام می شود به طوری که به ما اجازه می دهد این متغیر را مستقیما به شیء تقسیم بندی منتقل کنیم:
# Time step parameters nper = 3 perlen = [1, 100, 100] nstp = [1, 100, 100] steady = [True, False, False]
ایجاد اجزاء FloPy شکند زمان
با استفاده از این اطلاعات می توانیم اجزاء FloPy ایستا را که با زمان تغییر نمی کنند ایجاد کنیم:
# Flopy objects modelname = 'tutorial2' mf = flopy.modflow.Modflow(modelname, exe_name='mf2005') dis = flopy.modflow.ModflowDis(mf, nlay, nrow, ncol, delr=delr, delc=delc, top=ztop, botm=botm[1:], nper=nper, perlen=perlen, nstp=nstp, steady=steady) bas = flopy.modflow.ModflowBas(mf, ibound=ibound, strt=strt) lpf = flopy.modflow.ModflowLpf(mf, hk=hk, vka=vka, sy=sy, ss=ss, laytyp=laytyp) pcg = flopy.modflow.ModflowPcg(mf)
بسته مرزهای تراوا - GHB
در این مرحله، مدل ما آماده است تا بسته های مرزی گذرا را اضافه کند. اول، ما object GHB ایجاد می کنیم که از نوع زیر است: flopy.modflow.ModflowGhb.
کلید ایجاد بسته های مرزی گذرا Flopy این است که شناسایی داده های مرزی در یک فرهنگ لغت با مقادیر کلیدی برابر با تعداد دوره های تنش بر اساس صفر و مقادیر برابر با شرایط مرزی برای این دوره استرس ذخیره می شود. برای یک GHB مقادیر می توانند لیست توپی دو بعدی [لایه، ردیف، ستون، مرحله، هدایت] باشند:
# Make list for stress period 1 stageleft = 10. stageright = 10. bound_sp1 = [] for il in xrange(nlay): condleft = hk * (stageleft - zbot) * delc condright = hk * (stageright - zbot) * delc for ir in xrange(nrow): bound_sp1.append([il, ir, 0, stageleft, condleft]) bound_sp1.append([il, ir, ncol - 1, stageright, condright]) print 'Adding ', len(bound_sp1), 'GHBs for stress period 1.' # Make list for stress period 2 stageleft = 10. stageright = 0. condleft = hk * (stageleft - zbot) * delc condright = hk * (stageright - zbot) * delc bound_sp2 = [] for il in xrange(nlay): for ir in xrange(nrow): bound_sp2.append([il, ir, 0, stageleft, condleft]) bound_sp2.append([il, ir, ncol - 1, stageright, condright]) print 'Adding ', len(bound_sp2), 'GHBs for stress period 2.' # We do not need to add a dictionary entry for stress period 3. # Flopy will automatically take the list from stess period 2 and apply it # to the end of the simulation, if necessary stress_period_data = {0: bound_sp1, 1: bound_sp2} # Create the flopy ghb object ghb = flopy.modflow.ModflowGhb(mf, stress_period_data=stress_period_data)
ادامه دارد...
بخش بعدی را اینجا بیابید.
برای یافتن تمامی مطالب مرتبط با این مطلب در سایت از جستجوی سایت در حاشیه سمت راست و بالای صفجه استفاده فرمایید.
ورود به بخش آموزش های متنی GMS
دانلود آخرین نسخه نرم افزار GMS
دریافت لایسنس ارزیابی (14 روزه)
برای سفارش انجام مدل سازی اینجا کلیک کنید
شناسه تلگرام مدیر سایت: SubBasin@
نشانی ایمیل: behzadsarhadi@gmail.com
(سوالات تخصصی را در گروه تلگرام ارسال کنید)
_______________________________________________________
پروژه تخصصی در لینکدین
نظرات (۰)