# 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 ModflowGwfchdg(MFPackage):
"""
ModflowGwfchdg defines a CHDG package.
Parameters
----------
model
Model that this package is a part of. Package is automatically
added to model when it is initialized.
loading_package : bool, default False
Do not set this parameter. It is intended for debugging and internal
processing purposes only.
auxiliary : [string]
defines an array of one or more auxiliary variable names. there is no limit on
the number of auxiliary variables that can be provided on this line; however,
lists of information provided in subsequent blocks must have a column of data
for each auxiliary variable name defined here. the number of auxiliary
variables detected on this line determines the value for naux. comments cannot
be provided anywhere on this line as they will be interpreted as auxiliary
variable names. auxiliary variables may not be used by the package, but they
will be available for use by other parts of the program. the program will
terminate with an error if auxiliary variables are specified on more than one
line in the options block.
auxmultname : string
name of auxiliary variable to be used as multiplier of chd head value.
print_input : keyword
keyword to indicate that the list of constant-head information will be written
to the listing file immediately after it is read.
print_flows : keyword
keyword to indicate that the list of constant-head flow rates will be printed
to the listing file for every stress period time step in which 'budget print'
is specified in output control. if there is no output control option and
'print_flows' is specified, then flow rates are printed for the last time step
of each stress period.
save_flows : keyword
keyword to indicate that constant-head flow terms will be written to the file
specified with 'budget fileout' in output control.
observations : record obs6 filein obs6_filename
Contains data for the obs package. Data can be passed as a dictionary to the
obs package with variable names as keys and package data as values. Data for
the observations variable is also acceptable. See obs package documentation for
more information.
export_array_netcdf : keyword
keyword that specifies input gridded arrays should be written to the model
output netcdf file with attributes that support using the generated file as a
modflow 6 simulation input. this option only has an effect when an output
model netcdf file is configured and the simulation is run in validate mode,
otherwise it is ignored.
dev_no_newton : keyword
turn off newton for unconfined cells
maxbound : integer
integer value specifying the maximum number of constant-head cells that will be
specified for use during any stress period.
head : [double precision]
is the head at the boundary.
aux : [double precision]
is an array of values for auxiliary variable aux(iaux), where iaux is a value
from 1 to naux, and aux(iaux) must be listed as part of the auxiliary
variables. a separate array can be specified for each auxiliary variable. if
the value specified here for the auxiliary variable is the same as auxmultname,
then the head array will be multiplied by this array.
filename : str or PathLike, optional
Name or path of file where this package is stored.
pname : str, optional
Package name.
**kwargs
Extra keywords for :class:`flopy.mf6.mfpackage.MFPackage`.
"""
auxiliary = ArrayTemplateGenerator(("gwf6", "chdg", "options", "auxiliary"))
obs_filerecord = ListTemplateGenerator(
("gwf6", "chdg", "options", "obs_filerecord")
)
head = ArrayTemplateGenerator(("gwf6", "chdg", "period", "head"))
aux = ArrayTemplateGenerator(("gwf6", "chdg", "period", "aux"))
package_abbr = "gwfchdg"
_package_type = "chdg"
dfn_file_name = "gwf-chdg.dfn"
dfn = [
["header", "multi-package", "package-type stress-package"],
[
"block options",
"name readarraygrid",
"type keyword",
"reader urword",
"optional false",
"developmode true",
"default true",
],
[
"block options",
"name auxiliary",
"type string",
"shape (naux)",
"reader urword",
"optional true",
],
[
"block options",
"name auxmultname",
"type string",
"shape",
"reader urword",
"optional true",
],
[
"block options",
"name print_input",
"type keyword",
"reader urword",
"optional true",
"mf6internal iprpak",
],
[
"block options",
"name print_flows",
"type keyword",
"reader urword",
"optional true",
"mf6internal iprflow",
],
[
"block options",
"name save_flows",
"type keyword",
"reader urword",
"optional true",
"mf6internal ipakcb",
],
[
"block options",
"name obs_filerecord",
"type record obs6 filein obs6_filename",
"shape",
"reader urword",
"tagged true",
"optional true",
"construct_package obs",
"construct_data observations",
"parameter_name continuous",
],
[
"block options",
"name obs6",
"type keyword",
"shape",
"in_record true",
"reader urword",
"tagged true",
"optional false",
],
[
"block options",
"name filein",
"type keyword",
"shape",
"in_record true",
"reader urword",
"tagged true",
"optional false",
],
[
"block options",
"name obs6_filename",
"type string",
"preserve_case true",
"in_record true",
"tagged false",
"reader urword",
"optional false",
],
[
"block options",
"name export_array_netcdf",
"type keyword",
"reader urword",
"optional true",
"mf6internal export_nc",
"extended true",
],
[
"block options",
"name dev_no_newton",
"type keyword",
"reader urword",
"optional true",
"mf6internal inewton",
],
[
"block dimensions",
"name maxbound",
"type integer",
"reader urword",
"optional true",
],
[
"block period",
"name iper",
"type integer",
"block_variable true",
"in_record true",
"tagged false",
"shape",
"valid",
"reader urword",
"optional false",
],
[
"block period",
"name head",
"type double precision",
"shape (nodes)",
"reader readarray",
"layered true",
"netcdf true",
"default 3.e30",
],
[
"block period",
"name aux",
"type double precision",
"shape (nodes)",
"reader readarray",
"layered true",
"netcdf true",
"optional true",
"mf6internal auxvar",
],
]
def __init__(
self,
model,
loading_package=False,
auxiliary=None,
auxmultname=None,
print_input=None,
print_flows=None,
save_flows=None,
observations=None,
export_array_netcdf=None,
dev_no_newton=None,
maxbound=None,
head=3e30,
aux=None,
filename=None,
pname=None,
**kwargs,
):
"""Initialize ModflowGwfchdg."""
super().__init__(
parent=model,
package_type="chdg",
filename=filename,
pname=pname,
loading_package=loading_package,
**kwargs,
)
self.auxiliary = self.build_mfdata("auxiliary", auxiliary)
self.auxmultname = self.build_mfdata("auxmultname", auxmultname)
self.print_input = self.build_mfdata("print_input", print_input)
self.print_flows = self.build_mfdata("print_flows", print_flows)
self.save_flows = self.build_mfdata("save_flows", save_flows)
self._obs_filerecord = self.build_mfdata("obs_filerecord", None)
self._obs_package = self.build_child_package(
"obs", observations, "continuous", self._obs_filerecord
)
self.export_array_netcdf = self.build_mfdata(
"export_array_netcdf", export_array_netcdf
)
self.dev_no_newton = self.build_mfdata("dev_no_newton", dev_no_newton)
self.maxbound = self.build_mfdata("maxbound", maxbound)
self.head = self.build_mfdata("head", head)
self.aux = self.build_mfdata("aux", aux)
self._init_complete = True