Skip to content

Commit 00760a4

Browse files
read Number of Doublets as Well Bores parameter (WIP)
1 parent d382bf9 commit 00760a4

File tree

2 files changed

+65
-2
lines changed

2 files changed

+65
-2
lines changed

src/geophires_x/WellBores.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -713,7 +713,7 @@ def __init__(self, model: Model):
713713
DefaultValue=2,
714714
AllowableRange=list(range(1, 201, 1)),
715715
UnitType=Units.NONE,
716-
Required=True,
716+
Required=False,
717717
ErrMessage="assume default number of production wells (2)",
718718
ToolTipText="Number of (identical) production wells"
719719
)
@@ -722,10 +722,17 @@ def __init__(self, model: Model):
722722
DefaultValue=2,
723723
AllowableRange=list(range(0, 201, 1)),
724724
UnitType=Units.NONE,
725-
Required=True,
725+
Required=False,
726726
ErrMessage="assume default number of injection wells (2)",
727727
ToolTipText="Number of (identical) injection wells"
728728
)
729+
self.doublets_count = self.ParameterDict[self.doublets_count.Name] = intParameter(
730+
"Number of Doublets",
731+
DefaultValue=2,
732+
AllowableRange=list(range(0, 201, 1)),
733+
UnitType=Units.NONE,
734+
ToolTipText="Number of doublets" # FIXME WIP
735+
)
729736
self.prodwelldiam = self.ParameterDict[self.prodwelldiam.Name] = floatParameter(
730737
"Production Well Diameter",
731738
DefaultValue=8.0,
@@ -1317,6 +1324,11 @@ def read_parameters(self, model: Model) -> None:
13171324

13181325
coerce_int_params_to_enum_values(self.ParameterDict)
13191326

1327+
if self.doublets_count.Provided:
1328+
# FIXME WIP validate that ninj/nprod haven't been provided and vice versa
1329+
self.ninj.value = self.doublets_count.value
1330+
self.nprod.value = self.doublets_count.value
1331+
13201332
model.logger.info(f"read parameters complete {self.__class__.__name__}: {__name__}")
13211333

13221334
def Calculate(self, model: Model) -> None:
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
from __future__ import annotations
2+
3+
4+
from base_test_case import BaseTestCase
5+
6+
# ruff: noqa: I001 # Successful module initialization is dependent on this specific import order.
7+
8+
# noinspection PyProtectedMember
9+
10+
# noinspection PyProtectedMember
11+
from geophires_x_client import GeophiresInputParameters
12+
from geophires_x_client import GeophiresXClient
13+
from geophires_x_client import GeophiresXResult
14+
15+
16+
class WellBoresTestCase(BaseTestCase):
17+
18+
def test_number_of_doublets(self):
19+
def _get_result(_params) -> GeophiresXResult:
20+
params = GeophiresInputParameters(
21+
{
22+
'Reservoir Depth': 5,
23+
'Gradient 1': 74,
24+
'Power Plant Type': 2,
25+
'Maximum Temperature': 600,
26+
}
27+
| _params
28+
)
29+
return GeophiresXClient().get_geophires_result(params)
30+
31+
def _prod_inj(_r: GeophiresXResult) -> tuple[int, int]:
32+
return (
33+
_r.result['ENGINEERING PARAMETERS']['Number of Production Wells']['value'],
34+
_r.result['ENGINEERING PARAMETERS']['Number of Injection Wells']['value'],
35+
)
36+
37+
r_prod_inj: GeophiresXResult = _get_result(
38+
{
39+
'Number of Production Wells': 10,
40+
'Number of Injection Wells': 10,
41+
}
42+
)
43+
44+
r_doublets: GeophiresXResult = _get_result(
45+
{
46+
'Number of Doublets': 10,
47+
}
48+
)
49+
50+
self.assertEqual(_prod_inj(r_doublets), _prod_inj(r_prod_inj))
51+
# FIXME WIP assert results look superficially equal

0 commit comments

Comments
 (0)