-
Notifications
You must be signed in to change notification settings - Fork 7
Description
Hi Developers,
I am currently trying to import a regional gwf model from imod5 into imod python. I started with writing and running a stationary model and managed to get output. I did a check where I compared the heads from the stationary model in imod Python with heads from the stationary model runned with the RUNFILE batch function. I encountered some differences up to 30 cm on some places in the model, especially close to rivers. I was wondering if I entered exactly the same input settings for both model runs. The imported .prj file is exactly the same, so it has nothing to do with the input files. I also checked the solver settings and could not find what was different. Below I provide you the settings for both model runs. I also uploaded the projectfile and the IMS files from both runs.
Question
Can you help me with figuring out if all input settings for both model runs are exactly the same, or that I missed something? Could it otherwise just be a model uncertainty? I doubt that.
Kind regards,
Cas van Haperen, WS Brabantse Delta
RUNFILE Batch Function
REM Running PRJ file, creating MODFLOW NAM file and writing results to output folder
ECHO FUNCTION=RUNFILE >model3.ini
ECHO PRJFILE_IN="E:\brabantmodel\AaofWeerijs\OPLEVERING\model\Initial_model_STAT\Turfvaart_ZoW_model_2025_STAT1.prj" >>model3.ini
ECHO SIM_TYPE=3 >>model3.ini
ECHO ISOLVE=1 >>model3.ini
ECHO ISTEADY=0 >>model3.ini
ECHO OUTPUT_FOLDER= "E:\brabantmodel\AaofWeerijs\OPLEVERING\OUTPUT\Turfvaart_ZoW_model_2025_STAT_new">>model3.ini
ECHO NAMFILE_OUT="E:\brabantmodel\AaofWeerijs\OPLEVERING\OUTPUT\Turfvaart_ZoW_model_2025_STAT\Turfvaart_ZoW_model_2025_STAT_new.NAM" >>model3.ini
REM Settings for simulation
ECHO SDATE=20130101000000 >>model3.ini
ECHO EDATE=20240101000000 >>model3.ini
ECHO ISS=0 >>model3.ini
ECHO ITT=3 >>model3.ini
ECHO IDT=1 >>model3.ini
ECHO NLAY = 43 >>model3.ini
ECHO NSTEP=1 >>model3.ini
ECHO NMULT=1 >>model3.ini
ECHO SSYSTEM=1 >>model3.ini
ECHO ISAVEENDDATE=0 >>model3.ini
ECHO ICONCHK=0 >>model3.ini
ECHO IDOUBLE=0 >>model3.ini
REM ECHO IDEFLAYER=2 >>model3.ini
ECHO SAVESHD=-1 >>model3.ini
ECHO WINDOW=92000.000,368000.000,113000.000,400000.000 >>model3.ini
ECHO CELLSIZE=100 >>model3.ini
ECHO BUFFER=0.0 >>model3.ini
ECHO BUFFERCS = 100 >>model3.ini
REM RUN WITH MODFLOW 6
ECHO MODFLOW6=E:\brabantmodel\AaofWeerijs\IMOD_V5_6\bin\MODFLOW6_v6.4.2.exe >>model3.ini
"E:\brabantmodel\AaofWeerijs\IMOD_V5_6\iMOD_V5_6.EXE" model3.ini
Pause
IMOD python settings
directory = Path("E:/brabantmodel/AaofWeerijs/OPLEVERING")
model_dir = directory / "model/Initial_model_STAT"
Dbase_dir = directory / "Dbase"
prj_path = model_dir / "Turfvaart_ZoW_model_2025_STAT1.prj"
log_file = model_dir / "build_MODFLOW6_model.log"
logger = get_logger(name="mijn script", log_level=logging.INFO, log_file=log_file) ### verander "mijn script" in de gewenste Log naam.
mf6_sim = from_imod5_to_mf6_model(prj_path=prj_path,times = pd.DatetimeIndex([pd.Timestamp("2013-01-01")]))
#%%
logger.info("clip model data")
mf6_dir = model_dir / "mf6_STAT"
gwf_model = mf6_sim["imported_model"]
xmin,ymin,xmax,ymax = 92000.000,368000.000,113000.000,400000.000
gwf_model = gwf_model.clip_box(x_min=xmin, y_min=ymin, x_max=xmax, y_max=ymax)
#%%
mf6_sim["imported_model"] = gwf_model
dis = gwf_model["dis"]
idomain = dis["idomain"]
mask = (idomain != 0)
mf6_sim.mask_all_models(idomain)
gwf_model["riv-2riv"].cleanup(dis=gwf_model["dis"])
gwf_model["oc"] = imod.mf6.OutputControl(save_head="last", save_budget="last",)
times_str =["2013-01-01", "2013-01-02","2013-01-03", "2013-01-04"]
mf6_sim.create_time_discretization(additional_times=times_str)
outer_dvclose = 0.001
outer_maximum = 500
inner_maximum = 25
inner_dvclose = 0.001
inner_rclose = 0.1
linear_acceleration = "cg"
mf6_sim["ims"] = imod.mf6.Solution(modelnames=["imported_model"],outer_dvclose=outer_dvclose, outer_maximum=outer_maximum,
inner_maximum=inner_maximum, inner_dvclose=inner_dvclose, inner_rclose=inner_rclose,
linear_acceleration=linear_acceleration)
if mf6_dir.exists():
shutil.rmtree(mf6_dir)
mf6_sim.write(directory = mf6_dir, validate=True)
mf6_exe = r"E:\brabantmodel\AaofWeerijs\IMOD_V5_6\bin\MODFLOW6_v6.4.2.exe"
mf6_sim.run(mf6path=mf6_exe)
Metadata
Metadata
Assignees
Labels
Type
Projects
Status