rizer.boulder_plugin.pulsed_plasma#
Boulder GUI kind for the adaptive PulsedPlasmaReactor.
Like nrp (PlasmaReactor2T), the node is
wired as a circuit — Generator --CoaxialCable--> PulsedPlasmaReactor — so the
GUI shows the electrical topology, not a single opaque block. The
difference is what the node is: a composite reactor that marches its own
isochoric-deposition -> isentropic-expansion -> isobaric-cooling ladder with
automatic, physics-derived model switching, driven by its own
solve()
rather than by a cantera.ReactorNet.
Because the circuit is supplied by the post-build wiring hook (after the builder runs), the composite is built lazily at solve time. The pieces:
PulsedReactorNode– a minimal zero-RHScantera.ExtensibleReactorshell. It must be a real Cantera reactor so Boulder’s non-reservoir stage list picks it up and the post-solve visualizationct.ReactorNetcan hold it (a plain object raisesTypeErrorthere; act.Reservoiris filtered out of the stage network entirely). It carries the plasma params + the accuracy knobs, and receives the circuit params from the wiring hook.RizerPulsedNetwork– aCustomStageNetwork(plain object, not aReactorNet) whoseadvancebuilds the composite from the wired circuit, runs its ladder once, and records theAdaptiveResultasstates+scalars.build_pulsed_reactor()/wire_pulsed_circuit()/fix_pulsed_reactor_meta()– the Boulder builder and post-build hooks (topology wiring + metadata), mirroringnrp.py/circuit.py.
Attributes#
Classes#
Shell around a |
|
|
Functions#
|
Translate STONE |
|
Boulder reactor builder for the |
|
Post-build hook: attach the |
|
Point Boulder's reactor metadata at the composite's plasma phase. |
Module Contents#
- rizer.boulder_plugin.pulsed_plasma.PULSED_KIND = 'PulsedPlasmaReactor'#
- rizer.boulder_plugin.pulsed_plasma.translate_pulsed_node(props: Dict[str, Any]) tuple[Dict[str, Any], Dict[str, Any]]#
Translate STONE
PulsedPlasmaReactorprops to (params, knobs).paramsis the nrp_driver-layoutplasma+simulationblocks (the circuit is wired separately, from the Generator node and Cable edge);knobscarries the composite’s accuracy/fidelity settings (tol,first_stage,lte_ionization_fraction,t_end).ambient_temperatureandwall_temperature(nullfor an adiabatic isobaric stage) are required node properties, passed onparams["plasma"].
- class rizer.boulder_plugin.pulsed_plasma.PulsedReactorNode(contents, *, name: str = PULSED_KIND, **kwargs)#
Bases:
rizer.boulder_plugin.shell.PlasmaShellNodeShell around a
PulsedPlasmaReactor.The composite does all the real integration (via
RizerPulsedNetwork); this shell exists only so the object is a genuinect.ReactorBase— required both to survive Boulder’s non-reservoir stage-network list and to be held by the post-solve visualizationct.ReactorNet. Its RHS is identically zero, and its state mirrors the plasma Solution so a vizadvance(0.0)is a no-op that preserves the final composite state.- pulsed: Any = None#
- configure(plasma_params: Dict[str, Any], knobs: Dict[str, Any], mass: float, volume: float) None#
Store the plasma params + knobs (composite built at solve time).
- class rizer.boulder_plugin.pulsed_plasma.RizerPulsedNetwork(reactors: Sequence[Any], meta: Any = None, **kwargs: Any)#
CustomStageNetworkforPulsedReactorNode.Not a
cantera.ReactorNet:advancebuilds the composite from the wired circuit, runs its adaptive ladder once (to the node’st_end) and exposes the trajectory through thestates/scalarsprotocol Boulder reads after each stage.- reactors#
- meta = None#
- time = 0.0#
- rtol = 1e-06#
- atol = 1e-08#
- max_time_step = 0.0#
- max_steps = 0#
- advance_to_steady_state(*args: Any, **kwargs: Any)#
- property states: cantera.SolutionArray | None#
Full adaptive trajectory as a SolutionArray (None before solve).
- rizer.boulder_plugin.pulsed_plasma.build_pulsed_reactor(converter: Any, node: Dict[str, Any]) PulsedReactorNode#
Boulder reactor builder for the
PulsedPlasmaReactorkind.Builds the plasma Solution (circuit deferred to
wire_pulsed_circuit(), the composite itself to solve time — the circuit is not known until the Generator/CoaxialCable wiring is in place).
- rizer.boulder_plugin.pulsed_plasma.wire_pulsed_circuit(converter: Any, config: Dict[str, Any]) None#
Post-build hook: attach the
Generator --CoaxialCable--> nodecircuit.Mirrors the
PlasmaReactor2Tbranch ofrizer.boulder_plugin.circuit.wire_electrical_circuit(), but hands the composite the circuit parameters (it rebuilds the circuit itself at solve time).
- rizer.boulder_plugin.pulsed_plasma.fix_pulsed_reactor_meta(converter: Any, config: Dict[str, Any]) None#
Point Boulder’s reactor metadata at the composite’s plasma phase.
Mirrors
rizer.boulder_plugin.nrp.fix_plasma_reactor_meta: series recording runs on the two-temperature plasma phase (more species than the node-mechanism default), so the metadata must reference it.