Skip to content

JuliaDynamics/NetworkDynamics.jl

Repository files navigation

NetworkDynamics.jl

A package for working with dynamical systems on complex networks. NetworkDynamics.jl provides an interface between Graphs.jl and DifferentialEquations.jl. It allows modeling of dynamical processes on networks using a modular approach: meaning that the overall network dynamics are composed based on dynamical models for the nodes and the edges. The dynamical behavior of those components are described by differential algebraic equations with inputs and outputs.

Typical usecases for this modeling appraoch are diffusion processes, oscillator networks or power grids.

Getting started

Check out our documentation. A good place to start is the page on the mathematical model. For a more hands-on approach check out the getting started example.

An introductory talk for an older version of this package was recorded for JuliaCon2020. Be aware that the API change significantly since then, but it can still give some insights into usecases of the package.

Benchmarks

In our benchmark on the Kuramoto model NetworkDynamics.jl + DifferentialEquations.jl proved to be an especially performant solution, see https://github.com/PIK-ICoNe/NetworkDynamicsBenchmarks.

PowerDynamics.jl

Important

As of 11/2024, the currently available version of PowerDynamics.jl is quite outdated and builds on an old version of NetworkDynamics. However, PowerDynamics will receive an Substantial update as part of an ongoing project. We expect a pre-release of that in the first half of 2025!

PowerDynamics.jl is an open-source framework for dynamic power grid modeling and analysis build on top of NetworkDynamics.jl.

Citations

If you use NetworkDynamics.jl in your research publications, please cite our paper.

@article{NetworkDynamics.jl-2021,
	author = {Lindner, Michael and Lincoln, Lucas and Drauschke, Fenja and Koulen, Julia M. and Würfel, Hans and Plietzsch, Anton and Hellmann, Frank},
	doi = {10.1063/5.0051387},
	eprint = { https://doi.org/10.1063/5.0051387 },
	journal = {Chaos: An Interdisciplinary Journal of Nonlinear Science},
	number = {6},
	pages = {063133},
	title = {NetworkDynamics.jl—Composing and simulating complex networks in Julia},
	url = { https://doi.org/10.1063/5.0051387 },
	volume = {31},
	year = {2021}
}

Funding

Development of this project was in part funded by the German Federal Ministry for Economic Affairs and Climate Action as part of the OpPoDyn-Project (Project ID 01258425/1, 2024-2027).