2
2
3
3
* NetworkDynamics.jl* is a package to simulate dynamical systems within complex networks. It provides an interface
4
4
between the [ Graphs.jl] ( https://github.com/JuliaGraphs/Graphs.jl ) and the
5
- [ DifferentialEquations.jl] ( https://github.com/SciML/DifferentialEquations.jl ) packages and faciliates the simulation of
5
+ [ DifferentialEquations.jl] ( https://github.com/SciML/DifferentialEquations.jl ) packages and facilitates the simulation of
6
6
highly efficient dynamic networks by describing the local dynamics on the edges and vertices of the graph.
7
7
8
8
!!! note
@@ -11,26 +11,24 @@ highly efficient dynamic networks by describing the local dynamics on the edges
11
11
The mathematical structure (used more or less interchangeably with Network) is also called [ Graph] ( https://en.wikipedia.org/wiki/Graph_theory ) .
12
12
The network (which can be seen in the figure below) is composed of two entities (so two nodes) who are only connected to each other.
13
13
This connection between the two is the edge of the system. Complex networks are composed of multiple nodes and edges,
14
- with most nodes connected to multiple other nodes with multiple edges * (@Hans : can you created the graph of such a
15
- network and place in here?)*
14
+ with most nodes connected to multiple other nodes with multiple edges
16
15
17
- ```
18
- @example
19
- using Graphs, NetworkDynamics, OrdinaryDiffEqTsit5, StableRNGs, GraphMakie, Plots, CairoMakie #hide
20
- using GraphMakie.NetworkLayout #hide
21
- CairoMakie.activate!(type="svg") #hide
22
- g = smallgraph(:bull) #hide
23
- fig, ax, p = graphplot(g; ilabels=["v$i" for i in 1:nv(g)], #hide
24
- elabels=["e$i: $(e.src) ↦ $(e.dst)" for (i, e) in enumerate(edges(g))], #hide
25
- layout=Align(Stress()), figure=(;resolution=(400,200))) #hide
26
- ymin, ymax = extrema(last.(p[:node_pos][])) #hide
27
- ylims!(ax, (ymin-0.11*(ymax-ymin), ymax+0.11*(ymax-ymin)))#hide
28
- hidespines!(ax) #hide
29
- hidedecorations!(ax) #hide
30
- fig #hide
16
+ ``` @example
17
+ using Graphs, GraphMakie, CairoMakie #hide
18
+ using GraphMakie.NetworkLayout #hide
19
+ CairoMakie.activate!(type="svg") #hide
20
+ g = smallgraph(:bull) #hide
21
+ fig, ax, p = graphplot(g; ilabels=["v$i" for i in 1:nv(g)], #hide
22
+ elabels=["e$i: $(e.src) ↦ $(e.dst)" for (i, e) in enumerate(edges(g))], #hide
23
+ layout=Align(Stress()), figure=(;resolution=(830,450))) #hide
24
+ ymin, ymax = extrema(last.(p[:node_pos][])) #hide
25
+ ylims!(ax, (ymin-0.11*(ymax-ymin), ymax+0.11*(ymax-ymin)))#hide
26
+ hidespines!(ax) #hide
27
+ hidedecorations!(ax) #hide
28
+ fig #hide
31
29
```
32
30
33
- The behavior of a node or an edge can be described through the use of a) algebraic equations, b) differential algebraic
31
+ The behavior of a node or an edge can be described through the use of ( a) algebraic equations, ( b) differential algebraic
34
32
equation (DAEs) in mass matrix form or c) ordinary differential equations (ODE).
35
33
36
34
The core of the package is the function [ ` Network ` ] ( @ref ) . It accepts the functions describing the local dynamics on the
@@ -49,7 +47,7 @@ Main features:
49
47
- your network.
50
48
- [ Symbolic Indexing] ( @ref ) into solutions and states: NetworkDynamics keeps track of the states of each individual
51
49
- subsystem.
52
- - Diverse execution schemes: NetworkDynamics exploits the known inter-dependencies between components to auto
50
+ - Diverse execution schemes: NetworkDynamics exploits the known interdependencies between components to auto
53
51
- parallelize execution, even on GPUs!
54
52
- Equation based models: you can model local dynamics using
55
53
- [ ModelingToolkit.jl] ( https://docs.sciml.ai/ModelingToolkit/dev/ ) and them combine them into larger networks by using
0 commit comments