Skip to content

Commit 1c31b74

Browse files
ReservoirVolume values enum
1 parent 9dff711 commit 1c31b74

File tree

3 files changed

+46
-16
lines changed

3 files changed

+46
-16
lines changed

src/geophires_x/OptionList.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -115,11 +115,25 @@ def from_int(int_val):
115115
return member
116116

117117

118-
class ReservoirVolume(str, Enum):
119-
FRAC_NUM_SEP = "Specify number of fractures and fracture separation"
120-
RES_VOL_FRAC_SEP = "Specify reservoir volume and fracture separation"
121-
RES_VOL_FRAC_NUM = "Specify reservoir volume and number of fractures"
122-
RES_VOL_ONLY = "Specify reservoir volume only"
118+
class ReservoirVolume(GeophiresInputEnum):
119+
FRAC_NUM_SEP = 1, "Specify number of fractures and fracture separation"
120+
RES_VOL_FRAC_SEP = 2, "Specify reservoir volume and fracture separation"
121+
RES_VOL_FRAC_NUM = 3, "Specify reservoir volume and number of fractures"
122+
RES_VOL_ONLY = 4, "Specify reservoir volume only"
123+
124+
@staticmethod
125+
def from_int(int_val):
126+
for member in __class__:
127+
if member.int_value == int_val:
128+
return member
129+
130+
@staticmethod
131+
def from_input_string(input_string:str):
132+
for res_vol in ReservoirVolume:
133+
if input_string == str(res_vol.int_value):
134+
return res_vol
135+
136+
raise ValueError(f'Unknown Reservoir Volume input value: {input_string}')
123137

124138

125139
class WellDrillingCostCorrelation(GeophiresInputEnum):

src/geophires_x/Reservoir.py

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -223,8 +223,9 @@ def __init__(self, model: Model):
223223

224224
self.resvoloption = self.ParameterDict[self.resvoloption.Name] = intParameter(
225225
"Reservoir Volume Option",
226-
DefaultValue=ReservoirVolume.RES_VOL_FRAC_NUM,
226+
DefaultValue=ReservoirVolume.RES_VOL_FRAC_NUM.int_value,
227227
AllowableRange=[1, 2, 3, 4],
228+
ValuesEnum=ReservoirVolume,
228229
Required=True,
229230
UnitType=Units.NONE,
230231
ErrMessage="assume default reservoir volume option",
@@ -567,14 +568,7 @@ def read_parameters(self, model: Model) -> None:
567568
ParameterToModify.CurrentUnits = LengthUnit.METERS
568569

569570
elif ParameterToModify.Name == "Reservoir Volume Option":
570-
if ParameterReadIn.sValue == '1':
571-
ParameterToModify.value = ReservoirVolume.FRAC_NUM_SEP
572-
elif ParameterReadIn.sValue == '2':
573-
ParameterToModify.value = ReservoirVolume.RES_VOL_FRAC_SEP
574-
elif ParameterReadIn.sValue == '3':
575-
ParameterToModify.value = ReservoirVolume.RES_VOL_FRAC_NUM
576-
else:
577-
ParameterToModify.value = ReservoirVolume.RES_VOL_ONLY
571+
ParameterToModify.value = ReservoirVolume.from_input_string(ParameterReadIn.sValue)
578572

579573
if ParameterToModify.value == ReservoirVolume.RES_VOL_ONLY and ParameterToModify.value in [
580574
ReservoirModel.MULTIPLE_PARALLEL_FRACTURES, ReservoirModel.LINEAR_HEAT_SWEEP]:

src/geophires_x_schema_generator/geophires-request.json

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,9 +225,31 @@
225225
"type": "integer",
226226
"units": null,
227227
"category": "Reservoir",
228-
"default": "Specify reservoir volume and number of fractures",
228+
"default": 3,
229229
"minimum": 1,
230-
"maximum": 4
230+
"maximum": 4,
231+
"enum_values": [
232+
{
233+
"name": "FRAC_NUM_SEP",
234+
"value": "Specify number of fractures and fracture separation",
235+
"int_value": 1
236+
},
237+
{
238+
"name": "RES_VOL_FRAC_SEP",
239+
"value": "Specify reservoir volume and fracture separation",
240+
"int_value": 2
241+
},
242+
{
243+
"name": "RES_VOL_FRAC_NUM",
244+
"value": "Specify reservoir volume and number of fractures",
245+
"int_value": 3
246+
},
247+
{
248+
"name": "RES_VOL_ONLY",
249+
"value": "Specify reservoir volume only",
250+
"int_value": 4
251+
}
252+
]
231253
},
232254
"Fracture Shape": {
233255
"description": "Specifies the shape of the (identical) fractures in a fracture-based reservoir: 1: Circular fracture with known area, 2: Circular fracture with known diameter, 3: Square fracture, 4: Rectangular fracture",

0 commit comments

Comments
 (0)