Choose your tutorial

The sidebar follows the workflow from understanding network data to preparing, solving, and verifying a case. Advanced explanations, automation, and reference material provide separate routes. This page helps you choose by goal; the homepage learning map shows how the sections connect. Choose an advanced route for equation encodings, model extensions and numerical experiments.

If you are new, follow Installation & first steps, then First case: inspect, solve and verify. The first case uses a bundled synthetic feeder and needs no external data. You can stop after inspection if you do not need a solver yet.

The utility-data end-to-end tutorial is a later, optional route. Its external dataset and license requirements are stated at the start of that page; its dataset examples are not executed by the docs build.

Route by goal

I want to…Start hereThen
Explore a network visually in the browserVisualizing a case with TellegenAnalysis & reports, Buses & terminals primer
Convert OpenDSS into a BMOPF caseConversion guideAnalysis & reports, Utility-data end-to-end tutorial
Derive model inputs from nameplate dataFrom nameplate data to a defensible modelCase augmentation, Data model conventions
Triage a messy import (warnings, provenance, repairs)Findings triageFinding-code reference, Analysis & reports
Turn transformer test data into model fieldsFrom test report to transformer modelTransformer models, Transformer spec
Understand four-wire physics (why terminals, neutrals, matrices)Buses & terminals primerImpedance models & OPF decisions, Line geometry
Get grounding, neutrals, and sequence coordinates rightGround, neutral, and earth returnGrounding spec, SWER case study
Get units, per-unit bases, and cost rightUnits, bases, scaling, and economicsUnits and scaling, Objective spec
Pick a defensible load model (CVR, hosting, collapse)Choosing and identifying a load modelLoad spec, Impedance models & OPF decisions
Build a benchmark an optimizer can respectCase augmentationFrom nameplate data to a defensible model, DER placement
Diagnose an infeasible caseInfeasibility diagnosisBounds & feasibility, Trusting the solver
Verify a solved OPF you don't yet trustTrust but verifySolution projection, Engine validation evidence
Model a specific device (STATCOM, MVDC, regulator, PV droop)D-STATCOM studyMVDC, Tap optimization, VVWO
Change the formulation (custom objectives, constraints, multi-period)Custom formulationsOPF model, Units, bases & economics
Assemble a network matrix or understand ideal-device boundariesNodal admittance buildersExact substitutions, Engine validation evidence
Choose numerical coordinates or inspect initializationScaling, initialization and diagnosticsSolver guide, Trusting the solver
Update coefficients and re-solve safelyRepeated solvesCase families, Model extensions
Build a differentiable or bilevel research extensionModel extensions and sensitivitiesCustom formulations, OPF engine
Extend or debug the solverOPF engine: scope & statusOPF model, Contributing

The judgment spine

Six of the tutorials, read in order, teach the reasoning a defensible study needs — not just how to call the tools, but when to trust the answer:

  1. Triage — Findings triage. A raw import arrives with dozens of findings; learn to separate defects (fix), judgment calls (decide and document), and disclosures (keep — they are the case's provenance record).
  2. Assumptions — From nameplate data to a defensible model. Incomplete datasheets in; a model out. What can be derived, what needs an assumption, and what must stay unknown — and the difference between standards-derived, standards-inspired, and synthetic values.
  3. Solve — First case and Developing OPF case families. Solve a supplied operating case, then compare explicit study scenarios.
  4. Verify — Trust but verify. Take one solved OPF and independently recompute KCL, voltage bounds, thermal loading, losses, and the objective — learning what a solver's LOCALLY_SOLVED status does and does not guarantee.
  5. Consequences — Impedance models & OPF decisions and Trusting the solver. How the modeling choices made in step 2 change the answer, and where the remaining traps live.
  6. Formulation — Custom formulations. When least-cost dispatch is not your question: hooks, replaced objectives, and multi-period coupling — with the discipline each rung demands.

Read top to bottom you get the missing arc: triage → model assumptions → solve → independent verification → fidelity consequences → your own formulation.

The modeling-choices track

Step 2's "assumptions" fan out into deep dives, one per modeling choice — each demonstrating live how that choice writes the answer:

Prerequisites and example coverage

RouteSoftware and data
First case, inspection stepsBMOPFTools and the bundled feeder; no solver or external dataset.
First case, solve and verify stepsBMOPFTools, JuMP and Ipopt; the same bundled feeder.
Nodal admittance buildersBMOPFTools and Julia standard libraries; synthetic examples run in the docs build.
DiffOpt worked exampleRepository checkout and the optional test/diffopt environment (DiffOpt, JuMP, Ipopt); executed by the optional integration test job.
Case familiesBMOPFTools, JuMP and Ipopt; the bundled feeder and example script.
Utility-data tutorials, including end-to-end, DER placement and PV controlsFollow each page's external-dataset notice and software prerequisites. Reading a page does not require acquiring its data.

The first-case Julia blocks execute during the docs build. Utility-data examples marked External dataset are displayed as code and are not executed by that build. Other pages state their own prerequisites; a data-modeling tutorial may also run a solve to demonstrate the consequences of a modeling choice.

For the advanced smooth-droop encoding note, start with the PV control study for the practical context, or read Power-flow inverter controls for the solver interface. Running the external-data study is not required to read the note.