bloc.reactors.models#
Supplier equipment models — concrete, catalogued reactor kinds.
Unlike the role/topology modules under bloc.reactors (torch_mixing,
plug_flow, tube_furnace …), this subpackage holds named equipment
models from suppliers: a specific product, with its nameplate operating
envelope and datasheet metadata, built on top of a generic engine.
See README.md in this directory for the catalog.
Submodules#
Attributes#
Exceptions#
Raised when a PBR 100 is configured outside its nameplate envelope. |
Classes#
PBR 100 — arc-heated plasma source (instantaneous-heating variant). |
Functions#
|
Raise if any present feed species is outside the PBR 100 throughput range. |
Package Contents#
- bloc.reactors.models.PBR100_CH4_KG_H: Tuple[float, float] = (5.0, 20.0)#
- bloc.reactors.models.PBR100_H2_SLM: Tuple[float, float] = (20.0, 100.0)#
- bloc.reactors.models.PBR100_N2_SLM: Tuple[float, float] = (100.0, 350.0)#
- bloc.reactors.models.PBR100_POWER_KW: Tuple[float, float] = (50.0, 100.0)#
- exception bloc.reactors.models.PBR100EnvelopeError#
Bases:
ValueErrorRaised when a PBR 100 is configured outside its nameplate envelope.
Distinct type so
BlocConvertercan fail-fast on it (Boulder’spost_buildotherwise downgrades hook exceptions to a warning).
- class bloc.reactors.models.PBR100PlasmaTorch(gas, *args, **kwargs)#
Bases:
bloc.reactors.torch_mixing.PlasmaTorchInstantaneousHeatingPBR 100 — arc-heated plasma source (instantaneous-heating variant).
STONE kind:
PBR100PlasmaTorch.Same physics as
PlasmaTorchInstantaneousHeating; adds the PBR 100 nameplate operating envelope (50–100 kW; CH4 5–20 kg/h; H2 20–100 slm; N2 100–350 slm), enforced at build time. SEI/SEO specific-energy metrics are inherited from the base torch class.See also
validate_pbr100_throughput()throughput envelope check.
TorchInstantaneousHeatingSEI_MJ_kg/SEO_MJ_kg.
- NETWORK_CLASS#
- property SEI_MJ_kg: float | None#
Specific Energy Input [MJ/kg] from
_meta(electrical input / feed).Available on every torch once
_post_build_design_volumes()has populatedelectric_power_kWandmass_flow_rateon_meta.
- property SEO_MJ_kg: float | None#
Specific Energy Output [MJ/kg] from
_meta(thermal power to gas / feed).
- solve_adiabatic(mdot, power_kW, t_res_s, verbose=True)#
Solve adiabatic kinetics using this reactor’s current inlet state.
Adds torch power as an enthalpy jump and integrates one adiabatic pass for
t_res_susing a freshtype(self)(gas, clone=False)carrier.
- bloc.reactors.models.validate_pbr100_throughput(mdot_kg_s, gas, *, node_id)#
Raise if any present feed species is outside the PBR 100 throughput range.
- Parameters:
mdot_kg_s – Total torch feed mass flow rate [kg/s].
gas – A Cantera phase (
ct.Solution/reservoir.thermo) describing the inlet composition. Usesspecies_names,X,Yandmolecular_weights.node_id – STONE node id, for the error message.
Notes
CH4 (process gas) is checked whenever more than a trace is present (mole fraction >
_TRACE_X).H2 / N2 are carrier gases (H2, or alternatively N2). Only the carrier actually fed — the one of {H2, N2} present above
_CARRIER_MIN_X— is checked; the trace N2 (~1 %) in a natural-gas feed is ignored (it is not the alt-carrier). If both are above the threshold, both are checked.
All violations are collected and raised together as one
PBR100EnvelopeError.