Stress Periods

552 views
Skip to first unread message

Rezvane Ghorbani

unread,
Feb 26, 2022, 10:49:33 PM2/26/22
to MODFLOW Users Group
Hi everyone,

Is it okay to model modflow (TRANSIENT type) in GMS software with yearly stress periods (each having one time step)?
If that is okay, I should import observed data and sources and sinks in the conceptual model yearly as well, right?

Thank you in advance,
Best

Victor S

unread,
Feb 27, 2022, 10:46:31 AM2/27/22
to MODFLOW Users Group
There is a general purpose for time steps in stress periods. According to Mary P. Anderson (2016): 
"Each stress period is subdivided into time steps in order to simulate changes in head within the stress period and to help stabilize the numerical solution..."
"...A general guideline is that there should be at least six time steps per stress period, as suggested by Prickett and Lonnquist (1971) who showed that numerical solutions agreed with the Theis analytical solution after about six time steps." 
The six time steps per stress period rule was discussed more recently by Reilly and Harbaugh (2004) and proved to be of good agreement with the 10 and 20 time steps solutions. 

Dwight Zedric Capus

unread,
Sep 16, 2022, 11:37:31 PM9/16/22
to MODFLOW Users Group
Does a monthly time step in an annual stress period mean there are 12 time steps in one stress period?

Boyce, Scott E

unread,
Sep 19, 2022, 10:48:12 PM9/19/22
to MODFLOW Users Group
Yes, so the stress period in concept is where all input is read (stresses) and held constant for that period. 
So if specify pumping as X and recharge as Y, had have a 365 day stress period, then it will hold X and Y constant for 365 days.

The time step is how many times it will solve the head solution, so if you set the time step to 365 steps, then you will get daily time steps,
if you set it to 12 steps, then you will get each time step length equal to 365/12 (assumes no time step multiplier).
Note again, that irrelevant of the number of time steps, all stresses are held constant (that is the same X pumping is used and Y recharge).

The time step multiplier allows for some acceleration by assuming the model approaches steady state during a stress period, but this can make post-processing a headache and most models use more advance packages such as SFR2, MNW2, and FMP, a multiplier does not help because those packages change their stresses by the time step (rather then stress period).

I would disagree with Anderson (2016), that is kind of an arbitrary number they are throwing out.
You typically set stress periods to intervals that you know the stresses are changing with respect to groundwater and time steps relative to how accurate your solution needs to be.

That does sound generalized, but with groundwater you can use common sense. For example,  a model with an annual stress period and daily time steps is silly because:
  1. You limit seasonal effects to a single value, smearing the stresses out over time.
  2. Daily time steps seem accurate, but groundwater is a slow moving process, plus with all stresses held constant for a year, makes the daily overkill.
Also there are limitations to the assumptions in MODFLOW. 
For example, SFR assumes that the stress width is small compared to the cell width (actually area) and that the travel time through the stream network is shorter than the time step (because it does not contain a storage term). 

So if you have a stream network that takes 3 days to flow from its upstream most point to its downstream most point (with the model domain), then you should always have your time steps greater than 3 days.

To add a bit more complexity, some packages do allow for time step input. I dont recommend this, but for some applications it is helpful. For example, SFR can specify inflows using Tabfiles, Time Series Files, or LineFeed files, which can be read by stress period or by time step. This always stream flows, which typically have a better resolution for measurement, to be applied at the time step level. Alse most of the FMP input accepts a keyword BY_TIMESTEP, which indicates the input should be read every time step rather than each stress period. Again, this has limited utility as groundwater tends to be slow to respond and often its better to refine stress periods rather than defining input by time step.
 
Most models I've worked with use monthly stress periods (honoring the number of days in each month) that are divided in to 2 or 4 time steps (which is ~2 weeks per step or ~weekly time steps).

If you are using MF-OWHMv2 you can define the time step length, rather than a time step count, so you can say that April is 30 days long with time step lengths being 7, 7, 8, 8 days to make the numbers even. This was added because reservoir operations often expect a certain number of days for a particular action (see information about Surface Water Operations, SWO).

Or another method is to use the DIS Keyword option MONTHLY 2​, which tells OWHM that you want monthly stress periods, whose length is equal to the number of days in each month, and 2 is the number of time steps per month.
(Note this option also requires that you specify a model starting calendar date so it can keep track of what stress period is associated with what month.)

I you need more info check out the changelog at: https://code.usgs.gov/modflow/mf-owhm/-/blob/main/CHANGELOG_Features.md
If I have some extra time I may port those options into the BAS package, since that is where the starting date is specified (note I always keep backward compatibility with old options).

Here are a list of recommended BAS options are located at:

Lastly, if you are working with any of the MF-2005 flavor modflows, MF-OWHMv2 has a new download location located at:

Hope that helps out,

Scott

