# autogenerated file, do not modify
from os import PathLike, curdir
from typing import Union
from flopy.mf6.data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
from flopy.mf6.mfpackage import MFChildPackages, MFPackage
[docs]class ModflowPrtoc(MFPackage):
"""
ModflowPrtoc defines a OC package.
Parameters
----------
budget_filerecord : (budgetfile)
* budgetfile : string
name of the output file to write budget information.
budgetcsv_filerecord : (budgetcsvfile)
* budgetcsvfile : string
name of the comma-separated value (CSV) output file to write budget summary
information. A budget summary record will be written to this file for each
time step of the simulation.
track_filerecord : (trackfile)
* trackfile : string
name of the binary output file to write tracking information.
trackcsv_filerecord : (trackcsvfile)
* trackcsvfile : string
name of the comma-separated value (CSV) file to write tracking information.
track_release : keyword
keyword to indicate that particle tracking output is to be written when a
particle is released
track_exit : keyword
keyword to indicate that particle tracking output is to be written when a
particle exits a feature (a model, cell, or subcell)
track_timestep : keyword
keyword to indicate that particle tracking output is to be written at the end
of each time step
track_terminate : keyword
keyword to indicate that particle tracking output is to be written when a
particle terminates for any reason
track_weaksink : keyword
keyword to indicate that particle tracking output is to be written when a
particle exits a weak sink (a cell which removes some but not all inflow from
adjacent cells)
track_usertime : keyword
keyword to indicate that particle tracking output is to be written at user-
specified times, provided as double precision values in the tracktimes block.
track_timesrecord : (track_times, times)
* track_times : keyword
keyword indicating tracking times will follow
* times : [double precision]
times to track, relative to the beginning of the simulation.
track_timesfilerecord : (timesfile)
* timesfile : string
name of the tracking times file
ntracktimes : integer
is the number of user-specified particle tracking times in the tracktimes
block.
tracktimes : [list]
saverecord : (save, rtype, ocsetting)
* save : keyword
keyword to indicate that information will be saved this stress period.
* rtype : string
type of information to save or print. Can only be BUDGET.
* ocsetting : keystring all first last frequency steps
specifies the steps for which the data will be saved.
printrecord : (print, rtype, ocsetting)
* print : keyword
keyword to indicate that information will be printed this stress period.
* rtype : string
type of information to save or print. Can only be BUDGET.
* ocsetting : keystring all first last frequency steps
specifies the steps for which the data will be saved.
"""
budget_filerecord = ListTemplateGenerator(
("prt6", "oc", "options", "budget_filerecord")
)
budgetcsv_filerecord = ListTemplateGenerator(
("prt6", "oc", "options", "budgetcsv_filerecord")
)
track_filerecord = ListTemplateGenerator(
("prt6", "oc", "options", "track_filerecord")
)
trackcsv_filerecord = ListTemplateGenerator(
("prt6", "oc", "options", "trackcsv_filerecord")
)
track_timesrecord = ListTemplateGenerator(
("prt6", "oc", "options", "track_timesrecord")
)
track_timesfilerecord = ListTemplateGenerator(
("prt6", "oc", "options", "track_timesfilerecord")
)
tracktimes = ListTemplateGenerator(("prt6", "oc", "tracktimes", "tracktimes"))
saverecord = ListTemplateGenerator(("prt6", "oc", "period", "saverecord"))
printrecord = ListTemplateGenerator(("prt6", "oc", "period", "printrecord"))
package_abbr = "prtoc"
_package_type = "oc"
dfn_file_name = "prt-oc.dfn"
dfn = [
["header"],
[
"block options",
"name budget_filerecord",
"type record budget fileout budgetfile",
"shape",
"reader urword",
"tagged true",
"optional true",
],
[
"block options",
"name budget",
"type keyword",
"shape",
"in_record true",
"reader urword",
"tagged true",
"optional false",
],
[
"block options",
"name fileout",
"type keyword",
"shape",
"in_record true",
"reader urword",
"tagged true",
"optional false",
],
[
"block options",
"name budgetfile",
"type string",
"preserve_case true",
"shape",
"in_record true",
"reader urword",
"tagged false",
"optional false",
],
[
"block options",
"name budgetcsv_filerecord",
"type record budgetcsv fileout budgetcsvfile",
"shape",
"reader urword",
"tagged true",
"optional true",
],
[
"block options",
"name budgetcsv",
"type keyword",
"shape",
"in_record true",
"reader urword",
"tagged true",
"optional false",
],
[
"block options",
"name budgetcsvfile",
"type string",
"preserve_case true",
"shape",
"in_record true",
"reader urword",
"tagged false",
"optional false",
],
[
"block options",
"name track_filerecord",
"type record track fileout trackfile",
"shape",
"reader urword",
"tagged true",
"optional true",
],
[
"block options",
"name track",
"type keyword",
"shape",
"in_record true",
"reader urword",
"tagged true",
"optional false",
],
[
"block options",
"name trackfile",
"type string",
"preserve_case true",
"shape",
"in_record true",
"reader urword",
"tagged false",
"optional false",
],
[
"block options",
"name trackcsv_filerecord",
"type record trackcsv fileout trackcsvfile",
"shape",
"reader urword",
"tagged true",
"optional true",
],
[
"block options",
"name trackcsv",
"type keyword",
"shape",
"in_record true",
"reader urword",
"tagged true",
"optional false",
],
[
"block options",
"name trackcsvfile",
"type string",
"preserve_case true",
"shape",
"in_record true",
"reader urword",
"tagged false",
"optional false",
],
[
"block options",
"name track_release",
"type keyword",
"reader urword",
"optional true",
],
[
"block options",
"name track_exit",
"type keyword",
"reader urword",
"optional true",
],
[
"block options",
"name track_timestep",
"type keyword",
"reader urword",
"optional true",
],
[
"block options",
"name track_terminate",
"type keyword",
"reader urword",
"optional true",
],
[
"block options",
"name track_weaksink",
"type keyword",
"reader urword",
"optional true",
],
[
"block options",
"name track_usertime",
"type keyword",
"reader urword",
"optional true",
],
[
"block options",
"name track_timesrecord",
"type record track_times times",
"shape",
"reader urword",
"tagged true",
"optional true",
"removed 6.6.1",
],
[
"block options",
"name track_times",
"type keyword",
"reader urword",
"in_record true",
"tagged true",
"shape",
"removed 6.6.1",
],
[
"block options",
"name times",
"type double precision",
"shape (unknown)",
"reader urword",
"in_record true",
"tagged false",
"repeating true",
"removed 6.6.1",
],
[
"block options",
"name track_timesfilerecord",
"type record track_timesfile timesfile",
"shape",
"reader urword",
"tagged true",
"optional true",
"removed 6.6.1",
],
[
"block options",
"name track_timesfile",
"type keyword",
"reader urword",
"in_record true",
"tagged true",
"shape",
"removed 6.6.1",
],
[
"block options",
"name timesfile",
"type string",
"preserve_case true",
"shape",
"in_record true",
"reader urword",
"tagged false",
"optional false",
"removed 6.6.1",
],
[
"block dimensions",
"name ntracktimes",
"type integer",
"reader urword",
"optional false",
],
[
"block tracktimes",
"name tracktimes",
"type recarray time",
"shape (ntracktimes)",
"reader urword",
],
[
"block tracktimes",
"name time",
"type double precision",
"shape",
"tagged false",
"in_record true",
"reader urword",
],
[
"block period",
"name iper",
"type integer",
"block_variable True",
"in_record true",
"tagged false",
"shape",
"valid",
"reader urword",
"optional false",
],
[
"block period",
"name saverecord",
"type record save rtype ocsetting",
"shape",
"reader urword",
"tagged false",
"optional true",
],
[
"block period",
"name save",
"type keyword",
"shape",
"in_record true",
"reader urword",
"tagged true",
"optional false",
],
[
"block period",
"name printrecord",
"type record print rtype ocsetting",
"shape",
"reader urword",
"tagged false",
"optional true",
],
[
"block period",
"name print",
"type keyword",
"shape",
"in_record true",
"reader urword",
"tagged true",
"optional false",
],
[
"block period",
"name rtype",
"type string",
"shape",
"in_record true",
"reader urword",
"tagged false",
"optional false",
],
[
"block period",
"name ocsetting",
"type keystring all first last frequency steps",
"shape",
"tagged false",
"in_record true",
"reader urword",
],
[
"block period",
"name all",
"type keyword",
"shape",
"in_record true",
"reader urword",
],
[
"block period",
"name first",
"type keyword",
"shape",
"in_record true",
"reader urword",
],
[
"block period",
"name last",
"type keyword",
"shape",
"in_record true",
"reader urword",
],
[
"block period",
"name frequency",
"type integer",
"shape",
"tagged true",
"in_record true",
"reader urword",
],
[
"block period",
"name steps",
"type integer",
"shape (<nstp)",
"tagged true",
"in_record true",
"reader urword",
],
]
def __init__(
self,
model,
loading_package=False,
budget_filerecord=None,
budgetcsv_filerecord=None,
track_filerecord=None,
trackcsv_filerecord=None,
track_release=None,
track_exit=None,
track_timestep=None,
track_terminate=None,
track_weaksink=None,
track_usertime=None,
track_timesrecord=None,
track_timesfilerecord=None,
ntracktimes=None,
tracktimes=None,
saverecord=None,
printrecord=None,
filename=None,
pname=None,
**kwargs,
):
"""
ModflowPrtoc defines a OC package.
Parameters
----------
model
Model that this package is a part of. Package is automatically
added to model when it is initialized.
loading_package : bool
Do not set this parameter. It is intended for debugging and internal
processing purposes only.
budget_filerecord : record
budgetcsv_filerecord : record
track_filerecord : record
trackcsv_filerecord : record
track_release : keyword
keyword to indicate that particle tracking output is to be written when a
particle is released
track_exit : keyword
keyword to indicate that particle tracking output is to be written when a
particle exits a feature (a model, cell, or subcell)
track_timestep : keyword
keyword to indicate that particle tracking output is to be written at the end
of each time step
track_terminate : keyword
keyword to indicate that particle tracking output is to be written when a
particle terminates for any reason
track_weaksink : keyword
keyword to indicate that particle tracking output is to be written when a
particle exits a weak sink (a cell which removes some but not all inflow from
adjacent cells)
track_usertime : keyword
keyword to indicate that particle tracking output is to be written at user-
specified times, provided as double precision values in the tracktimes block.
track_timesrecord : (track_times, times)
* track_times : keyword
keyword indicating tracking times will follow
* times : [double precision]
times to track, relative to the beginning of the simulation.
track_timesfilerecord : record
ntracktimes : integer
is the number of user-specified particle tracking times in the tracktimes
block.
tracktimes : [list]
saverecord : (save, rtype, ocsetting)
* save : keyword
keyword to indicate that information will be saved this stress period.
* rtype : string
type of information to save or print. Can only be BUDGET.
* ocsetting : keystring all first last frequency steps
specifies the steps for which the data will be saved.
printrecord : (print, rtype, ocsetting)
* print : keyword
keyword to indicate that information will be printed this stress period.
* rtype : string
type of information to save or print. Can only be BUDGET.
* ocsetting : keystring all first last frequency steps
specifies the steps for which the data will be saved.
filename : str
File name for this package.
pname : str
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.
"""
super().__init__(model, "oc", filename, pname, loading_package, **kwargs)
self.budget_filerecord = self.build_mfdata(
"budget_filerecord", budget_filerecord
)
self.budgetcsv_filerecord = self.build_mfdata(
"budgetcsv_filerecord", budgetcsv_filerecord
)
self.track_filerecord = self.build_mfdata("track_filerecord", track_filerecord)
self.trackcsv_filerecord = self.build_mfdata(
"trackcsv_filerecord", trackcsv_filerecord
)
self.track_release = self.build_mfdata("track_release", track_release)
self.track_exit = self.build_mfdata("track_exit", track_exit)
self.track_timestep = self.build_mfdata("track_timestep", track_timestep)
self.track_terminate = self.build_mfdata("track_terminate", track_terminate)
self.track_weaksink = self.build_mfdata("track_weaksink", track_weaksink)
self.track_usertime = self.build_mfdata("track_usertime", track_usertime)
self.track_timesrecord = self.build_mfdata(
"track_timesrecord", track_timesrecord
)
self.track_timesfilerecord = self.build_mfdata(
"track_timesfilerecord", track_timesfilerecord
)
self.ntracktimes = self.build_mfdata("ntracktimes", ntracktimes)
self.tracktimes = self.build_mfdata("tracktimes", tracktimes)
self.saverecord = self.build_mfdata("saverecord", saverecord)
self.printrecord = self.build_mfdata("printrecord", printrecord)
self._init_complete = True