Skip to content

Releases: Neuroblox/GraphDynamics.jl

v0.7.0

25 Jan 15:49

Choose a tag to compare

GraphDynamics v0.7.0

Diff since v0.6.0

New features

  • A PolyesterScheduler() scheduling object has been added which allows for parallelizing solves using Polyester.jl. This option helps performance during ODE solves where GC time dominates if multithreaded.
  • If any subsystem in a problem has a parameter named dtmax, then the smallest dtmax parameter in the system is forwarded as a keyword argument to ODEProblem and SDEProblems to limit the maximum stepsizes allowed by the solver.
  • If a connection type overrides GraphDynamics.connection_needs_ctx to give true, then connections of that type will be given a fourth ctx argument which gives it access to the full list of states_partitioned, params_partitioned, and connection_matrices when accumulating inputs.
  • GraphDynamics integrates with Latexify.jl to latexify the equations of a GraphSystem.

Breaking changes

  • PartitionedGraphSystem has been removed; GraphSystems holds a field g.flat_graph field with a PartitioningGraphSystem object which actively flattens and partitions the graph during solving
  • apply_discrete_event!, apply_continuous_event!, and ForeachConnectedSubsystem have had their vstates and vparams arguments combined into a sys_view argument, which gives a view into the affected system for (and the connection form gets a sys_view_src and sys_view_dst). This sys_view can have it's fields be updated in place like so:
function GraphDynamics.apply_discrete_event!(integrator, sys_view, sys::Subsystem{MyType}, _)
    sys_view.x[] = sys.y
end

This will modify the x state or parameter of the system when the event triggers.

  • apply_subsystem_noise!'s first argument is now modified in the same way as the view arguments of apply_discrete_event!. One would now write e.g.
function GraphDynamics.apply_subsystem_noise!(vstate, sys::Subsystem{BrownianParticle}, t)
    # No noise in position, so we don't modify vstate[:x]
    vstate.v[] = sys.σ    # White noise in velocity with amplitude σ
end

rather than vstate[:v] = sys.σ

Merged pull requests:

v0.1.4

25 Jan 15:48
65f4ced

Choose a tag to compare

GraphDynamics v0.1.4

This release has been identified as a backport.
Automated changelogs for backports tend to be wildly incorrect.
Therefore, the list of issues and pull requests is hidden.

v0.1.3

25 Jan 15:48

Choose a tag to compare

GraphDynamics v0.1.3

This release has been identified as a backport.
Automated changelogs for backports tend to be wildly incorrect.
Therefore, the list of issues and pull requests is hidden.

v0.1.2

25 Jan 15:48
8d79d33

Choose a tag to compare

GraphDynamics v0.1.2

This release has been identified as a backport.
Automated changelogs for backports tend to be wildly incorrect.
Therefore, the list of issues and pull requests is hidden.

v0.1.1

25 Jan 15:48
983cada

Choose a tag to compare

GraphDynamics v0.1.1

This release has been identified as a backport.
Automated changelogs for backports tend to be wildly incorrect.
Therefore, the list of issues and pull requests is hidden.

v0.1.0

25 Jan 15:48
3cb3fde

Choose a tag to compare

GraphDynamics v0.1.0

This release has been identified as a backport.
Automated changelogs for backports tend to be wildly incorrect.
Therefore, the list of issues and pull requests is hidden.

v0.6.0

28 Oct 13:46
1ad7d19

Choose a tag to compare

GraphDynamics v0.6.0

Diff since v0.5.0

Breaking changes

Switched computed_properties and computed_properties_with_inputs to take a type tag instead of subsystem argument. Now, instead of adding methods like

function GraphDynamics.computed_properties_with_inputs(::Subsystem{Particle})
    a(sys, input) = input.F / sys.m 
    (; a)
end

users should do

function GraphDynamics.computed_properties_with_inputs(::Type{Particle})
    a(sys, input) = input.F / sys.m 
    (; a)
end

Merged pull requests:

  • Breaking: Switch computed_properties[_with_inputs] to take a type instead of subsystem argument (#45) (@MasonProtter)

v0.5.0

25 Oct 13:10
4e449a2

Choose a tag to compare

GraphDynamics v0.5.0

Diff since v0.4.9

Breaking changes

  • Removed the fallback (cr::ConnectionRule)(src, dst, t) = cr(src, dst) which was added previously to avoid breakage when we made connection rules take a time argument in addition to the src and dst subsystems. The presence of this method was a bit of a annoying crutch
  • Changed the arguments of discrete_event_condition from just (conn, t) to (conn, t, sys_src, sys_dst) so that events can trigger based off information in the source or destination subsystems as well
  • Changed the arguments of has_discrete_events from just (typeof(conn),) for connection events to (typeof(conn), get_tag(src), get_tag(dst)), i.e. it now also can depend on the types of the source and dest subsystems
  • Changed the arguments of event_times from just (conn,) to (conn, sys_src, sys_dst) for connection events.

Merged pull requests:

  • Remove (::ConnectionRule)(src, dst, t) fallback method; make discrete_event_condition on connections take src / dst args. (#44) (@MasonProtter)

v0.4.9

10 Oct 16:49
7bedfc9

Choose a tag to compare

GraphDynamics v0.4.9

Diff since v0.4.8

Merged pull requests:

v0.4.8

11 Sep 13:18
76aeddb

Choose a tag to compare

GraphDynamics v0.4.8

Diff since v0.4.7

Merged pull requests:

  • allow symbolic indexing of vectors of observables (#41) (@vyudu)
  • fix: change parameter_values(::GraphSystemParameters) to access params_partitioned (#42) (@vyudu)

Closed issues:

  • Support vectors of Observed variables in the SymbolicIndexingInterface (#38)