Skip to content

Commit b2b624a

Browse files
committed
fix Sheffield costing model
1 parent 6449256 commit b2b624a

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

src/actors/costing/sheffield_costing_actor.jl

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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)
292292
end
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)
299299
end
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)
313313
end
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)
320320
end
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)
327327
end
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)
336336
end
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)
368368
end
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(
457457
end
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)
462462
end
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)
@@ -471,7 +471,7 @@ end
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

Comments
 (0)