bluemira.fuel_cycle.cycle

Full fuel cycle model object

Classes

EUDEMOFuelCycleModel

Tritium fuel cycle object.

EDFCMParams

Parameters required to run EUDEMOFuelCycleModel.

Module Contents

class bluemira.fuel_cycle.cycle.EUDEMOFuelCycleModel(params: EDFCMParams | dict[str, float] | None = None, build_config: dict[str, Any] | None = None)

Tritium fuel cycle object.

Takes a lifecycle timeline and interprets it to reach tritium start-up inventory and inventory doubling time estimates.

Parameters:
  • params (EDFCMParams | dict[str, float] | None) – The parameters for the model. See EDFCMParams for list of available parameters.

  • build_config (dict[str, Any] | None) –

    Configuration options for the model. Options are:

    • verbose: bool (False)

      Print debugging information.

    • timestep: float (1200.0)

      The time step in the cycle [s].

    • conv_thresh: float (2e-4)

      The convergence threshold in the cycle.

    • n: int (length of timeline[‘time’])

      The no. of time steps to use from the the timeline.

verbose
timestep
conv_thresh
n
_constructors()
run(timeline: bluemira.fuel_cycle.timeline.Timeline)

Run the fuel cycle model.

Parameters:

timeline (bluemira.fuel_cycle.timeline.Timeline) – Timeline with which to run the model

finalise()

Perform clean-up fudge to ensure all tritium returns to stores after the end of the reactor life.

initialise_arrays(timeline: bluemira.fuel_cycle.timeline.Timeline, n: int)

Initialise timeline arrays for TFV model.

Notes

Gas puff timeline mapped to burn signal.

Parameters:
seed_t()

Seed an initial value to the model.

tbreed(TBR: float, m_T_0: float) numpy.ndarray

Ideal system without T sequestration. Used for plotting and sanity.

Returns:

Tritium breeding

Parameters:
  • TBR (float)

  • m_T_0 (float)

Return type:

numpy.ndarray

plasma(eta_iv: float, max_inventory: float, flows: list[numpy.ndarray] | None = None) numpy.ndarray

In-vessel environment

Parameters:
  • eta_iv (float) – In-vessel accumulation efficiency 0 <= float <= 1

  • max_inventory (float) – T inventory limit of in-vessel environment [kg] (e.g. 0.7 kg in ITER in-vessel)

  • flows (list[numpy.ndarray] | None) – Additional flows to add into plasma

Returns:

Flow-rate out of the system [kg/s]

Return type:

numpy.ndarray

blanket(eta_b: float, max_inventory: float) numpy.ndarray

The tritium breeding system. Dumps stored inventory at blanket change.

Parameters:
  • eta_b (float) – The retention efficiency parameter for the blanket

  • max_inventory (float) – The maximum inventory in the blanket

Return type:

Flow-rate out of the system [kg/s]

tfv(eta_tfv: float, flows: list[numpy.ndarray]) numpy.ndarray

The TFV system where the tritium flows from the BB and plasma are combined.

Parameters:
  • eta_tfv (float) – Detritiation factor of the system

  • flows (list[numpy.ndarray]) – The flows to be added to the TFV block

Return type:

Flow-rate out of the system [kg/s]

stack(flows: list[numpy.ndarray])

Exhaust to environment

Parameters:

flows (list[numpy.ndarray])

injector(flows: list[numpy.ndarray]) numpy.ndarray

Pellet injection system assumed

Returns:

injector mass out

Parameters:

flows (list[numpy.ndarray])

Return type:

numpy.ndarray

recycle()

The main loop of the fuel cycle, which is called recursively until the convergence criterion is met.

plot()

Plot the results of the fuel cycle model.

plot_m_T(**kwargs)

Plot the evolution of the tritium masses over time.

Returns:

The plot axis

plot_inventory(**kwargs)

Plot the evolution of the tritium inventories (including sequestered) over time.

static _adjust_inv_plot(t, inventory, thresh=0.2)

Plot correction for compressed time inventories

Returns:

inventory

calc_t_d() float

Calculate the doubling time of a fuel cycle timeline, assuming that a future tokamak requires the same start-up inventory as the present one.

Returns:

  • arg_t_d – index of doubling time in time array

  • Doubling time of the tritium fuel cycle [y]

    \(t_{d} = t[\text{max}(\text{argmin}\lvert m_{T_{store}}-I_{TFV_{min}}-m_{T_{start}}\rvert))]\)

Return type:

float

calc_t_infl() tuple[int, float]

Calculate the inflection time of the reactor tritium inventory

Returns:

  • arg_t_infl – index of inflection time in time array

  • inflection time

Return type:

tuple[int, float]

_plot_t_d(**kwargs)
_plot_t_infl(arg, **kwargs)
calc_m_release() float

Calculate the tritium release rate from the entire system to the environment.

Returns:

Tritium release rate [kg/yr]

Return type:

float

sanity()

Check that no tritium is lost (graphically).

class bluemira.fuel_cycle.cycle.EDFCMParams

Parameters required to run EUDEMOFuelCycleModel.

TBR: float = 1.05

Tritium breeding ratio [dimensionless].

f_b: float = 0.015

Burn-up fraction [dimensionless].

m_gas: float = 50

Gas puff flow rate [Pa m^3/s]. To maintain detachment - no chance of fusion from gas injection.

A_global: float = 0.3

Load factor [dimensionless].

r_learn: float = 1

Learning rate [dimensionless].

t_pump: float = 100

Time in DIR loop [s]. Time between exit from plasma and entry into plasma through DIR loop.

t_exh: float = 3600

Time in INDIR loop [s]. Time between exit from plasma and entry into TFV systems INDIR.

t_ters: float = 18000

Time from BB exit to TFV system [s].

t_freeze: float = 1800

Time taken to freeze pellets [s].

f_dir: float = 0.9

Fraction of flow through DIR loop [dimensionless].

t_detrit: float = 36000

Time in detritiation system [s].

f_detrit_split: float = 0.9999

Fraction of detritiation line tritium extracted [dimensionless].

f_exh_split: float = 0.99

Fraction of exhaust tritium extracted [dimensionless].

eta_fuel_pump: float = 0.9

Efficiency of fuel line pump [dimensionless]. Pump which pumps down the fuelling lines.

eta_f: float = 0.5

Fuelling efficiency [dimensionless]. Efficiency of the fuelling lines prior to entry into the VV chamber.

I_miv: float = 0.3

Maximum in-vessel T inventory [kg].

I_tfv_min: float = 2

Minimum TFV inventory [kg]. Without which e.g. cryodistillation columns are not effective.

I_tfv_max: float = 2.2

Maximum TFV inventory [kg]. Account for T sequestration inside the T plant.

I_mbb: float = 0.055

Maximum BB T inventory [kg].

eta_iv: float = 0.9995

In-vessel bathtub parameter [dimensionless].

eta_bb: float = 0.995

BB bathtub parameter [dimensionless].

eta_tfv: float = 0.998

TFV bathtub parameter [dimensionless].

f_terscwps: float = 0.9999

TERS and CWPS cumulated factor [dimensionless].