From: mod...@googlegroups.com <mod...@googlegroups.com> on behalf of Dwight Zedric Capus <dwight...@gmail.com>
Sent: Friday, September 16, 2022 1:55 PM
To: MODFLOW Users Group <mod...@googlegroups.com>
Subject: [EXTERNAL] [MODFLOW] Re: Stress Periods
 

 

 This email has been received from outside of DOI - Use caution before clicking on links, opening attachments, or responding.  



--
You received this message because you are subscribed to the Google Groups "MODFLOW Users Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to modflow+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/modflow/f5e8a5dc-ccc9-45ad-91eb-21488b2be3e7n%40googlegroups.com.

Dqc

unread,
Oct 5, 2022, 11:10:30 AM10/5/22
to MODFLOW Users Group
Hi Seb,

Thank you so much for the info. Just to confirm with your, if I want to simulate a monthly time step and all my stresses are 365 days. I would set my time step to 12 is that correct (without honoring the number each month for simplicity)?
And what if I one set of  wells that runs for only a couple days? Is that normal to have one or two different stress period compare form the rest of your pumping and recharge stress? and how would I set the time step for this one

Boyce, Scott E

unread,
Oct 7, 2022, 11:51:09 PM10/7/22
to MODFLOW Users Group
I think you might have it backwards. A stress period is where all stresses are held constant (pumping, stream inflow, recharge). A time step is solving the groundwater flow equation with those stresses.

Say you want to simulate two years with a monthly stress period and roughly a two week time step.
The time unit is in days and the model starts in Jan 1 of 2021 (no leap years).

The input would have NPER=24  (number of stress periods), then you would define the stress periods as

So from:

# FOR EACH STRESS PERIOD DO   (note there are 24 stress periods)
#PERLEN NSTP TSMULT SS/TR #            Comment
31.   2     1.    TR    #     Jan-2021    Time Step Length: 15.5
28.   2     1.    TR    #     Feb-2021    Time Step Length: 14
31.   2     1.    TR    #     Mar-2021    Time Step Length: 15.5
30.   2     1.    TR    #     Apr-2021    Time Step Length: 15
31.   2     1.    TR    #     May-2021    Time Step Length: 15.5
30.   2     1.    TR    #     Jun-2021    Time Step Length: 15
31.   2     1.    TR    #     Jul-2021    Time Step Length: 15.5
31.   2     1.    TR    #     Aug-2021    Time Step Length: 15.5
30.   2     1.    TR    #     Sep-2021    Time Step Length: 15
31.   2     1.    TR    #     Oct-2021    Time Step Length: 15.5
30.   2     1.    TR    #     Nov-2021    Time Step Length: 15
31.   2     1.    TR    #     Dec-2021    Time Step Length: 15.5
31.   2     1.    TR    #     Jan-2022    Time Step Length: 15.5
28.   2     1.    TR    #     Feb-2022    Time Step Length: 14
31.   2     1.    TR    #     Mar-2022    Time Step Length: 15.5
30.   2     1.    TR    #     Apr-2022    Time Step Length: 15
31.   2     1.    TR    #     May-2022    Time Step Length: 15.5
30.   2     1.    TR    #     Jun-2022    Time Step Length: 15
31.   2     1.    TR    #     Jul-2022    Time Step Length: 15.5
31.   2     1.    TR    #     Aug-2022    Time Step Length: 15.5
30.   2     1.    TR    #     Sep-2022    Time Step Length: 15
31.   2     1.    TR    #     Oct-2022    Time Step Length: 15.5
30.   2     1.    TR    #     Nov-2022    Time Step Length: 15
31.   2     1.    TR    #     Dec-2022    Time Step Length: 15.5

In this example, Stress Period 1 is 31 days long, all packages will read their input and then apply their stresses (eg Pumping) for 31 days.
The groundwater equation is solved twice, with a time step length of 15.5 days.

Stress Period 2, all packages read the next stress period input, is 28 days long with a time step length of 14 days.


Hope that helps out




From: mod...@googlegroups.com <mod...@googlegroups.com> on behalf of Dqc <dwight...@gmail.com>
Sent: Wednesday, October 5, 2022 7:07 AM

To: MODFLOW Users Group <mod...@googlegroups.com>
Subject: Re: [EXTERNAL] [MODFLOW] Re: Stress Periods
 

Dqc

unread,
Oct 10, 2022, 11:53:09 PM10/10/22
to MODFLOW Users Group
Hi,
Just to clarify, I wanted to simulate an "annual" stress periods (I had it set from 1/1 to 12/31), I'm asking if I wanted a monthly time step without considering leap year. I would enter 12 time step?

Boyce, Scott E

unread,
Oct 17, 2022, 10:47:30 PM10/17/22
to MODFLOW Users Group
Yeah, you would make the period length 365 days (if your time unit is days) and then set the number of time steps to 12, which will make each time step equal to 365/12 days.


Scott

From: mod...@googlegroups.com <mod...@googlegroups.com> on behalf of Dqc <dwight...@gmail.com>
Sent: Monday, October 10, 2022 11:29 AM
Reply all
Reply to author
Forward
0 new messages