From 743813d87a3c64f7f8e7cfa031a08c5ee8fc48bc Mon Sep 17 00:00:00 2001 From: Christopher Rackauckas Date: Wed, 15 Nov 2017 06:59:04 -0800 Subject: [PATCH] more integrator interface on stochastic --- src/StochasticDiffEq.jl | 5 +++-- src/integrators/integrator_interface.jl | 13 +++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/StochasticDiffEq.jl b/src/StochasticDiffEq.jl index 76542c300..2b732cb91 100644 --- a/src/StochasticDiffEq.jl +++ b/src/StochasticDiffEq.jl @@ -26,9 +26,10 @@ module StochasticDiffEq import DiffEqBase: solve, solve!, init, step!, build_solution, initialize! - import DiffEqBase: resize!,deleteat!,addat!,full_cache,user_cache, u_cache,du_cache, + # Integrator Interface + import DiffEqBase: resize!,deleteat!,addat!,full_cache,user_cache,u_cache,du_cache, resize_non_user_cache!,deleteat_non_user_cache!,addat_non_user_cache!, - terminate!,get_du, get_dt,get_proposed_dt, + terminate!,get_du, get_dt,get_proposed_dt,set_proposed_dt!, u_modified!,savevalues!,add_tstop!,add_saveat!,set_reltol!, set_abstol! diff --git a/src/integrators/integrator_interface.jl b/src/integrators/integrator_interface.jl index 54d7092fb..99c79725e 100644 --- a/src/integrators/integrator_interface.jl +++ b/src/integrators/integrator_interface.jl @@ -28,6 +28,19 @@ end (integrator::SDEIntegrator)(val::AbstractArray,t::Union{Number,AbstractArray},deriv::Type=Val{0};idxs=nothing) = current_interpolant!(val,t,integrator,idxs,deriv) +function u_modified!(integrator::SDEIntegrator,bool::Bool) + integrator.u_modified = bool +end + +get_proposed_dt(integrator::SDEIntegrator) = integrator.dtpropose +set_proposed_dt!(integrator::SDEIntegrator,dt::Number) = (integrator.dtpropose = dt) + +function set_proposed_dt!(integrator::SDEIntegrator,integrator2::SDEIntegrator) + integrator.dtpropose = integrator2.dtpropose + integrator.qold = integrator2.qold + integrator.erracc = integrator2.erracc + integrator.dtacc = integrator2.dtacc +end user_cache(integrator::SDEIntegrator) = user_cache(integrator.cache) u_cache(integrator::SDEIntegrator) = u_cache(integrator.cache)