rizer.misc.simulation.cable_transport#

Mid-cable electrical-signal transport via pyresiflex.

The 0D2T nanosecond-pulse model only computes electrical quantities at the plasma end of the coaxial cable (V_p, I_p, E_p, see rizer.misc.simulation.post_process_quantities). Some experiments instead measure the electrical signal mid-cable. compute_mid_cable_voltage_current_energy re-solves the same cable, given the plasma resistance trace R_p(t) a run already produced, at an arbitrary position along the cable, using pyresiflex (a sibling package, same author, not otherwise a rizer dependency).

Functions#

compute_mid_cable_voltage_current_energy(→ dict[str, ...)

Transport plasma-side voltage, current, and energy to a position along the cable.

Module Contents#

rizer.misc.simulation.cable_transport.compute_mid_cable_voltage_current_energy(states: cantera.SolutionArray, generator: rizer.electric_circuit.generator.PurelyResistiveBaseGenerator, cable: rizer.electric_circuit.cable.IdealCable, x: float | None = None) dict[str, numpy.ndarray]#

Transport plasma-side voltage, current, and energy to a position along the cable.

Re-solves the transmission line exactly (pyresiflex.solver.purely_resistive_solution.PurelyResistiveSolution), treating the plasma resistance trace states.R_p as an external forcing function – this does not re-run the reactor ODE, only re-derives the electrical solution at a new cable position.

Parameters:
Returns:

“V_mid” : Voltage at x [V]. “I_mid” : Current at x [A]. “E_mid” : Cumulated energy at x [J], via pyresiflex’s own trapezoidal-rule integration of V_mid * I_mid over states.t’s own knots – no resampling.

Return type:

dict of str to numpy.ndarray

Notes

states.t is anchored so the direct wave from the generator arrives at the plasma (x = cable.L) at t = 0; pyresiflex’s own clock is anchored at the generator (x = 0). The two are related by t_global = states.t + cable.L / cable.c, used internally for the plasma-resistance interpolation. The pyresiflex solve uses states.t, so that data are correctly saved (this avoids saving t_global in the output file).

PurelyResistiveSolution has no truncation option: it always sums the full reflection series, bounded only by elapsed time – the same physics as the bounce-diagram Neumann series that NRPCircuit’s traveling-wave recursion (used by both 2T0D scripts) reproduces to infinite order via a linearly-interpolated delay buffer instead of summing the series directly. That approximation differs from this exact solution at the same cable position by a small residual – verified at ~0.0004% for a smooth TrapezoidalGenerator profile (5-6 ns rise/fall, as configured in production), up to ~0.18% for an idealized instantaneous-step generator. This is expected, not a bug: V_mid, I_mid, and E_mid computed here will not bit-exactly reproduce a hypothetical “recompute V_p via pyresiflex and compare to states.V_p” cross-check.