Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stocahstic Differential Equation Models / Integration Schemes #70

Open
cgrudz opened this issue May 12, 2021 · 3 comments
Open

Stocahstic Differential Equation Models / Integration Schemes #70

cgrudz opened this issue May 12, 2021 · 3 comments
Projects

Comments

@cgrudz
Copy link
Contributor

cgrudz commented May 12, 2021

Hey Y'all,

I wanted to post a proposal about integrating some new features into DAPPER. I will be teaching with DAPPER over the summer and in the fall, and I plan to implement a number of Jupyter example worksheets that will follow experiment-driven learning on various topics in DA and numerical simulation. Because these will be wide survey courses, I would like to add some additional features into DAPPER to teach a variety of topics.

The first feature that I'd like to propose integrating is some functionality around stochastic differential equations. I have a number of Python functions related to this in an old repository that allow for the rigorous simulation of SDEs generally, and some that are designed specifically for the Lorenz-96 model with additive noise. The mathematical details are included here. The L96-s model discussed in the manuscript could be implemented as its own model in DAPPER with the configuration that we studied and rigorously validated in our work.

I will be available for development of the methods and merging these into DAPPER, but if there is time available, I'd be quite happy to develop these methods and a variety of examples with support from others in the project to merge these features. Likewise, I have a number of additional features to start working on upcoming over the next few months in preparation for the fall course.

Let me know if that sounds good, I'll want to have these SDE features and probably some other minor additions merged by the end of June.

Cheers,
Colin

@patnr
Copy link
Collaborator

patnr commented May 13, 2021

So, to summarise my understanding: we can expect quite a few contributions from your part in the next few months. These should be high-quality, as they build on published work, and will be used for teaching in a course. The first one is on stochastic integration methods. We've already discussed this on the phone, and providing it is fairly modular or does not require very major changes the the configuration system, it should be a doable (and valuable) thing! Moreover, for high efficiency, you should have some assistance in implementing the features in DAPPER. I want to be part of this, but am quite busy right now, so I'll take the liberty to ping @yumengch to ask if he could imagine working on this?

The next steps would be to outline below how the implementation would look, more or less, which we can then discuss. Or, if you're feeling confident, you can create a draft PR with some changes, and the discussion can take place there.

To start the discussion: Maybe a good way to start would be to implement the stochastic integration schemes as part of a specific model, and later migrate them into the general codebase. Right now there is some (not much) modularity that fits with this feature: the ensemble methods all use the method da_methods.ensemble.add_noise. I suppose that would have to be moved into the model integrator instead. On the other hand, some DA algorithms like the KF and some of the varieties of the particle filters have their own particular way of dealing with model noise, and it is now clear to me how that could be cleanly unified in the code. 🤔

@patnr patnr added this to To do in v2 via automation May 13, 2021
@yumengch
Copy link
Contributor

Hi all,

I'm learning a bit of sea ice modelling recently, but I think I will have some time for the DAPPER development.

I agree that integrating SDE into the core code base will need some change, especially when it comes to the DA algorithms. Adding an option for SDE integration can be a first step.

@cgrudz
Copy link
Contributor Author

cgrudz commented May 14, 2021 via email

This was referenced Jul 14, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
v2
  
To do
Development

No branches or pull requests

3 participants