Skip to content

Commit 4a47d72

Browse files
authored
hack ims in (#105)
1 parent 709f271 commit 4a47d72

File tree

2 files changed

+91
-1
lines changed

2 files changed

+91
-1
lines changed

docs/examples/quickstart.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
import numpy as np
22

33
from flopy4.mf6.gwf import Chd, Dis, Gwf, Ic, Npf, Oc
4+
from flopy4.mf6.ims import Ims
45
from flopy4.mf6.simulation import Simulation
56
from flopy4.mf6.tdis import Tdis
67

78
ws = "./mymodel"
89
name = "mymodel"
910
tdis = Tdis()
10-
sim = Simulation(name=name, tdis=tdis)
11+
ims = Ims()
12+
sim = Simulation(name=name, tdis=tdis, solutions={"ims": ims})
1113
dis = Dis(nrow=10, ncol=10)
1214
gwf = Gwf(parent=sim, name=name, save_flows=True, dis=dis)
1315
ic = Ic(parent=gwf)

flopy4/mf6/ims.py

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
from pathlib import Path
2+
from typing import Optional
3+
4+
from xattree import field, xattree
5+
6+
from flopy4.mf6.solution import Solution
7+
8+
9+
@xattree
10+
class Ims(Solution):
11+
print_option: bool = field(default=False, metadata={"block": "options"})
12+
complexity: str = field(default="simple", metadata={"block": "options"})
13+
csv_outer_output_file: Optional[Path] = field(
14+
default=None, metadata={"block": "options"}
15+
)
16+
csv_inner_output_file: Optional[Path] = field(
17+
default=None, metadata={"block": "options"}
18+
)
19+
no_ptc: bool = field(default=False, metadata={"block": "options"})
20+
no_ptc_option: Optional[str] = field(
21+
default=None, metadata={"block": "options"}
22+
)
23+
ats_outer_maximum_fraction: Optional[float] = field(
24+
default=None, metadata={"block": "options"}
25+
)
26+
outer_dvclose: Optional[float] = field(
27+
default=None, metadata={"block": "options"}
28+
)
29+
outer_maximum: Optional[int] = field(
30+
default=None, metadata={"block": "options"}
31+
)
32+
under_relaxation: Optional[str] = field(
33+
default=None, metadata={"block": "options"}
34+
)
35+
under_relaxation_gamma: Optional[float] = field(
36+
default=None, metadata={"block": "nonlinear"}
37+
)
38+
under_relaxation_theta: Optional[float] = field(
39+
default=None, metadata={"block": "nonlinear"}
40+
)
41+
under_relaxation_kappa: Optional[float] = field(
42+
default=None, metadata={"block": "nonlinear"}
43+
)
44+
under_relaxation_momentum: Optional[float] = field(
45+
default=None, metadata={"block": "nonlinear"}
46+
)
47+
backtracking_tolerance: Optional[float] = field(
48+
default=None, metadata={"block": "nonlinear"}
49+
)
50+
backtracking_reduction_factor: Optional[float] = field(
51+
default=None, metadata={"block": "nonlinear"}
52+
)
53+
backtracking_residual_limit: Optional[float] = field(
54+
default=None, metadata={"block": "nonlinear"}
55+
)
56+
inner_maximum: Optional[int] = field(
57+
default=None, metadata={"block": "linear"}
58+
)
59+
inner_dvclose: Optional[float] = field(
60+
default=None, metadata={"block": "linear"}
61+
)
62+
inner_rclose: Optional[float] = field(
63+
default=None, metadata={"block": "linear"}
64+
)
65+
rclose_option: Optional[str] = field(
66+
default=None, metadata={"block": "linear"}
67+
)
68+
linear_acceleration: Optional[str] = field(
69+
default=None, metadata={"block": "linear"}
70+
)
71+
relaxation_factor: Optional[float] = field(
72+
default=None, metadata={"block": "linear"}
73+
)
74+
preconditioner_levels: Optional[int] = field(
75+
default=None, metadata={"block": "linear"}
76+
)
77+
preconditioner_drop_tolerance: Optional[float] = field(
78+
default=None, metadata={"block": "linear"}
79+
)
80+
number_orthogonalizations: Optional[int] = field(
81+
default=None, metadata={"block": "linear"}
82+
)
83+
scaling_method: Optional[str] = field(
84+
default=None, metadata={"block": "linear"}
85+
)
86+
reordering_method: Optional[str] = field(
87+
default=None, metadata={"block": "linear"}
88+
)

0 commit comments

Comments
 (0)