Skip to content

Updates for v0.7.0#46

Merged
MasonProtter merged 2 commits intomasterfrom
mp/v0.7.0
Jan 25, 2026
Merged

Updates for v0.7.0#46
MasonProtter merged 2 commits intomasterfrom
mp/v0.7.0

Conversation

@MasonProtter
Copy link
Collaborator

@MasonProtter MasonProtter commented Jan 25, 2026

GraphDynamics v0.7.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.σ

@MasonProtter MasonProtter merged commit dbf41bc into master Jan 25, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant