Extend the parser to OpenDSS feeders. Distribution scope, opens the door to LinDist3Flow.
Scope
- New module
powerio/src/format/opendss/ with a real lexer (token stream, not regex; .dss syntax has multi word commands, Redirect, ! comments).
- Public API:
parse_opendss(content) -> Result<Network>, parse_opendss_file(path).
- Phase A:
Circuit, Vsource, Line, Transformer, Load, Capacitor, Generator. Reactor / switch later.
- Map OpenDSS impedance matrices (Rmatrix, Xmatrix per phase) into
Branch. Decide: keep balanced positive sequence in Network and add a Phase3Case for full 3 phase, or extend Branch with optional 3x3 phase impedance.
Reference cases
IEEE 13, 34, 37, 123 bus radial feeders (BSD licensed in OpenDSS distribution). Vendor under tests/data/opendss/.
Acceptance
Extend the parser to OpenDSS feeders. Distribution scope, opens the door to LinDist3Flow.
Scope
powerio/src/format/opendss/with a real lexer (token stream, not regex;.dsssyntax has multi word commands,Redirect,!comments).parse_opendss(content) -> Result<Network>,parse_opendss_file(path).Circuit,Vsource,Line,Transformer,Load,Capacitor,Generator. Reactor / switch later.Branch. Decide: keep balanced positive sequence inNetworkand add aPhase3Casefor full 3 phase, or extendBranchwith optional 3x3 phase impedance.Reference cases
IEEE 13, 34, 37, 123 bus radial feeders (BSD licensed in OpenDSS distribution). Vendor under
tests/data/opendss/.Acceptance
Redirect,New <element>.<name>, multi line commands,!comments.parse_opendss → build_ybus → solveand matches OpenDSS's reference Y_bus to 1e-9.IndexedNetwork::is_radial().