From b4ddc4f364306932f97e542b79dbb3d5ca11c214 Mon Sep 17 00:00:00 2001 From: Scott Paulinski Date: Wed, 2 Feb 2022 15:07:42 -0800 Subject: [PATCH 1/5] fix(tab files): fixed searching for tab file packages --- flopy/mf6/mfpackage.py | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/flopy/mf6/mfpackage.py b/flopy/mf6/mfpackage.py index a9fa93fb66..1cd13113ac 100644 --- a/flopy/mf6/mfpackage.py +++ b/flopy/mf6/mfpackage.py @@ -1149,10 +1149,20 @@ def _get_package_info(self, dataset): item_name = data_item.name package_type = item_name[:-1] model_type = self._model_or_sim.structure.model_type - if ( - PackageContainer.package_factory(package_type, model_type) - is not None - ): + package_types = [ + package_type, + f"{self._container_package.package_type}" + f"{package_type}", + ] + package_type_found = None + for ptype in package_types: + if ( + PackageContainer.package_factory(ptype, model_type) + is not None + ): + package_type_found = ptype + break + if package_type_found is not None: try: data = dataset.get_data() except MFDataException as mfde: @@ -1172,9 +1182,14 @@ def _get_package_info(self, dataset): file_location = data package_info_list = [] file_path, file_name = os.path.split(file_location) - dict_package_name = f"{package_type}_{self.path[-2]}" + dict_package_name = f"{package_type_found}_{self.path[-2]}" package_info_list.append( - (package_type, file_name, file_path, dict_package_name) + ( + package_type_found, + file_name, + file_path, + dict_package_name, + ) ) return package_info_list return None From a8f7310bfc930415dcd32c88856ffe968600517f Mon Sep 17 00:00:00 2001 From: Scott Paulinski Date: Wed, 2 Feb 2022 15:09:38 -0800 Subject: [PATCH 2/5] fix(tab files): added lake tab file back in to t504 tests (#1337) --- autotest/t504_test.py | 160 +++++++++++++++++++++--------------------- 1 file changed, 79 insertions(+), 81 deletions(-) diff --git a/autotest/t504_test.py b/autotest/t504_test.py index cc8f5ac17f..d43fe175dc 100644 --- a/autotest/t504_test.py +++ b/autotest/t504_test.py @@ -537,87 +537,84 @@ def test006_gwf3(): return -# def test045_lake1ss_table(): -# # init paths -# test_ex_name = "test045_lake1ss_table" -# model_name = "lakeex1b" -# -# pth = os.path.join("..", "examples", "data", "mf6", test_ex_name) -# run_folder = f"{base_dir}_{test_ex_name}" -# save_folder = f"{run_folder}_save" -# test_setup = flopyTest(verbose=True) -# test_setup.add_test_dir([run_folder, save_folder]) -# -# expected_output_folder = os.path.join(pth, "expected_output") -# expected_head_file_a = os.path.join( -# expected_output_folder, "lakeex1b_unch.hds" -# ) -# expected_head_file_b = os.path.join( -# expected_output_folder, "lakeex1b_adj.hds" -# ) -# -# # load simulation -# sim = MFSimulation.load( -# sim_name=model_name, -# exe_name=exe_name, -# sim_ws=pth, -# verify_data=True, -# ) -# -# # make temp folder to save simulation -# sim.set_sim_path(run_folder) -# -# # write simulation to new location -# sim.write_simulation() -# -# if run: -# # run simulation -# success, buff = sim.run_simulation() -# assert success, f"simulation {sim.name} did not run" -# -# # compare output to expected results -# head_new = os.path.join(run_folder, "lakeex1b.hds") -# outfile = os.path.join(run_folder, "headcompare_a.txt") -# success = pymake.compare_heads( -# None, -# None, -# files1=expected_head_file_a, -# files2=head_new, -# outfile=outfile, -# ) -# assert success -# -# # change some settings -# model = sim.get_model(model_name) -# laktbl = model.get_package("tab").table -# laktbl_data = laktbl.get_data() -# laktbl_data[-1][0] = 700.0 -# laktbl.set_data(laktbl_data) -# -# # write simulation again -# sim.set_sim_path(save_folder) -# sim.write_simulation() -# -# if run: -# # run simulation -# success, buff = sim.run_simulation() -# assert success, f"simulation {sim.name} rerun did not run" -# -# # compare output to expected results -# head_new = os.path.join(save_folder, "lakeex1b.hds") -# outfile = os.path.join(run_folder, "headcompare_b.txt") -# success = pymake.compare_heads( -# None, -# None, -# files1=expected_head_file_b, -# files2=head_new, -# outfile=outfile, -# ) -# assert success -# -# -# -# return +def test045_lake1ss_table(): + # init paths + test_ex_name = "test045_lake1ss_table" + model_name = "lakeex1b" + + pth = os.path.join("..", "examples", "data", "mf6", test_ex_name) + run_folder = f"{base_dir}_{test_ex_name}" + save_folder = f"{run_folder}_save" + test_setup = FlopyTestSetup(verbose=True) + test_setup.add_test_dir([run_folder, save_folder]) + + expected_output_folder = os.path.join(pth, "expected_output") + expected_head_file_a = os.path.join( + expected_output_folder, "lakeex1b_unch.hds" + ) + expected_head_file_b = os.path.join( + expected_output_folder, "lakeex1b_adj.hds" + ) + + # load simulation + sim = MFSimulation.load( + sim_name=model_name, + exe_name=exe_name, + sim_ws=pth, + verify_data=True, + ) + + # make temp folder to save simulation + sim.set_sim_path(run_folder) + + # write simulation to new location + sim.write_simulation() + + if run: + # run simulation + success, buff = sim.run_simulation() + assert success, f"simulation {sim.name} did not run" + + # compare output to expected results + head_new = os.path.join(run_folder, "lakeex1b.hds") + outfile = os.path.join(run_folder, "headcompare_a.txt") + success = pymake.compare_heads( + None, + None, + files1=expected_head_file_a, + files2=head_new, + outfile=outfile, + ) + assert success + + # change some settings + model = sim.get_model(model_name) + laktbl = model.get_package("laktab").table + laktbl_data = laktbl.get_data() + laktbl_data[-1][0] = 700.0 + laktbl.set_data(laktbl_data) + # write simulation again + sim.set_sim_path(save_folder) + sim.write_simulation() + + if run: + # run simulation + success, buff = sim.run_simulation() + assert success, f"simulation {sim.name} rerun did not run" + + # compare output to expected results + head_new = os.path.join(save_folder, "lakeex1b.hds") + outfile = os.path.join(run_folder, "headcompare_b.txt") + success = pymake.compare_heads( + None, + None, + files1=expected_head_file_b, + files2=head_new, + outfile=outfile, + ) + assert success + + return def test006_2models_mvr(): @@ -1301,6 +1298,7 @@ def test_mf6_output_add_observation(): test006_gwf3() test027_timeseriestest() test036_twrihfb() + test045_lake1ss_table() test045_lake2tr() test_mf6_output() test_mf6_output_add_observation() From 3851a1ff48d773c2075aade805cbc8ca708784aa Mon Sep 17 00:00:00 2001 From: Scott Paulinski Date: Wed, 2 Feb 2022 15:13:11 -0800 Subject: [PATCH 3/5] fix(tab files): modified lak test to test tab files in different folders --- examples/data/mf6/test045_lake1ss_table/lakeex1b.lak | 2 +- .../data/mf6/test045_lake1ss_table/{ => lt}/lakeex1b_table.ref | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename examples/data/mf6/test045_lake1ss_table/{ => lt}/lakeex1b_table.ref (96%) diff --git a/examples/data/mf6/test045_lake1ss_table/lakeex1b.lak b/examples/data/mf6/test045_lake1ss_table/lakeex1b.lak index 57b4afb81f..45a6fd49c1 100644 --- a/examples/data/mf6/test045_lake1ss_table/lakeex1b.lak +++ b/examples/data/mf6/test045_lake1ss_table/lakeex1b.lak @@ -75,7 +75,7 @@ BEGIN connectiondata END connectiondata BEGIN tables - 1 TAB6 FILEIN lakeex1b_table.ref + 1 TAB6 FILEIN lt\lakeex1b_table.ref END tables BEGIN period 1 diff --git a/examples/data/mf6/test045_lake1ss_table/lakeex1b_table.ref b/examples/data/mf6/test045_lake1ss_table/lt/lakeex1b_table.ref similarity index 96% rename from examples/data/mf6/test045_lake1ss_table/lakeex1b_table.ref rename to examples/data/mf6/test045_lake1ss_table/lt/lakeex1b_table.ref index 7cffd907a0..cc1ada58c7 100644 --- a/examples/data/mf6/test045_lake1ss_table/lakeex1b_table.ref +++ b/examples/data/mf6/test045_lake1ss_table/lt/lakeex1b_table.ref @@ -4,7 +4,7 @@ BEGIN dimensions END dimensions BEGIN table - 97.0 0.0 2250000.0 + 97.0 3045000.0 2250000.0 99.6867 6045000.0 2250000.0 102.373 12090000.0 2250000.0 105.06 18135000.0 2250000.0 From cdae8a6d1e34195c5710cc664f0b00820886dda7 Mon Sep 17 00:00:00 2001 From: Scott Paulinski Date: Fri, 4 Feb 2022 13:46:01 -0800 Subject: [PATCH 4/5] fix(lake tabs): additional comments added --- flopy/mf6/mfpackage.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/flopy/mf6/mfpackage.py b/flopy/mf6/mfpackage.py index 1cd13113ac..face70898d 100644 --- a/flopy/mf6/mfpackage.py +++ b/flopy/mf6/mfpackage.py @@ -1149,6 +1149,9 @@ def _get_package_info(self, dataset): item_name = data_item.name package_type = item_name[:-1] model_type = self._model_or_sim.structure.model_type + # not all packages have the same naming convention + # try different naming conventions to find the appropriate + # package package_types = [ package_type, f"{self._container_package.package_type}" From 411faec7ae6f9d834fa732150cdcbab0add522d1 Mon Sep 17 00:00:00 2001 From: Scott Paulinski Date: Wed, 9 Feb 2022 15:00:53 -0800 Subject: [PATCH 5/5] fix(lak tab): changed lakeex1b.lak test file path to contain mac-style forward slash path --- examples/data/mf6/test045_lake1ss_table/lakeex1b.lak | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/data/mf6/test045_lake1ss_table/lakeex1b.lak b/examples/data/mf6/test045_lake1ss_table/lakeex1b.lak index 45a6fd49c1..273078efdf 100644 --- a/examples/data/mf6/test045_lake1ss_table/lakeex1b.lak +++ b/examples/data/mf6/test045_lake1ss_table/lakeex1b.lak @@ -75,7 +75,7 @@ BEGIN connectiondata END connectiondata BEGIN tables - 1 TAB6 FILEIN lt\lakeex1b_table.ref + 1 TAB6 FILEIN lt/lakeex1b_table.ref END tables BEGIN period 1