@@ -284,21 +284,21 @@ end
284284#= =================== =#
285285
286286# Equation 18 in Generic magnetic fusion reactor revisited, Sheffield and Milora, FS&T 70 (2016)
287- function cost_direct_capital_Sheffield (:: Val{:main_heat_transfer_system} , power_thermal:: Real , da:: DollarAdjust )
287+ function cost_direct_capital_Sheffield (:: Val{:main_heat_transfer_system} , power_thermal:: Real , da:: DollarAdjust{T} ) where {T <: Real }
288288 da. year_assessed = 2016
289289 power_thermal = power_thermal / 1e6 # want this in megawatts
290290 cost = 221 * (power_thermal / 4150 )^ 0.6
291291 return future_dollars (cost, da)
292292end
293293
294- function cost_direct_capital_Sheffield (:: Val{:tf_coils} , cst:: IMAS.costing , bd:: IMAS.build , da:: DollarAdjust )
294+ function cost_direct_capital_Sheffield (:: Val{:tf_coils} , cst:: IMAS.costing , bd:: IMAS.build , da:: DollarAdjust{T} ) where {T <: Real }
295295 da. year_assessed = 2016 # Year the materials costs were assessed
296296 tf_coils_hfs = IMAS. get_build_layer (bd. layer; type= IMAS. _tf_, fs= _hfs_)
297297 cost = 1.5 * tf_coils_hfs. volume * (unit_cost (bd. tf. technology, cst) * (1.0 - bd. tf. nose_hfs_fraction) .+ unit_cost (Material (:steel ), cst) * bd. tf. nose_hfs_fraction)
298298 return future_dollars (cost, da)
299299end
300300
301- function cost_direct_capital_Sheffield (:: Val{:shields} , cst:: IMAS.costing , bd:: IMAS.build , da:: DollarAdjust )
301+ function cost_direct_capital_Sheffield (:: Val{:shields} , cst:: IMAS.costing , bd:: IMAS.build , da:: DollarAdjust{T} ) where {T <: Real }
302302 da. year_assessed = 2016
303303 shields_hfs = IMAS. get_build_layers (bd. layer; type= IMAS. _shield_, fs= _hfs_)
304304
@@ -312,30 +312,30 @@ function cost_direct_capital_Sheffield(::Val{:shields}, cst::IMAS.costing, bd::I
312312 return future_dollars (1.25 * cost, da)
313313end
314314
315- function cost_direct_capital_Sheffield (:: Val{:structure} , cst:: IMAS.costing , bd:: IMAS.build , da:: DollarAdjust )
315+ function cost_direct_capital_Sheffield (:: Val{:structure} , cst:: IMAS.costing , bd:: IMAS.build , da:: DollarAdjust{T} ) where {T <: Real }
316316 da. year_assessed = 2016
317317 tf_coils_hfs = IMAS. get_build_layer (bd. layer; type= IMAS. _tf_, fs= _hfs_)
318318 cost = 0.75 * tf_coils_hfs. volume * unit_cost (Material (:steel ), cst)
319319 return future_dollars (cost, da)
320320end
321321
322- function cost_direct_capital_Sheffield (:: Val{:aux_power} , ec_power:: Real , ic_power:: Real , lh_power:: Real , nb_power:: Real , da:: DollarAdjust )
322+ function cost_direct_capital_Sheffield (:: Val{:aux_power} , ec_power:: Real , ic_power:: Real , lh_power:: Real , nb_power:: Real , da:: DollarAdjust{T} ) where {T <: Real }
323323 da. year_assessed = 2016
324324 aux_power = ec_power + ic_power + lh_power + nb_power
325325 cost = 1.1 * (aux_power * 5.3 ) * 1e-6 # convert to M$
326326 return future_dollars (cost, da)
327327end
328328
329329# Equation 19
330- function cost_direct_capital_Sheffield (:: Val{:balance_of_plant} , power_electric_net:: Real , power_thermal:: Real , da:: DollarAdjust )
330+ function cost_direct_capital_Sheffield (:: Val{:balance_of_plant} , power_electric_net:: Real , power_thermal:: Real , da:: DollarAdjust{T} ) where {T <: Real }
331331 da. year_assessed = 2010 # pg. 19 of Generic magnetic fusion reactor revisited
332332 power_electric_net = power_electric_net / 1e6 # want input for power electric net, power_thermal in megawatts
333333 power_thermal = power_thermal / 1e6
334334 cost = 900 + 900 * (power_electric_net / 1200 ) * (power_thermal / 4150 )^ 0.6
335335 return future_dollars (cost, da)
336336end
337337
338- function cost_direct_capital_Sheffield (:: Val{:buildings} , bd:: IMAS.build , da:: DollarAdjust )
338+ function cost_direct_capital_Sheffield (:: Val{:buildings} , bd:: IMAS.build , da:: DollarAdjust{T} ) where {T <: Real }
339339 da. year_assessed = 2016
340340
341341 vol_fusion_island = 0.0
@@ -367,7 +367,7 @@ function cost_direct_capital_Sheffield(::Val{:blanket}, cap::Bool, dd::IMAS.dd,
367367 return future_dollars (cost, da)
368368end
369369
370- function cost_direct_capital_Sheffield (:: Val{:divertor} , cap:: Bool , dd:: IMAS.dd , da:: DollarAdjust )
370+ function cost_direct_capital_Sheffield (:: Val{:divertor} , cap:: Bool , dd:: IMAS.dd , da:: DollarAdjust{T} ) where {T <: Real }
371371 da. year_assessed = 2016
372372
373373 if cap == false
@@ -396,7 +396,7 @@ function cost_fuel_Sheffield(
396396 neutron_flux:: Real ,
397397 blanket_fluence_lifetime:: Real ,
398398 power_electric_net:: Real ,
399- da:: DollarAdjust )
399+ da:: DollarAdjust{T} ) where {T <: Real }
400400
401401 da. year_assessed = 2016
402402
@@ -436,7 +436,7 @@ function cost_fuel_Sheffield(
436436 thermal_flux:: Real ,
437437 divertor_fluence_lifetime:: Real ,
438438 power_electric_net,
439- da:: DollarAdjust )
439+ da:: DollarAdjust{T} ) where {T <: Real }
440440
441441 da. year_assessed = 2016
442442
@@ -457,11 +457,11 @@ function cost_fuel_Sheffield(
457457end
458458
459459# Table III
460- function cost_fuel_Sheffield (:: Val{:aux_power} , ec_power:: Real , ic_power:: Real , lh_power:: Real , nb_power:: Real , da:: DollarAdjust )
461- return 0.1 * cost_direct_capital_Sheffield (Val{ :aux_power } , ec_power, ic_power, lh_power, nb_power, da)
460+ function cost_fuel_Sheffield (:: Val{:aux_power} , ec_power:: Real , ic_power:: Real , lh_power:: Real , nb_power:: Real , da:: DollarAdjust{T} ) where {T <: Real }
461+ return 0.1 * cost_direct_capital_Sheffield (Val ( :aux_power ) , ec_power, ic_power, lh_power, nb_power, da)
462462end
463463
464- function cost_fuel_Sheffield (:: Val{:misc_fuel} , fixed_charge_rate:: Real , da:: DollarAdjust )
464+ function cost_fuel_Sheffield (:: Val{:misc_fuel} , fixed_charge_rate:: Real , da:: DollarAdjust{T} ) where {T <: Real }
465465 da. year_assessed = 1983
466466 cost = 24 * fixed_charge_rate + 0.4 # $M/yr # 24*FCR for misc. replacements plus 0.4 M$ for fuel costs (in 1983 dollars)
467467 return future_dollars (cost, da)
471471# yearly operations cost #
472472#= ====================== =#
473473
474- function cost_operations_maintenance_Sheffield (power_electric_net:: Real , da:: DollarAdjust )
474+ function cost_operations_maintenance_Sheffield (power_electric_net:: Real , da:: DollarAdjust{T} ) where {T <: Real }
475475 da. year_assessed = 1983
476476 if power_electric_net == 0.0
477477 cost = 49.1 # $M/yr
0 commit comments