{"action":"created","issue":{"url":"https://api.github.com/repos/JuliaDiffEq/DiffEqMonteCarlo.jl/issues/14","repository_url":"https://api.github.com/repos/JuliaDiffEq/DiffEqMonteCarlo.jl","labels_url":"https://api.github.com/repos/JuliaDiffEq/DiffEqMonteCarlo.jl/issues/14/labels{/name}","comments_url":"https://api.github.com/repos/JuliaDiffEq/DiffEqMonteCarlo.jl/issues/14/comments","events_url":"https://api.github.com/repos/JuliaDiffEq/DiffEqMonteCarlo.jl/issues/14/events","html_url":"https://github.com/JuliaDiffEq/DiffEqMonteCarlo.jl/issues/14","id":241112010,"number":14,"title":"Graceful recovery from failed solution attempts","user":{"login":"dextorious","id":526018,"avatar_url":"https://avatars1.githubusercontent.com/u/526018?v=3","gravatar_id":"","url":"https://api.github.com/users/dextorious","html_url":"https://github.com/dextorious","followers_url":"https://api.github.com/users/dextorious/followers","following_url":"https://api.github.com/users/dextorious/following{/other_user}","gists_url":"https://api.github.com/users/dextorious/gists{/gist_id}","starred_url":"https://api.github.com/users/dextorious/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dextorious/subscriptions","organizations_url":"https://api.github.com/users/dextorious/orgs","repos_url":"https://api.github.com/users/dextorious/repos","events_url":"https://api.github.com/users/dextorious/events{/privacy}","received_events_url":"https://api.github.com/users/dextorious/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2017-07-06T23:09:13Z","updated_at":"2017-07-12T19:53:06Z","closed_at":null,"body":"For Monte Carlo problems with random initial states, it is often the case in practice that some of the states are not viable in the sense that they do not permit valid solutions to the underlying equations. Since sometimes manually filtering out such states is difficult and their existence does not necessarily impair the validity of the Monte Carlo analysis, it would be desirable to have an optional ability to avoid throwing solver errors and halting the entire ensemble simulation.\r\n\r\nAs discussed in the Gitter chat, a reasonable API solution could consist of letting the user optionally pass a callback via `on_failure(prob,failed_prob,i)`. A reasonable generic callback of this kind could, for instance, consist of adding an additional simulation to the ensemble to compensate for the failed one and saving the failed initial state to some data structure for later analysis."},"comment":{"url":"https://api.github.com/repos/JuliaDiffEq/DiffEqMonteCarlo.jl/issues/comments/314878095","html_url":"https://github.com/JuliaDiffEq/DiffEqMonteCarlo.jl/issues/14#issuecomment-314878095","issue_url":"https://api.github.com/repos/JuliaDiffEq/DiffEqMonteCarlo.jl/issues/14","id":314878095,"user":{"login":"ChrisRackauckas","id":1814174,"avatar_url":"https://avatars1.githubusercontent.com/u/1814174?v=3","gravatar_id":"","url":"https://api.github.com/users/ChrisRackauckas","html_url":"https://github.com/ChrisRackauckas","followers_url":"https://api.github.com/users/ChrisRackauckas/followers","following_url":"https://api.github.com/users/ChrisRackauckas/following{/other_user}","gists_url":"https://api.github.com/users/ChrisRackauckas/gists{/gist_id}","starred_url":"https://api.github.com/users/ChrisRackauckas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ChrisRackauckas/subscriptions","organizations_url":"https://api.github.com/users/ChrisRackauckas/orgs","repos_url":"https://api.github.com/users/ChrisRackauckas/repos","events_url":"https://api.github.com/users/ChrisRackauckas/events{/privacy}","received_events_url":"https://api.github.com/users/ChrisRackauckas/received_events","type":"User","site_admin":false},"created_at":"2017-07-12T19:53:06Z","updated_at":"2017-07-12T19:53:06Z","body":"From today. Instead of expanding the interface a bunch, we can make `output_func` handle this.\r\n\r\n```julia\r\noutput_func(sol,i)\r\n  # make some output value `out`\r\n  out,rerun,save\r\nend\r\n```\r\n\r\n`rerun` is a boolean for whether to run another time (does it need to change the problem? How?), and `save` is a boolean for whether to save this run."}}
{"actor":{"display_login":"ChrisRackauckas"}}