Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c89b2d8

Browse files
authored
feat(ModflowAg): add the ModflowAg package for NWT (pull request #922)
Update UZF package options and blocks for NWT release 1.2.0. Add t071_test_nwt_ag.py autotest.
1 parent 00af3c0 commit c89b2d8

8 files changed

Lines changed: 2877 additions & 4 deletions

File tree

autotest/t071_test_nwt_ag.py

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
import os
2+
import flopy
3+
import platform
4+
import shutil
5+
import numpy as np
6+
7+
8+
mpth = os.path.join('..', 'examples', 'data', 'ag_test')
9+
opth = os.path.join('temp', 't071')
10+
if not os.path.exists(opth):
11+
os.makedirs(opth)
12+
13+
14+
def test_empty_ag_package():
15+
ml = flopy.modflow.Modflow("agtest", version='mfnwt')
16+
ag = flopy.modflow.ModflowAg(ml)
17+
18+
if not isinstance(ag, flopy.pakbase.Package):
19+
raise Exception
20+
21+
22+
def test_load_write_agwater():
23+
agfile = "Agwater1.ag"
24+
ml = flopy.modflow.Modflow("Agwater1", version='mfnwt')
25+
ag1 = flopy.modflow.ModflowAg.load(os.path.join(mpth, agfile),
26+
ml, nper=49, ext_unit_dict={})
27+
28+
loaded = False
29+
for pak in ml.packagelist:
30+
if isinstance(pak, flopy.modflow.ModflowAg):
31+
loaded = True
32+
break
33+
34+
if not loaded:
35+
raise AssertionError("ModflowAg package not loaded")
36+
37+
ml.change_model_ws(opth)
38+
ag1.write_file()
39+
40+
ml2 = flopy.modflow.Modflow("Agwater1", version='mfnwt', model_ws=opth)
41+
ag2 = flopy.modflow.ModflowAg.load(os.path.join(opth, agfile),
42+
ml2, nper=49)
43+
44+
if repr(ag1) != repr(ag2):
45+
raise AssertionError("Ag package comparison failed")
46+
47+
def test_load_write_agwater_uzf():
48+
uzffile = "Agwater1.uzf"
49+
ml = flopy.modflow.Modflow("Agwater1", version='mfnwt')
50+
dis = flopy.modflow.ModflowDis(ml, nlay=1, nrow=15, ncol=10, nper=49)
51+
uzf1 = flopy.modflow.ModflowUzf1.load(os.path.join(mpth, uzffile), ml)
52+
53+
loaded = False
54+
for pak in ml.packagelist:
55+
if isinstance(pak, flopy.modflow.ModflowUzf1):
56+
loaded = True
57+
break
58+
59+
if not loaded:
60+
raise AssertionError("ModflowUzf1 package not loaded")
61+
62+
ml.change_model_ws(opth)
63+
uzf1.write_file()
64+
65+
ml2 = flopy.modflow.Modflow("Agwater1", version='mfnwt', model_ws=opth)
66+
dis2 = flopy.modflow.ModflowDis(ml2, nlay=1, nrow=15, ncol=10, nper=49)
67+
uzf2 = flopy.modflow.ModflowUzf1.load(os.path.join(opth, uzffile), ml2)
68+
69+
if not np.allclose(uzf1.air_entry.array, uzf2.air_entry.array):
70+
raise AssertionError("Air entry pressure array comparison failed")
71+
72+
if not np.allclose(uzf1.hroot.array, uzf2.hroot.array):
73+
raise AssertionError("root pressure array comparison failed")
74+
75+
if not np.allclose(uzf1.rootact.array, uzf2.rootact.array):
76+
raise AssertionError("root activity array comparison failed")
77+
78+
79+
if __name__ == "__main__":
80+
test_empty_ag_package()
81+
test_load_write_agwater()
82+
test_load_write_agwater_uzf()

0 commit comments

Comments
 (0)