# AC Optimal Power Flow in Various Nonlinear Optimization Frameworks

**URL:** https://discourse.julialang.org/t/ac-optimal-power-flow-in-various-nonlinear-optimization-frameworks/78486
**Category:** Optimization (Mathematical)
**Tags:** optimization, nonlinear
**Created:** [March 25, 2022, 6:25pm UTC](https://discourse.julialang.org/t/ac-optimal-power-flow-in-various-nonlinear-optimization-frameworks/78486 "2022-03-25T18:25:05Z")
**Posts on this page:** 2
**Page:** 6

<div class="post-metadata">

### Author: ![odow](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/odow/32/28685_2.png) [@odow](https://discourse.julialang.org/u/odow)
#### Post date: [October 24, 2024, 9:33pm UTC](https://discourse.julialang.org/t/ac-optimal-power-flow-in-various-nonlinear-optimization-frameworks/78486/104 "2024-10-24T21:33:30Z")

</div>

> How would you describe the importance of ACOPF to a machine learning audience

See this paper from DeepMind [CANOS: A Fast and Scalable Neural AC-OPF Solver Robust To N-1 Perturbations](https://arxiv.org/html/2403.17660v1)

---

<div class="post-metadata">

### Author: ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)
#### Post date: [November 7, 2024, 1:12pm UTC](https://discourse.julialang.org/t/ac-optimal-power-flow-in-various-nonlinear-optimization-frameworks/78486/105 "2024-11-07T13:12:00Z")

</div>

@ccoffrin I started a PR refactoring the `rosetta-opf` code into a proper Julia package. Every solver implementation is a package extension, which makes it much easier to people to install and run only the ones they want, without copy-pasting the code. In the long run, we probably want to add more configuration options but I feel like this would be a welcome addition and I would love your input!  
In any case this modulariy is very useful for our current sparsity detection benchmarks with @hill.

> <https://github.com/lanl-ansi/rosetta-opf/pull/73>
>
> Fixes #72:
> 
> \- \[x\] Create a package called \`RosettaOPFBenchmarks\` with an \`src\`… folder. It defines two functions: \`solve\_opf\` and \`validate\_result\`.
> \- \[x\] Move the main solver implementations to \[package extensions\](https://pkgdocs.julialang.org/v1/creating-packages/#Conditional-loading-of-code-in-packages-(Extensions)) in the \`ext\` folder. These extensions define various methods of the form \`solve\_opf(file\_name, ::Val{PackageChoice})\`.
> \- \[x\] Update \`ci.yml\` workflow.
> \- \[\] Update \`variants.wml\` workflow.
> \- \[\] Expose API to access the created models.
> 
> Ping @ccoffrin

[Previous page](https://discourse.julialang.org/t/ac-optimal-power-flow-in-various-nonlinear-optimization-frameworks/78486.md?page=5)
