1

我有一个两层模型。顶层无约束,底层有约束。我似乎无法让我的软盘模型垂直电导与在程序中自动计算的 PMWIN 模型的结果相匹配。这是相关的代码:

型号尺寸

nlay = 2   # number of layers

nrow = 80   # number of rows

ncol = 57   # number of columns

laytyp = [1,0] #unconfined top layer, confined aquifer below

zbot = -300 # bottom of aquifer same for entire model

每个模型层(顶部和底部)的高程都是从文本文件中导入的:

Model_Top_Elevation = np.loadtxt('model_top_elev.txt', dtype=np.float32)

Model_Top_Elevation  = np.array([Model_Top_Elevation])

Lay1_Bottom_Elevation= np.loadtxt('bottom_lay1.txt', dtype=np.float32)

# Layer 1的底部标高是从txt文件中导入的

Lay1_Bottom_Elevation= np.loadtxt('bottom_lay1.txt', dtype=np.float32)
Lay1_Bottom_Elevation  = np.array([Lay1_Bottom_Elevation])

Lay2_Top_Elevation = np.loadtxt('top_lay2.txt', dtype=np.float32)
Lay2_Top_Elevation  = np.array([Lay2_Top_Elevation])

确定每个模型层的含水层厚度:

Lay1_Width = -1*(Lay1_Bottom_Elevation-Model_Top_Elevation)

Lay2_Width = -1*(-1*Lay2_Top_Elevation + -300)

如果第 1 层含水层从水位(不是顶部标高)开始计算,则计算其厚度:

Initial head = 211

Lay1_Watertable_Width = -1*(Lay1_Bottom_Elevation-Initial head)

整机采用10m/d导水率

hk = 10

垂直电导率

vk = 0.00001*np.ones((nlay, nrow, ncol), dtype=np.float32)

计算第 2 层的透射率

T = hk*(Lay2_Width)

计算垂直电导 (vcont)

vcont = 1/(((Lay1_Watertable_Width)/ vk[0])+((Lay2_Width*0.5)/ vk[1]))

写入 BCF 文件:

bcf = flopy.modflow.ModflowBcf(mf,ipakcb=50,laycon=[1,0], hdry=-1e+30, iwdflg=0, wetfct=0.1, iwetit=1, ihdwet=0, trpy = [1,0],hy=hk, vcont=vcont,tran=[0,T])

模型输出与 VCONT 的 PMWIN 计算不匹配

如果有人对我哪里出错有任何建议,请帮忙!

我根据 PMWIN 手册附上了公式

4

1 回答 1

0

看起来您的 VCONT 计算可能有错误。应该是这样的:

vcont = 1 / ((0.5 * Lay1_Watertable_Width / vk[0]) + (0.5 * Lay_2_width / vk[1]))

我也对你有一个不同的数组'bottom_lay1.txt'和感到困惑'top_lay2.txt',因为第 1 层的底部是 MODFLOW 的第 2 层的顶部。

于 2020-03-31T15:54:43.523 回答