flopy/flopy/mf6/modflow/mftdis.py

141 lines
4.6 KiB
Python

# DO NOT MODIFY THIS FILE DIRECTLY. THIS FILE MUST BE CREATED BY
# mf6/utils/createpackages.py
from .. import mfpackage
from ..data.mfdatautil import ListTemplateGenerator
class ModflowTdis(mfpackage.MFPackage):
"""
ModflowTdis defines a tdis package.
Parameters
----------
simulation : MFSimulation
Simulation that this package is a part of. Package is automatically
added to simulation when it is initialized.
loading_package : bool
Do not set this parameter. It is intended for debugging and internal
processing purposes only.
time_units : string
* time_units (string) is the time units of the simulation. This is a
text string that is used as a label within model output files. Values
for time_units may be "unknown", "seconds", "minutes", "hours",
"days", or "years". The default time unit is "unknown".
start_date_time : string
* start_date_time (string) is the starting date and time of the
simulation. This is a text string that is used as a label within the
simulation list file. The value has no affect on the simulation. The
recommended format for the starting date and time is described at
https://www.w3.org/TR/NOTE-datetime.
nper : integer
* nper (integer) is the number of stress periods for the simulation.
perioddata : [perlen, nstp, tsmult]
* perlen (double) is the length of a stress period.
* nstp (integer) is the number of time steps in a stress period.
* tsmult (double) is the multiplier for the length of successive time
steps. The length of a time step is calculated by multiplying the
length of the previous time step by TSMULT. The length of the first
time step, :math:`\\Delta t_1`, is related to PERLEN, NSTP, and
TSMULT by the relation :math:`\\Delta t_1= perlen \\frac{tsmult -
1}{tsmult^{nstp}-1}`.
filename : String
File name for this package.
pname : String
Package name for this package.
parent_file : MFPackage
Parent package file that references this package. Only needed for
utility packages (mfutl*). For example, mfutllaktab package must have
a mfgwflak package parent_file.
"""
perioddata = ListTemplateGenerator(("tdis", "perioddata", "perioddata"))
package_abbr = "tdis"
_package_type = "tdis"
dfn_file_name = "sim-tdis.dfn"
dfn = [
[
"block options",
"name time_units",
"type string",
"reader urword",
"optional true",
],
[
"block options",
"name start_date_time",
"type string",
"reader urword",
"optional true",
],
[
"block dimensions",
"name nper",
"type integer",
"reader urword",
"optional false",
"default_value 1",
],
[
"block perioddata",
"name perioddata",
"type recarray perlen nstp tsmult",
"reader urword",
"optional false",
"default_value ((1.0, 1, 1.0),)",
],
[
"block perioddata",
"name perlen",
"type double precision",
"in_record true",
"tagged false",
"reader urword",
"optional false",
],
[
"block perioddata",
"name nstp",
"type integer",
"in_record true",
"tagged false",
"reader urword",
"optional false",
],
[
"block perioddata",
"name tsmult",
"type double precision",
"in_record true",
"tagged false",
"reader urword",
"optional false",
],
]
def __init__(
self,
simulation,
loading_package=False,
time_units=None,
start_date_time=None,
nper=1,
perioddata=((1.0, 1, 1.0),),
filename=None,
pname=None,
parent_file=None,
):
super(ModflowTdis, self).__init__(
simulation, "tdis", filename, pname, loading_package, parent_file
)
# set up variables
self.time_units = self.build_mfdata("time_units", time_units)
self.start_date_time = self.build_mfdata(
"start_date_time", start_date_time
)
self.nper = self.build_mfdata("nper", nper)
self.perioddata = self.build_mfdata("perioddata", perioddata)
self._init_complete = True