Releases: Neuroblox/GraphDynamics.jl
v0.7.0
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 smallestdtmaxparameter in the system is forwarded as a keyword argument toODEProblemandSDEProblems to limit the maximum stepsizes allowed by the solver. - If a connection type overrides
GraphDynamics.connection_needs_ctxto give true, then connections of that type will be given a fourthctxargument which gives it access to the full list ofstates_partitioned,params_partitioned, andconnection_matriceswhen accumulating inputs. - GraphDynamics integrates with Latexify.jl to latexify the equations of a GraphSystem.
Breaking changes
PartitionedGraphSystemhas been removed;GraphSystems holds a fieldg.flat_graphfield with aPartitioningGraphSystemobject which actively flattens and partitions the graph during solvingapply_discrete_event!,apply_continuous_event!, andForeachConnectedSubsystemhave had theirvstatesandvparamsarguments combined into asys_viewargument, which gives a view into the affected system for (and the connection form gets asys_view_srcandsys_view_dst). Thissys_viewcan 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
endThis 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 ofapply_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 σ
endrather than vstate[:v] = sys.σ
Merged pull requests:
- Updates for v0.7.0 (#46) (@MasonProtter)
v0.1.4
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
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
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
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
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
GraphDynamics v0.6.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)
endusers should do
function GraphDynamics.computed_properties_with_inputs(::Type{Particle})
a(sys, input) = input.F / sys.m
(; a)
endMerged pull requests:
- Breaking: Switch
computed_properties[_with_inputs]to take a type instead of subsystem argument (#45) (@MasonProtter)
v0.5.0
GraphDynamics v0.5.0
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 thesrcanddstsubsystems. The presence of this method was a bit of a annoying crutch - Changed the arguments of
discrete_event_conditionfrom 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_eventsfrom 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_timesfrom just(conn,)to(conn, sys_src, sys_dst)for connection events.
Merged pull requests:
- Remove
(::ConnectionRule)(src, dst, t)fallback method; makediscrete_event_conditionon connections takesrc/dstargs. (#44) (@MasonProtter)