@@ -572,6 +572,7 @@ def __init__(self, model: Model):
572
572
ToolTipText = "Specify the economic model to calculate the levelized cost of energy. " +
573
573
'; ' .join ([f'{ it .int_value } : { it .value } ' for it in EconomicModel ])
574
574
)
575
+
575
576
self .ccstimfixed = self .ParameterDict [self .ccstimfixed .Name ] = floatParameter (
576
577
"Reservoir Stimulation Capital Cost" ,
577
578
DefaultValue = - 1.0 ,
@@ -584,6 +585,18 @@ def __init__(self, model: Model):
584
585
Valid = False ,
585
586
ToolTipText = "Total reservoir stimulation capital cost"
586
587
)
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
+ )
587
600
self .ccstimadjfactor = self .ParameterDict [self .ccstimadjfactor .Name ] = floatParameter (
588
601
"Reservoir Stimulation Capital Cost Adjustment Factor" ,
589
602
DefaultValue = 1.0 ,
@@ -1614,7 +1627,8 @@ def __init__(self, model: Model):
1614
1627
UnitType = Units .CURRENCY ,
1615
1628
PreferredUnits = CurrencyUnit .MDOLLARS ,
1616
1629
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 } . '
1618
1632
f'Provide { self .ccstimadjfactor .Name } to multiply the default correlation. '
1619
1633
f'Provide { self .ccstimfixed .Name } to override the default correlation and set your own cost.'
1620
1634
)
@@ -2336,12 +2350,14 @@ def Calculate(self, model: Model) -> None:
2336
2350
if self .ccstimfixed .Valid :
2337
2351
self .Cstim .value = self .ccstimfixed .value
2338
2352
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
2340
2355
2341
2356
# 1.15 for 15% contingency and 1.05 for 5% indirect costs
2342
2357
# 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
2344
2359
* model .wellbores .ninj .value
2360
+ * self .ccstimadjfactor .value
2345
2361
* 1.05 * 1.15 )
2346
2362
2347
2363
# field gathering system costs (M$)
0 commit comments