Dear all,
I'm still pretty new to coding and MF6 so pardon if my phrasing is not precise.
I've encountered that it takes a very long time to build the EVT package (~2-3 minutes), and similarly the EVT step takes a long time during the writing simulation part (~3-4 minutes).
I'm using MF6 and have a DISV grid and a transient setup (I'm simulating daily steps for a year), writing and running with flopy.
My understanding is the EVT setup is cell-id based:
From the flopy documentation:
stress_period_data ([cellid, surface, rate, depth, pxdp, petm, petm0, aux,)
-- Since I have a transient setup, the EVT rate changes daily, and I am applying EVT rates to all top cells, meaning its a huge array with each cell, layer and rate x 365. Therefore it seems to take a long time to build and later write the simulation.
Am I understanding the setup wrong? or is there any way to optimize it? What I don't get is other packages (like the RCH package) seems to be able to be layer based, instead of cell based. Is it possible to do layer based EVT setup?
I wish to run a monte-carlo setup to perform a sensitivity analysis, so when running 500-1000 simulations, it has a huge impact that it takes so long! The other packages maximum take ~10-20 seconds to write, most maybe just 1 second.
I'll past in some of my code, below - I'll be happy to learn if there is a better way for the EVT package :-)!
Kind regards,
Lærke
Code snippets:
evt_cells = [((evt_layer, node), surf, exd)
for node, surf, exd in zip(nodes, et_surface, ex_depth)]
evt_spd = {}
for i in range(nper_):
rate = float(et_values[i])
evt_spd[i] = [(cid, surf, rate, exd) for (cid, surf, exd) in evt_cells]
evt = flopy.mf6.ModflowGwfevt(
model=gwf,
loading_package=False,
print_input=None,
print_flows=None,
save_flows=None,
maxbound=len(nodes),
stress_period_data= evt_spd,
filename='{}_evt.evt'.format(sim_name),
pname='{}_evt'.format(sim_name),
)