From 3ee6c4d72e3fbc2b6dfc27b128ff47eac41f1ed0 Mon Sep 17 00:00:00 2001 From: reykboerner Date: Tue, 23 Jul 2024 08:10:55 +0100 Subject: [PATCH 1/3] added noise strength to additional_details --- src/CoupledSDEs.jl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/CoupledSDEs.jl b/src/CoupledSDEs.jl index 42ff12ee..aaf515e8 100644 --- a/src/CoupledSDEs.jl +++ b/src/CoupledSDEs.jl @@ -186,7 +186,9 @@ end # Pretty print function additional_details(ds::CoupledSDEs) solver, remaining = _decompose_into_solver_and_remaining(ds.diffeq) - return ["SDE solver" => string(nameof(typeof(solver))), "SDE kwargs" => remaining] + return [ + "SDE solver" => string(nameof(typeof(solver))), "SDE kwargs" => remaining, + "Noise strength" => ds.noise_strength] end ########################################################################################### From 8482c5598b656f413ca6a5ec6c9551a18ff09a7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reyk=20B=C3=B6rner?= Date: Tue, 23 Jul 2024 08:18:45 +0100 Subject: [PATCH 2/3] change by JuliaFormatter Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- src/CoupledSDEs.jl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/CoupledSDEs.jl b/src/CoupledSDEs.jl index aaf515e8..b78d20b0 100644 --- a/src/CoupledSDEs.jl +++ b/src/CoupledSDEs.jl @@ -187,8 +187,10 @@ end function additional_details(ds::CoupledSDEs) solver, remaining = _decompose_into_solver_and_remaining(ds.diffeq) return [ - "SDE solver" => string(nameof(typeof(solver))), "SDE kwargs" => remaining, - "Noise strength" => ds.noise_strength] + "SDE solver" => string(nameof(typeof(solver))), + "SDE kwargs" => remaining, + "Noise strength" => ds.noise_strength, + ] end ########################################################################################### From 80ad838f3ff19688fef3550474cc200893613e8e Mon Sep 17 00:00:00 2001 From: oameye Date: Wed, 24 Jul 2024 22:26:59 +0200 Subject: [PATCH 3/3] fix prettyprint Update src/CoupledSDEs.jl Co-Authored-By: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- src/CoupledSDEs.jl | 59 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 49 insertions(+), 10 deletions(-) diff --git a/src/CoupledSDEs.jl b/src/CoupledSDEs.jl index 409fe78a..2292c82a 100644 --- a/src/CoupledSDEs.jl +++ b/src/CoupledSDEs.jl @@ -6,6 +6,12 @@ using DynamicalSystemsBase: SciMLBase, correct_state, _set_parameter!, + current_state, + rulestring, + isdeterministic, + isdiscretetime, + current_parameters, + current_time, current_state using StochasticDiffEq: SDEProblem @@ -191,16 +197,6 @@ function DynamicalSystemsBase.CoupledODEs( ) end -# Pretty print -function additional_details(ds::CoupledSDEs) - solver, remaining = _decompose_into_solver_and_remaining(ds.diffeq) - return [ - "SDE solver" => string(nameof(typeof(solver))), - "SDE kwargs" => remaining, - "Noise strength" => ds.noise_strength, - ] -end - ########################################################################################### # API - obtaining information from the system ########################################################################################### @@ -232,3 +228,46 @@ function DynamicalSystemsBase.successful_step(integ::SciMLBase.AbstractSDEIntegr rcode = integ.sol.retcode return rcode == SciMLBase.ReturnCode.Default || rcode == SciMLBase.ReturnCode.Success end + +function DynamicalSystemsBase.dynamic_rule(sys::CoupledSDEs) + f = sys.integ.f + while hasfield(typeof(f), :f) + f = f.f + end + return f +end +DynamicalSystemsBase.isdeterministic(ds::CoupledSDEs) = false + +# Pretty print +function additional_details(ds::CoupledSDEs) + solver, remaining = _decompose_into_solver_and_remaining(ds.diffeq) + return [ + "Noise strength" => ds.noise_strength, + "SDE solver" => string(nameof(typeof(solver))), + "SDE kwargs" => remaining, + ] +end + +function Base.show(io::IO, ::MIME"text/plain", ds::CoupledSDEs) + descriptors = [ + "deterministic" => isdeterministic(ds), + "discrete time" => isdiscretetime(ds), + "in-place" => isinplace(ds), + "dynamic rule" => rulestring(dynamic_rule(ds)), + ] + append!(descriptors, additional_details(ds)) + append!( + descriptors, + [ + "parameters" => current_parameters(ds), + "time" => current_time(ds), + "state" => current_state(ds), + ], + ) + padlen = maximum(length(d[1]) for d in descriptors) + 3 + + println(io, summary(ds)) + for (desc, val) in descriptors + println(io, rpad(" $(desc): ", padlen), val) + end +end