Skip to content

Commit cfbcb9f

Browse files
Parameterize Reservoir Stimulation Capital Cost per Injection Well
1 parent b4d7130 commit cfbcb9f

File tree

2 files changed

+28
-3
lines changed

2 files changed

+28
-3
lines changed

src/geophires_x/Economics.py

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -572,6 +572,7 @@ def __init__(self, model: Model):
572572
ToolTipText="Specify the economic model to calculate the levelized cost of energy. " +
573573
'; '.join([f'{it.int_value}: {it.value}' for it in EconomicModel])
574574
)
575+
575576
self.ccstimfixed = self.ParameterDict[self.ccstimfixed.Name] = floatParameter(
576577
"Reservoir Stimulation Capital Cost",
577578
DefaultValue=-1.0,
@@ -584,6 +585,18 @@ def __init__(self, model: Model):
584585
Valid=False,
585586
ToolTipText="Total reservoir stimulation capital cost"
586587
)
588+
self.stimulation_cost_per_injection_well = \
589+
self.ParameterDict[self.stimulation_cost_per_injection_well.Name] = floatParameter(
590+
'Reservoir Stimulation Capital Cost per Injection Well',
591+
DefaultValue=1.25,
592+
Min=0,
593+
Max=100,
594+
UnitType=Units.CURRENCY,
595+
PreferredUnits=CurrencyUnit.MDOLLARS,
596+
CurrentUnits=CurrencyUnit.MDOLLARS,
597+
Provided=False,
598+
ToolTipText='Reservoir stimulation capital cost per injection well'
599+
)
587600
self.ccstimadjfactor = self.ParameterDict[self.ccstimadjfactor.Name] = floatParameter(
588601
"Reservoir Stimulation Capital Cost Adjustment Factor",
589602
DefaultValue=1.0,
@@ -1614,7 +1627,8 @@ def __init__(self, model: Model):
16141627
UnitType=Units.CURRENCY,
16151628
PreferredUnits=CurrencyUnit.MDOLLARS,
16161629
CurrentUnits=CurrencyUnit.MDOLLARS,
1617-
ToolTipText=f'Default correlation: $1.25M per injection well {contingency_and_indirect_costs_tooltip}. '
1630+
ToolTipText=f'Default correlation: ${self.stimulation_cost_per_injection_well.value}M '
1631+
f'per injection well {contingency_and_indirect_costs_tooltip}. '
16181632
f'Provide {self.ccstimadjfactor.Name} to multiply the default correlation. '
16191633
f'Provide {self.ccstimfixed.Name} to override the default correlation and set your own cost.'
16201634
)
@@ -2336,12 +2350,14 @@ def Calculate(self, model: Model) -> None:
23362350
if self.ccstimfixed.Valid:
23372351
self.Cstim.value = self.ccstimfixed.value
23382352
else:
2339-
base_stimulation_cost_MUSD_per_injection_well = 1.25 # TODO parameterize
2353+
stim_cost_per_injection_well = self.stimulation_cost_per_injection_well.quantity().to(
2354+
self.Cstim.CurrentUnits).magnitude
23402355

23412356
# 1.15 for 15% contingency and 1.05 for 5% indirect costs
23422357
# TODO https://github.com/NREL/GEOPHIRES-X/issues/383?title=Parameterize+indirect+cost+factor
2343-
self.Cstim.value = (base_stimulation_cost_MUSD_per_injection_well * self.ccstimadjfactor.value
2358+
self.Cstim.value = (stim_cost_per_injection_well
23442359
* model.wellbores.ninj.value
2360+
* self.ccstimadjfactor.value
23452361
* 1.05 * 1.15)
23462362

23472363
# field gathering system costs (M$)

src/geophires_x_schema_generator/geophires-request.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1395,6 +1395,15 @@
13951395
"minimum": 0,
13961396
"maximum": 1000
13971397
},
1398+
"Reservoir Stimulation Capital Cost per Injection Well": {
1399+
"description": "Reservoir stimulation capital cost per injection well",
1400+
"type": "number",
1401+
"units": "MUSD",
1402+
"category": "Economics",
1403+
"default": 1.25,
1404+
"minimum": 0,
1405+
"maximum": 100
1406+
},
13981407
"Reservoir Stimulation Capital Cost Adjustment Factor": {
13991408
"description": "Multiplier for built-in reservoir stimulation capital cost correlation",
14001409
"type": "number",

0 commit comments

Comments
 (0)