rizer.boulder_plugin.spice#

Boulder reactor kind SpiceCircuit: rizer’s circuit simulators from YAML.

Exposes the four circuit models of rizer.spice (the web “spice” layer over rizer.electrical_model) as a Boulder stage:

- id: circuit
  SpiceCircuit:
    circuit: rllc            # rllc | castera | nrp | lte_discharge
    parameters:              # overrides on rizer/configs/<circuit>.yaml
      U_c_0: 1100.0
      resistance_model: {type: rompe_weizel, gap: 2.5e-3, k_RW: 30.0}
      time: {t_start: 0.0, t_end: 2.0e-6, n_points: 2000}

Defaults come from the shipped rizer/configs/*.yaml (the same files the spice web UI uses); parameters deep-merges on top and the merged dict is validated by the spice Pydantic request models before rizer.spice.circuits.simulation.run_simulation() solves the circuit. The resulting series (currents, voltages, resistance, powers) are exposed on the stage network states and plotted by the Scope pane.

Attributes#

Classes#

SpiceCircuitReactor

Display reactor for a rizer spice circuit simulation.

RizerSpiceNetwork

Stage network running a rizer spice circuit simulation.

Functions#

translate_spice_node(→ Any)

Build the validated spice simulation request for a SpiceCircuit node.

build_spice_reactor(→ SpiceCircuitReactor)

Boulder reactor builder for the SpiceCircuit kind.

fix_spice_reactor_meta(→ None)

Post-build hook: point Boulder's metadata at the display Solution.

Module Contents#

rizer.boulder_plugin.spice.SPICE_KIND = 'SpiceCircuit'#
rizer.boulder_plugin.spice.translate_spice_node(props: Dict[str, Any]) → Any#

Build the validated spice simulation request for a SpiceCircuit node.

circuit selects the model; parameters overrides the defaults from rizer/configs/<circuit>.yaml.

class rizer.boulder_plugin.spice.SpiceCircuitReactor(contents=None, *, name: str = SPICE_KIND, **kwargs)#

Bases: cantera.Reactor

Display reactor for a rizer spice circuit simulation.

spice_request: Any = None#
result: Any = None#
classmethod from_request(request: Any, *, name: str = SPICE_KIND)#

Create the display reactor for a validated spice request.

class rizer.boulder_plugin.spice.RizerSpiceNetwork(reactors: Sequence[cantera.Reactor], meta: Any = None, **kwargs)#

Bases: cantera.ReactorNet

Stage network running a rizer spice circuit simulation.

advance runs the circuit solver once (the request carries its own time grid); repeated calls are no-ops. Implements Boulder’s CustomStageNetwork protocol: states carries the circuit series as extra columns (t, i, u_mes, V_plasma, …), scalars the peak/final values.

meta = None#
property cable_delay_s: float#

One-way cable propagation delay L/c [s] (NRP circuit only).

advance(t: float, *args, **kwargs)#
property states: cantera.SolutionArray | None#

Circuit series as a SolutionArray (constant display composition).

property scalars: Dict[str, Any]#
rizer.boulder_plugin.spice.build_spice_reactor(converter: Any, node: Dict[str, Any]) → SpiceCircuitReactor#

Boulder reactor builder for the SpiceCircuit kind.

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

Post-build hook: point Boulder’s metadata at the display Solution.