Skip to content

NetworkSystem #341

@ChrisRackauckas

Description

@ChrisRackauckas

It would be nice to have the following work on any AbstractSystem. You supply a network given by a LightGraphs AbstractGraph, you provide a prototype component, and you have a syntax for unidirectional edges. Here's an example. Let g be the graph and suppose we've already defined a component c. Then we might want to construct:

c = ODESystem(...)
connection(cfrom,cto) = [cfrom.x + cto.x ~ 0,cfrom.y - cto.y ~ 0]
ODESystem(connection,g,c)

that clones c into c_i many versions, one for each node, and for every edge makes that connection equation. For more complex examples, we could have

ODESystem([(connection1,g1),(connection2,g2)],c)

or something like that so that way you can have different graphs specifying different edges and different equations associated with those edge graphs. The constraint would be that the nodes would have to be the same between all of the graphs, since you're just changing the associated edges.

I think this could cover neuron simulations, building RDME reaction networks, graph-based epidemiological models, and power systems models. Thoughts @isaacsas @asinghvi17 ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions