rizer.models.hybrid.hybrid_driver#

Reusable driver for the hybrid discharge model (nanosecond + low-voltage).

Library form of scripts/hybrid_discharge/run_hybrid_discharge_model.py: the input merging, the nanosecond (Roger engineering) phase, the link between the two phases (auto correction or imposed values) and the low-voltage LTE phase are importable so other frontends (the run script, tests, the Boulder GUI plugin) can run the exact same two-phase simulation from a parameter dictionary.

The parameter dictionary uses the same layout as the script’s input YAML (sections constant_parameters, link_between_models, nanosecond_model, low_voltage_model); see scripts/hybrid_discharge/input_hybrid_discharge_model.yaml.

Classes#

HybridResult

Results of a hybrid discharge run (nanosecond phase + low-voltage phase).

Functions#

link_ns_to_lv(→ tuple[float, float, float | None])

Set the low-voltage initial state (T_0, r_0) from the link configuration.

run_hybrid_case(→ HybridResult)

Run the full hybrid discharge model from a parsed parameter dictionary.

Module Contents#

class rizer.models.hybrid.hybrid_driver.HybridResult#

Results of a hybrid discharge run (nanosecond phase + low-voltage phase).

The nanosecond profiles are stored directly; the low-voltage arrays live on lv_model (times, temperatures, currents, R_p, r_p, P_Joule, P_radiation, U_p, … – populated by solve()).

roger_model: rizer.models.nrp.roger_model.RogerModel#
lv_model: rizer.models.hybrid.low_voltage_model.LowVoltageModel#
ns_times: numpy.ndarray#
ns_T: numpy.ndarray#
ns_P: numpy.ndarray#
tau_transition: float | None#
T_0_lv: float#
r_0_lv: float#
property lv_times: numpy.ndarray#

Low-voltage phase time grid [s].

property lv_T: numpy.ndarray#

Low-voltage phase temperature [K].

Set the low-voltage initial state (T_0, r_0) from the link configuration.

imposed: use the configured values. auto: evaluate the nanosecond model at tau_transition, apply the temperature correction_factor (see fig. 34 in [Roger2026]) and scale the initial radius accordingly.

lv_inputs["low_voltage_discharge_model"] is updated in place.

Returns:

  • T_0_lv (float) – Initial temperature for the low-voltage phase [K].

  • r_0_lv (float) – Initial radius for the low-voltage phase [m].

  • tau_transition (float or None) – Transition time [s] (None for the imposed method).

rizer.models.hybrid.hybrid_driver.run_hybrid_case(params: dict[str, Any]) → HybridResult#

Run the full hybrid discharge model from a parsed parameter dictionary.

Parameters:

params – Parsed input parameters with sections constant_parameters, link_between_models, nanosecond_model and low_voltage_model (same layout as the run script’s YAML, e.g. from rizer.misc.yaml_utils.parse_convert_yaml()).