Skip to content

Commit aa5d90b

Browse files
Migrate input string parsing to ReservoirModel
1 parent 34d0191 commit aa5d90b

File tree

2 files changed

+35
-24
lines changed

2 files changed

+35
-24
lines changed

src/geophires_x/OptionList.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,39 @@ class ReservoirModel(str, Enum):
6565
TOUGH2_SIMULATOR = "TOUGH2 Simulator"
6666
SUTRA = "SUTRA"
6767

68+
@staticmethod
69+
def get_reservoir_model_from_input_string(input_string:str):
70+
"""
71+
:rtype: ReservoirModel
72+
"""
73+
74+
if input_string == '0':
75+
# Simply Cylindrical Model
76+
return ReservoirModel.CYLINDRICAL
77+
elif input_string == '1':
78+
# Multiple parallel fractures model (LANL)
79+
return ReservoirModel.MULTIPLE_PARALLEL_FRACTURES
80+
elif input_string == '2':
81+
# Volumetric block model (1D linear heat sweep model (Stanford))
82+
return ReservoirModel.LINEAR_HEAT_SWEEP
83+
elif input_string == '3':
84+
# Drawdown parameter model (Tester)
85+
return ReservoirModel.SINGLE_FRACTURE
86+
elif input_string == '4':
87+
# Thermal drawdown percentage model (GETEM)
88+
return ReservoirModel.ANNUAL_PERCENTAGE
89+
elif input_string == '5':
90+
# Generic user-provided temperature profile
91+
return ReservoirModel.USER_PROVIDED_PROFILE
92+
elif input_string == '6':
93+
# TOUGH2 is called
94+
return ReservoirModel.TOUGH2_SIMULATOR
95+
elif input_string == '7':
96+
# SUTRA Simulator
97+
return ReservoirModel.SUTRA
98+
99+
raise ValueError(f'Unknown Reservoir Model input value: {input_string}')
100+
68101

69102
class ReservoirVolume(str, Enum):
70103
FRAC_NUM_SEP = "Specify number of fractures and fracture separation"

src/geophires_x/Reservoir.py

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -558,30 +558,8 @@ def read_parameters(self, model: Model) -> None:
558558

559559
# handle special cases
560560
if ParameterToModify.Name == "Reservoir Model":
561-
if ParameterReadIn.sValue == '0':
562-
# Simply Cylindrical Model
563-
ParameterToModify.value = ReservoirModel.CYLINDRICAL
564-
elif ParameterReadIn.sValue == '1':
565-
# Multiple parallel fractures model (LANL)
566-
ParameterToModify.value = ReservoirModel.MULTIPLE_PARALLEL_FRACTURES
567-
elif ParameterReadIn.sValue == '2':
568-
# Volumetric block model (1D linear heat sweep model (Stanford))
569-
ParameterToModify.value = ReservoirModel.LINEAR_HEAT_SWEEP
570-
elif ParameterReadIn.sValue == '3':
571-
# Drawdown parameter model (Tester)
572-
ParameterToModify.value = ReservoirModel.SINGLE_FRACTURE
573-
elif ParameterReadIn.sValue == '4':
574-
# Thermal drawdown percentage model (GETEM)
575-
ParameterToModify.value = ReservoirModel.ANNUAL_PERCENTAGE
576-
elif ParameterReadIn.sValue == '5':
577-
# Generic user-provided temperature profile
578-
ParameterToModify.value = ReservoirModel.USER_PROVIDED_PROFILE
579-
elif ParameterReadIn.sValue == '6':
580-
# TOUGH2 is called
581-
ParameterToModify.value = ReservoirModel.TOUGH2_SIMULATOR
582-
elif ParameterReadIn.sValue == '7':
583-
# SUTRA Simulator
584-
ParameterToModify.value = ReservoirModel.SUTRA
561+
ParameterToModify.value = ReservoirModel.get_reservoir_model_from_input_string(
562+
ParameterReadIn.sValue)
585563

586564
elif ParameterToModify.Name == 'Reservoir Depth':
587565
# FIXME TODO only convert if current units are km

0 commit comments

Comments
 (0)