Guest User

Untitled

a guest
Jul 16th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. function dist(ds::CDS, d0, Ttr, T; diff_eq_kwargs=Dict(:abstol=>1e-14,
  2.  
  3. :reltol=>1e-14, :solver=>Vern9(), :maxiters=>1e9),
  4.  
  5. inittest=ChaosTools.inittest_default(dimension(ds)))
  6.  
  7.  
  8.  
  9. pinteg = parallel_integrator(ds,
  10.  
  11. [deepcopy(get_state(ds)), inittest(get_state(ds), d0)];
  12.  
  13. diff_eq_kwargs=diff_eq_kwargs)
  14.  
  15.  
  16.  
  17. if Ttr != 0
  18.  
  19. add_tstop!(pinteg, Ttr)
  20.  
  21. pinteg.opts.stop_at_next_tstop = true
  22.  
  23. for (u,t) in tuples(pinteg) end
  24.  
  25. end
  26.  
  27.  
  28.  
  29. save_func(u, t, integrator) = norm(u[1] - u[2])
  30.  
  31. saved_values = SavedValues(eltype(ds.prob.tspan), eltype(ds.prob.u0[1]))
  32.  
  33. cb = SavingCallback(save_func, saved_values)
  34.  
  35.  
  36.  
  37. prob = remake(pinteg.sol.prob, u0=pinteg.u, tspan=(Ttr, Ttr + T), callback=cb)
  38.  
  39. solver, newkw = DynamicalSystemsBase.extract_solver(diff_eq_kwargs)
  40.  
  41. sol = solve(prob, solver; newkw...)
  42.  
  43.  
  44.  
  45. return saved_values.saveval, saved_values.t
  46.  
  47. end
Add Comment
Please, Sign In to add comment