Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion flopy4/mf6/gwf/chd.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from pathlib import Path
from typing import Optional
from typing import ClassVar, Optional

import numpy as np
from attrs import Converter, define
Expand All @@ -13,6 +13,8 @@

@xattree
class Chd(Package):
multi_package: ClassVar[bool] = True

@define(slots=False)
class Steps:
all: bool = field()
Expand Down
5 changes: 4 additions & 1 deletion flopy4/mf6/ims.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from pathlib import Path
from typing import Optional
from typing import ClassVar, Optional

from modflow_devtools.dfn import Sln
from xattree import xattree

from flopy4.mf6.solution import Solution
Expand All @@ -9,6 +10,8 @@

@xattree
class Ims(Solution):
solution_package: ClassVar[Sln] = Sln(abbr="ims", pattern="*")

print_option: bool = field(block="options", default=False)
complexity: str = field(block="options", default="simple")
csv_outer_output_file: Optional[Path] = field(default=None, block="options")
Expand Down
26 changes: 26 additions & 0 deletions test/test_component.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@
import pytest
from flopy.discretization import StructuredGrid
from flopy.discretization.modeltime import ModelTime
from modflow_devtools.dfn import Sln
from xarray import DataTree

from flopy4.mf6.component import COMPONENTS
from flopy4.mf6.constants import FILL_DNODATA
from flopy4.mf6.gwf import Chd, Dis, Gwf, Ic, Npf, Oc
from flopy4.mf6.ims import Ims
from flopy4.mf6.simulation import Simulation
from flopy4.mf6.tdis import Tdis

Expand Down Expand Up @@ -242,3 +244,27 @@ def test_gwf_dfn():
assert dfn["ref"] is None
assert dfn["sln"] is None
assert "save_flows" in set(dfn["options"].keys())


def test_chd_dfn():
chd = Chd(strict=False)
dfn = chd.dfn
assert dfn["name"] == "chd"
assert not dfn["advanced"]
assert dfn["multi"]
assert dfn["ref"] is None
assert dfn["sln"] is None
assert "print_input" in set(dfn["options"].keys())
assert "head" in set(dfn["period"].keys())


def test_ims_dfn():
ims = Ims(strict=False)
dfn = ims.dfn
assert dfn["name"] == "ims"
assert not dfn["advanced"]
assert not dfn["multi"]
assert dfn["ref"] is None
assert dfn["sln"] == Sln(abbr="ims", pattern="*")
assert "complexity" in set(dfn["options"].keys())
assert "inner_maximum" in set(dfn["linear"].keys())
Loading