Skip to main content

BalancedNetwork

Type Alias BalancedNetwork 

Source
pub type BalancedNetwork = Network;
Expand description

v1-facing name for the canonical scalar positive sequence model.

Aliased Type§

pub struct BalancedNetwork {
Show 16 fields pub name: String, pub base_mva: f64, pub base_frequency: f64, pub buses: Vec<Bus>, pub loads: Vec<Load>, pub shunts: Vec<Shunt>, pub branches: Vec<Branch>, pub switches: Vec<Switch>, pub generators: Vec<Generator>, pub storage: Vec<Storage>, pub hvdc: Vec<Hvdc>, pub transformers_3w: Vec<Transformer3W>, pub areas: Vec<Area>, pub solver: Option<SolverParams>, pub source_format: SourceFormat, pub source: Option<Arc<String>>,
}

Fields§

§name: String§base_mva: f64§base_frequency: f64

System base frequency in hertz (50 or 60). Threaded through the formats that record it (PSS/E BASFRQ, pandapower f_hz) and defaulted to DEFAULT_BASE_FREQUENCY for the rest. Load-bearing for any reactance↔henry conversion (pandapower line charging) and reported as a fidelity loss when a non-default value writes to a format with no frequency field.

§buses: Vec<Bus>§loads: Vec<Load>§shunts: Vec<Shunt>§branches: Vec<Branch>§switches: Vec<Switch>§generators: Vec<Generator>§storage: Vec<Storage>§hvdc: Vec<Hvdc>§transformers_3w: Vec<Transformer3W>

Three-winding transformers, kept as typed records rather than folded into branches, so a star point and the per-winding data survive a round trip. #[serde(default)] so JSON written before the field existed still deserializes. IndexedNetwork lowers each in-service record into a star bus plus three branches (via Transformer3W::star_expansion) before building any matrix, so a 3-winding transformer does appear in Y_bus/connectivity; the canonical model keeps the typed record for round-trip fidelity.

§areas: Vec<Area>

Area records: scheduled interchange and per-area swing bus. Distinct from the bare area number on each Bus; this is the area’s metadata, which every conversion dropped before. #[serde(default)] so older JSON still deserializes.

§solver: Option<SolverParams>

Solver / solution-control metadata when the source carries it, else None. #[serde(default)] so older JSON still deserializes.

§source_format: SourceFormat§source: Option<Arc<String>>

Raw source text, when read from a textual format; enables a byte-exact same-format round-trip. Arc<String> (not Arc<str>) is deliberate: a reader that already owns the buffer (the MATPOWER file path) moves it in with no second copy of the whole file. The trade is one extra indirection per access; don’t “simplify” it back to Arc<str>, which would reintroduce the copy this avoids.

Skipped in JSON: the structured tables are the transport, not the raw echo, and skipping also keeps serde’s rc feature out of the build. A from_json round-trip returns this as None.