modflow6 icon indicating copy to clipboard operation
modflow6 copied to clipboard

Error in list based EVT using time series for Multiplier (Auxmultname) only

Open tandreasr opened this issue 6 years ago • 3 comments

Hi Chris, I've noticed an error in the above mentioned EVT package (maybe in other packages too) When using a TS for the multiplier (auxmultname) in conjunction with another TS for the evaporation rate, all works as expected. When specifying the rate directly without using a TS for it, but keep the TS for the multiplier, the behaviour changes to unexpected. Namely there is no longer taking place an assignment of different multiplier values at time step level, but at stress period level only.

In order to reproduce the error, please have a look at the project attached. (actually just a slightly modified version of your 'test001h_evt_list4')

The changes I've made are:

TDIS: Stress period 1 changed from 1 to 10 time steps (to see changes at time step level)

EVT: Replaced all Rate TS references (ETRATE) by constant 0.02 (which is actually the same value as ETRATE) EVT.TS: 4 additional times (0.1 .. 0.4) have been inserted inside stress period 1 having changing multiplier values (column 3)

This is the project to reproduce the error:

__error_evt_ts4multOnly.zip

The EVT flows written to the CBC file do look like this:

_EVT_FLOW_CBC_wrong

When exchanging the EVT file by this one (0.02 changed to ETRATE):

flow15.evt.zip

The flows do look like this (correctly changing values at time step level):

_EVT_FLOW_CBC_correct

tandreasr avatar Feb 20 '20 20:02 tandreasr

They should look the same way for both cases...

Could you please have a look at this?

Thanks in advance Andreas

tandreasr avatar Feb 20 '20 21:02 tandreasr

I'll take a look. I'm really surprised there are still problems here. Thanks for letting us know.

christianlangevin avatar Feb 21 '20 14:02 christianlangevin

We have identified a couple problems with AUXMULTNAME when it is combined with time series. These are the four different combinations for using AUXMULTNAME with stress packages, as shown in the example input file below. This example is for the Well Package, but there are similar issues with the other boundary packages that support AUXMULTNAME, such as the Drain Package (with conductance), the Constant-Head Package (with head), etc.

These are the cases, which correspond to the 4 entries in the example below:

  1. Neither use time series. This works fine.
  2. Time series used only for Q. This works fine
  3. Time series used for AUXMULT but not for Q. This does not work if there are more than 1 time steps in a stress period. In this case, AUXMULT is only applied for the first time step. There is not an easy fix for this based on the implementation, so we may remove support for this option.
  4. Time series used for Q and for AUXMULT. This has an error in that Q is interpolated correctly, but is then multiplied by the AUXMULT column before a new time series value is interpolated for the AUXMULT column. So the AUXMULT value from the previous time step is used to calculate Q. There is an easy fix for this, which will be committed soon.
BEGIN OPTIONS
  AUX QFACT
  AUXMULTNAME QFACT
  TS6 FILEIN auxmult01.wel.ts
END OPTIONS

BEGIN PERIOD 1
# L R C     Q   QFACT
  1 1 1  -1.0     0.5 # works fine
  1 1 2   tsq     0.5 # works fine
  1 1 3  -1.0 tsqfact # not working correctly
  1 1 4   tsq tsqfact # not working correctly, but easy fix
END PERIOD

christianlangevin avatar Feb 25 '20 14:02 christianlangevin