rizer.boulder_plugin.nrp#

Boulder reactor kind PlasmaReactor2T (constant-mass 0D2T NRP discharge).

Translates the flat, unit-string STONE node properties into the parameter layout of rizer.models.nrp.nrp_driver.build_nrp_case(), builds the NRPCase and represents it in Boulder’s graph by a PlasmaReactor2TNode (a zero-RHS shell sharing the case’s plasma Solution). The stage is integrated by RizerNRP2TStageNetwork, which drives the recording RizerNRP2TNetwork on the case’s Isomass2TVolumeReactor.

The electric circuit is not part of the node: it is wired from the separate Generator/CoaxialCable blocks by the wire_electrical_circuit() post-build hook, which calls attach_circuit().

Attributes#

Classes#

PlasmaReactor2TNode

Boulder graph node standing for one NRPCase.

RizerNRP2TStageNetwork

CustomStageNetwork for PlasmaReactor2TNode.

Functions#

translate_plasma2t_node(→ Dict[str, Any])

Translate STONE-native node properties to rizer NRP driver parameters.

build_plasma_reactor_2t(→ PlasmaReactor2TNode)

Boulder reactor builder for the PlasmaReactor2T kind.

fix_plasma_reactor_meta(→ None)

Post-build hook: point Boulder's reactor metadata at the plasma phase.

Module Contents#

rizer.boulder_plugin.nrp.PLASMA_KIND = 'PlasmaReactor2T'#
rizer.boulder_plugin.nrp.translate_plasma2t_node(props: Dict[str, Any]) → Dict[str, Any]#

Translate STONE-native node properties to rizer NRP driver parameters.

See rizer/examples/gui/nrp_0d2t.yaml for the property reference. Cantera-style conventions are used throughout: initial_composition is a Cantera composition string or mapping (seed electrons and ions included), external_pressure a unit quantity (e.g. "1 atm").

class rizer.boulder_plugin.nrp.PlasmaReactor2TNode(contents: cantera.Solution, *, name: str, **kwargs: Any)#

Bases: rizer.boulder_plugin.shell.PlasmaShellNode

Boulder graph node standing for one NRPCase.

The physics lives in case.reactor (built once the circuit is attached); this shell only shares the case’s plasma Solution so Boulder’s graph, metadata and visualisation network see the live state.

case: rizer.models.nrp.nrp_driver.NRPCase#
classmethod from_case(case: rizer.models.nrp.nrp_driver.NRPCase, name: str = PLASMA_KIND) → PlasmaReactor2TNode#

Build the shell on case.plasma and bind the case to it.

The case is attached after construction on purpose: Cantera’s Cython __cinit__ receives the constructor arguments verbatim, so the first positional argument must be the Solution itself.

class rizer.boulder_plugin.nrp.RizerNRP2TStageNetwork(reactors: Sequence[Any], meta: Any = None, **kwargs: Any)#

CustomStageNetwork for PlasmaReactor2TNode.

Not a cantera.ReactorNet itself: it drives a RizerNRP2TNetwork on the case reactor and forwards Boulder’s integration controls to it. states / scalars / cable_delay_s are those of the recording network.

reactors#
meta = None#
property rtol: float#
property atol: float#
property max_time_step: float#
property max_steps: int#
property initial_time: float#
property time: float#
advance(t: float, *args: Any, **kwargs: Any) → None#
step(*args: Any, **kwargs: Any) → float#
advance_to_steady_state(*args: Any, **kwargs: Any) → None#
property states: cantera.SolutionArray | None#
property scalars: Dict[str, Any]#
property cable_delay_s: float#
rizer.boulder_plugin.nrp.build_plasma_reactor_2t(converter: Any, node: Dict[str, Any]) → PlasmaReactor2TNode#

Boulder reactor builder for the PlasmaReactor2T kind.

rizer.boulder_plugin.nrp.fix_plasma_reactor_meta(converter: Any, config: Dict[str, Any]) → None#

Post-build hook: point Boulder’s reactor metadata at the plasma phase.

Boulder resets reactor_meta[rid]["gas_solution"] to the node-mechanism default phase after the builder runs; the reactor state lives on the two-temperature plasma phase (more species: e-, ions, excited states), so series recording would fail with a species-count mismatch otherwise.