bluemira.balance_of_plant.steady_state
Crude 0-D steady-state balance of plant model. Mostly for visualisation purposes.
Attributes
Classes
Pumping power strategy abstract base class |
|
He-cooling pumping power calculation strategy |
|
H20-cooling pumping power calculation strategy |
|
Power cycle efficiency calculation abstract base class |
|
Predetermined efficiency 'calculation' |
|
Superheated Rankine power cycle for use with gas coolants |
|
Strategy ABC for splitting flows according to fractions. |
|
Strategy for distributing radiation and charged particle power from the plasma |
|
Strategy for calculating the parasitic loads |
|
Parameters required to run |
|
Balance of plant calculator for a fusion power reactor. |
Module Contents
- bluemira.balance_of_plant.steady_state.CoolantPumpingT
- class bluemira.balance_of_plant.steady_state.CoolantPumping
Bases:
abc.ABCPumping power strategy abstract base class
- abstract pump(power: float) tuple[float, float]
Calculate the pump work and electrical pumping power required for a given power.
- Parameters:
power (float)
- Return type:
tuple[float, float]
- class bluemira.balance_of_plant.steady_state.HePumping(pressure_in: float, pressure_out: float, temp_in: float, temp_out: float, eta_isentropic: float, eta_electric: float)
Bases:
CoolantPumpingHe-cooling pumping power calculation strategy
- Parameters:
pressure_in (float) – Inlet pressure [Pa]
pressure_out (float) – Pressure drop [Pa]
temp_in (float) – Inlet temperature [K]
temp_out (float) – Outlet temperature [K]
eta_isen – Isentropic efficiency of the He compressors
eta_el – Electrical efficiency of the He compressors
eta_isentropic (float)
eta_electric (float)
- p_in
- p_out
- t_in
- t_out
- eta_isen
- eta_el
- pump(power: float) tuple[float, float]
Calculate the pump work and electrical pumping power required for a given power.
- Parameters:
power (float) – Total blanket power excluding pumping power [W]
- Returns:
P_pump_is – The isentropic pumping power (added to the working fluid)
P_pump_el – The electrical pumping power (parasitic load)
- Return type:
tuple[float, float]
- class bluemira.balance_of_plant.steady_state.H2OPumping(f_pump: float, eta_isentropic: float, eta_electric: float)
Bases:
CoolantPumpingH20-cooling pumping power calculation strategy
- Parameters:
f_pump (float) – Fraction of thermal power required to pump
eta_isen – Isentropic efficiency of the water pumps
eta_el – Electrical efficiency of the water pumps
eta_isentropic (float)
eta_electric (float)
- f_pump
- eta_isen
- eta_el
- pump(power: float) tuple[float, float]
Calculate the pump work and electrical pumping power required for a given power.
- Parameters:
power (float) – Total blanket power excluding pumping power [W]
- Returns:
P_pump_is – The isentropic pumping power (added to the working fluid)
P_pump_el – The eletrical pumping power (parasitic load)
- Return type:
tuple[float, float]
- bluemira.balance_of_plant.steady_state.PowerCycleEfficiencyCalcT
- class bluemira.balance_of_plant.steady_state.PowerCycleEfficiencyCalc
Bases:
abc.ABCPower cycle efficiency calculation abstract base class
- abstract calculate(*args) float
Calculate the efficiency of the power cycle
- Return type:
float
- class bluemira.balance_of_plant.steady_state.PredeterminedEfficiency(efficiency: float)
Bases:
PowerCycleEfficiencyCalcPredetermined efficiency ‘calculation’
- Parameters:
efficiency (float) – The efficiency to ‘calculate’
- efficiency
- calculate(p_blanket: float, p_divertor: float) float
Calculate the efficiency of the power cycle
- Parameters:
p_blanket (float) – Blanket thermal power [MW]
p_divertor (float) – Divertor thermal power [MW]
- Returns:
The efficiency
- Return type:
float
- class bluemira.balance_of_plant.steady_state.SuperheatedRankine(bb_t_out: float, delta_t_turbine: float)
Bases:
PowerCycleEfficiencyCalcSuperheated Rankine power cycle for use with gas coolants
- Parameters:
bb_t_out (float) – Breeding blanket outlet temperature [K]
delta_t_turbine (float) – Turbine inlet delta T [K]
- bb_t_out
- delta_t_turbine
- calculate(p_blanket: float, p_divertor: float) float
Calculate the efficiency of the power cycle
- Parameters:
p_blanket (float) – Blanket thermal power [MW]
p_divertor (float) – Divertor thermal power [MW]
- Returns:
The efficiency of the power cycle
- Return type:
float
- bluemira.balance_of_plant.steady_state.FractionSplitStrategyT
- class bluemira.balance_of_plant.steady_state.FractionSplitStrategy
Bases:
abc.ABCStrategy ABC for splitting flows according to fractions.
- abstract split(*args)
Split flows somehow.
- check_fractions(fractions: collections.abc.Iterable[float])
Check that fractions sum to 1.0
- Raises:
BalanceOfPlantError – If they do not
- Parameters:
fractions (collections.abc.Iterable[float])
- class bluemira.balance_of_plant.steady_state.RadChargedPowerStrategy(f_core_rad_fw: float, f_sol_rad: float, f_sol_rad_fw: float, f_sol_ch_fw: float, f_fw_aux: float)
Bases:
FractionSplitStrategyStrategy for distributing radiation and charged particle power from the plasma core and scrape-off layer
- Parameters:
f_core_rad_fw (float) – Fraction of core radiation power distributed to the first wall
f_sol_rad (float) – Fraction of SOL power that is radiated
f_sol_rad_fw (float) – Fraction of radiated SOL power that is distributed to the first wall
f_sol_ch_fw (float) – Fraction of SOL charged particle power that is distributed to the first wall
f_fw_aux (float) – Fraction of first power that actually goes into auxiliary systems
- f_core_rad_fw
- f_sol_rad
- f_sol_rad_fw
- f_sol_ch_fw
- f_fw_aux
- split(p_radiation: float, p_separatrix: float) tuple[float, float, float]
Split the radiation and charged particle power
- Parameters:
p_radiation (float) – Plasma core radiation power
p_separatrix (float) – Charged particle power crossing the separatrix
- Returns:
p_rad_sep_blk – Radiation power from separatrix to blanket
p_rad_sep_div – Radiation power from separatrix to divertor
p_rad_sep_aux – Radiation power from separatrix to auxiliaries
- Return type:
tuple[float, float, float]
- class bluemira.balance_of_plant.steady_state.ParasiticLoadStrategy
Bases:
abc.ABCStrategy for calculating the parasitic loads
- abstract calculate(**kwargs) tuple[float, float, float, float]
Calculate the parasitic loads somehow
- Returns:
p_mag – Parasitic loads to power the magnets
p_cryo – Parasitic loads to power the cryoplant
p_t_plant – Parasitic loads to power the tritium plant
p_other – Parasitic loads to power other miscellaneous things
- Return type:
tuple[float, float, float, float]
- class bluemira.balance_of_plant.steady_state.BoPModelParams
Bases:
bluemira.base.parameter_frame.ParameterFrameParameters required to run
BalanceOfPlantModel.- P_fus_DT: bluemira.base.parameter_frame.Parameter[float]
- P_fus_DD: bluemira.base.parameter_frame.Parameter[float]
- P_rad: bluemira.base.parameter_frame.Parameter[float]
- P_hcd_ss: bluemira.base.parameter_frame.Parameter[float]
- P_hcd_ss_el: bluemira.base.parameter_frame.Parameter[float]
- P_n_blanket: bluemira.base.parameter_frame.Parameter[float]
- P_n_divertor: bluemira.base.parameter_frame.Parameter[float]
- P_n_vessel: bluemira.base.parameter_frame.Parameter[float]
- P_n_aux: bluemira.base.parameter_frame.Parameter[float]
- P_n_e_mult: bluemira.base.parameter_frame.Parameter[float]
- P_n_decay: bluemira.base.parameter_frame.Parameter[float]
- class bluemira.balance_of_plant.steady_state.BalanceOfPlantModel(params: bluemira.base.parameter_frame.typed.ParameterFrameLike, rad_sep_strat: FractionSplitStrategyT, blanket_pump_strat: CoolantPumpingT, divertor_pump_strat: CoolantPumpingT, bop_cycle_strat: PowerCycleEfficiencyCalcT, parasitic_load_strat: ParasiticLoadStrategy)
Balance of plant calculator for a fusion power reactor.
- Parameters:
params (bluemira.base.parameter_frame.typed.ParameterFrameLike) –
Structure containing input parameters. If this is a dictionary, required keys are:
P_fus_DT: float
P_fus_DD: float
P_rad: float
P_hcd_ss: float
P_hcd_ss_el: float
See
BoPModelParamsfor parameter details.rad_sep_strat (FractionSplitStrategyT) – Strategy to calculate the where the radiation and charged particle power in the scrape-off-layer is carried to
blanket_pump_strat (CoolantPumpingT) – Strategy to calculate the coolant pumping power for the blanket
divertor_pump_strat (CoolantPumpingT) – Strategy to calculate the coolant pumping power for the divertor
bop_cycle_strat (PowerCycleEfficiencyCalcT) – Strategy to calculate the balance of plant thermal efficiency
parasitic_load_strat (ParasiticLoadStrategy) – Strategy to calculate the parasitic loads
Notes
\[\begin{split}P_{el}={\eta}_{BOP} & \Bigg[\Bigg(\frac{4}{5}P_{fus}f_{nrgm}- P_{n_{aux}}-P_{n_{DIV}}+f_{SOL_{rad}}f_{SOL_{ch}} \Big(\frac{P_{fus}}{5}+P_{HCD}\Big)\Bigg) \Big(1+\frac{f_{p_{BB}}}{1-f_{p_{BB}}}\Big) \\ & +\Bigg(P_{n_{DIV}}+f_{SOL_{rad}}f_{SOL_{ch}}f_{fw} \Big(\frac{P_{fus}}{5}+P_{HCD}\Big)\Bigg) \Big(1+\frac{f_{p_{DIV}}}{1-f_{p_{DIV}}}\Big)\Bigg]\end{split}\]- _plotter
- params: BoPModelParams
- rad_sep_strat
- blanket_pump_strat
- divertor_pump_strat
- bop_strat
- parasitic_strat
- build()
Carry out the balance of plant calculation
- sanity()
Perform a series of sanity checks.
- plot(title: str = '', **kwargs)
Plot the BalanceOfPlant object.
- Parameters:
title (str) – Title to print on the plot
kwargs – see BALANCE_PLOT_DEFAULTS for details
- Returns:
The plot axis