rizer.boulder_plugin.schemas#

Pydantic schemas for the rizer Boulder kinds.

Registered with boulder.register_reactor_builder() so boulder validate and boulder describe can check YAML files and render property panes without building Cantera objects. Unit-bearing strings ("7 kV", "500 um") are accepted everywhere a number is expected – Boulder coerces top-level properties during config validation and the translation layer (rizer.boulder_plugin.nrp) coerces nested ones.

Attributes#

Classes#

GeneratorSchema

Generator block: NRP voltage source.

CoaxialCableSchema

CoaxialCable connector: ideal transmission line (Generator -> plasma).

ElectricalConnectionSchema

ElectricalConnection edge: no-flow wiring between circuit blocks.

RLRCircuitSchema

RLRCircuit block: low-voltage R-L-R(t) circuit with voltage source.

HybridDischarge2TSchema

HybridDischarge2T: nanosecond engineering model + low-voltage LTE phase.

SpiceCircuitSchema

SpiceCircuit: rizer circuit simulators (the spice module) from YAML.

PlasmaReactor2TSchema

PlasmaReactor2T: constant-mass 0D two-temperature NRP discharge.

PulsedPlasmaReactorSchema

PulsedPlasmaReactor: the adaptive isochoric->isentropic->isobaric composite.

Module Contents#

rizer.boulder_plugin.schemas.Quantity#
class rizer.boulder_plugin.schemas.GeneratorSchema(/, **data: Any)#

Bases: pydantic.BaseModel

Generator block: NRP voltage source.

waveform: str = None#
voltage: Quantity = None#
internal_resistance: Quantity = None#
rise_time: Quantity | None = None#
on_time: Quantity | None = None#
fall_time: Quantity | None = None#
source_type: str = None#
capacitance: Quantity | None = None#
window_span: Quantity | None = None#
r_p_rtol: float | None = None#
u_s_0: Quantity | None = None#
u_c_0: Quantity | None = None#
t: list[float] | None = None#
V: list[float] | None = None#
model_config#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class rizer.boulder_plugin.schemas.CoaxialCableSchema(/, **data: Any)#

Bases: pydantic.BaseModel

CoaxialCable connector: ideal transmission line (Generator -> plasma).

length: Quantity = None#
impedance: Quantity = None#
wave_speed: Quantity = None#
include_reflections: bool = None#
model_config#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class rizer.boulder_plugin.schemas.ElectricalConnectionSchema(/, **data: Any)#

Bases: pydantic.BaseModel

ElectricalConnection edge: no-flow wiring between circuit blocks.

model_config#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class rizer.boulder_plugin.schemas.RLRCircuitSchema(/, **data: Any)#

Bases: pydantic.BaseModel

RLRCircuit block: low-voltage R-L-R(t) circuit with voltage source.

wire_resistance: Quantity = None#
wire_inductance: Quantity = None#
initial_current: Quantity = None#
voltage_model: str = None#
model_config#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class rizer.boulder_plugin.schemas.HybridDischarge2TSchema(/, **data: Any)#

Bases: pydantic.BaseModel

HybridDischarge2T: nanosecond engineering model + low-voltage LTE phase.

gap: Quantity = None#
gas: str = None#
ambient_temperature: Quantity = None#
ambient_pressure: Quantity = None#
nanosecond: Dict[str, Any] = None#
low_voltage: Dict[str, Any] | None = None#
model_config#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class rizer.boulder_plugin.schemas.SpiceCircuitSchema(/, **data: Any)#

Bases: pydantic.BaseModel

SpiceCircuit: rizer circuit simulators (the spice module) from YAML.

circuit: str = None#
parameters: Dict[str, Any] | None = None#
model_config#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class rizer.boulder_plugin.schemas.PlasmaReactor2TSchema(/, **data: Any)#

Bases: pydantic.BaseModel

PlasmaReactor2T: constant-mass 0D two-temperature NRP discharge.

mechanism: str = None#
plasma_phase: str = None#
solver_backend: str = None#
pressure: Quantity = None#
gas_temperature: Quantity = None#
electron_temperature: Quantity | None = None#
initial_composition: str | Dict[str, Any] = None#
radius: Quantity = None#
gap: Quantity = None#
pulse_duration: Quantity | None = None#
polytropic_index: float | str = None#
external_pressure: Quantity = None#
collision_frequency_models: Dict[str, Any] = None#
t_end: Quantity = None#
output_interval: Quantity = None#
ode_solver: Dict[str, Any] | None = None#
radius_changes: List[Dict[str, Any]] | None = None#
model_config#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class rizer.boulder_plugin.schemas.PulsedPlasmaReactorSchema(/, **data: Any)#

Bases: PlasmaReactor2TSchema

PulsedPlasmaReactor: the adaptive isochoric->isentropic->isobaric composite.

Wired as a circuit like PlasmaReactor2T — Generator --CoaxialCable--> PulsedPlasmaReactor — so all the PlasmaReactor2T plasma/geometry properties apply verbatim; these fields add only the composite’s accuracy knob tol, the deposition-tier first_stage selector and the LTE arbitration threshold.

tol: float = None#
first_stage: str = None#
lte_ionization_fraction: float = None#
ambient_temperature: Quantity = None#
wall_temperature: Quantity | None = None#
allowed_models: list[str] | None = None#
model_config#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].