Hans Würfel
I am a researcher at Potsdam Institute of Climate Impact Research. My work focuses on developing an open source software for simulating dynamics of large power grids, for that I develop and maintain the two packages PowerDynamics.jl and NetworkDynamics.jl. Within the community you can find me as @hexaeder on slack, discourse and GitHub.
Session
From power grids to hydrogen pipelines and diffusion processes, dynamic flow networks are ubiquitous in science and engineering. In this talk, we present NetworkDynamics.jl, a Julia package for modelling such systems, along with PowerDynamics.jl, a domain-specific library for power grid simulations built on top of it.
Both packages have been around for many years. However, over the last 1-2 years we have essentially rewritten both from the ground up, fully embracing ModelingToolkit.jl as the primary way to define component models and deepening our integration with the broader SciML ecosystem.
NetworkDynamics.jl enables users to model inhomogeneous network systems in terms of components: dynamical systems on nodes (e.g. generators or pumps) and on edges (e.g. power lines or pipelines). Component models can be defined using ModelingToolkit.jl and are then placed on a graph. The interconnection between components is handled by our performance-oriented backend. This clear separation between dynamic models and network topology enables efficient scaling for large networks. Rather than symbolically analyzing the entire system—which may contain hundreds of thousands of equations—we compile each component type once and reuse it across all instances.
The resulting system is simply a right-hand side function for a differential equation, making it fully compatible with the SciML ecosystem: OrdinaryDiffEq.jl for time integration, SymbolicIndexingInterface.jl for accessing network states and observables, and SciMLSensitivity.jl for parameter optimisation.
We will present the underlying mathematical model, demonstrate applications in hydrogen networks and power grids, and show how Makie.jl, Bonito.jl, and GraphMakie.jl can be used to build interactive dashboards for exploring simulation results.