-
Notifications
You must be signed in to change notification settings - Fork 190
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
Integrators - minimal working example for higher order integration methods #1449
Comments
dom-kufel
changed the title
Integrators - minimal working example for custom TDVP
Integrators - minimal working example for higher order integration methods
Mar 22, 2023
PhilipVinc
added a commit
that referenced
this issue
Oct 2, 2024
As previously mentioned (see #1456 or #1449), the structure of `RKIntegrator` is quite intricate and complicated to address. This PR basically creates super-classes which contain all the complicated stuff (like the `IntegratorState` or the `adaptive_step`), from which the Runge-Kutta integrators inherit. The benefit is that now, to define the RK-integrator (or any other new integrator), one only needs to define a new `Tableau` which contains the requested methods, namely the `step` method and simple information about the integrator (like order, adaptivity etc.). Changes include - creation of these super-classes and definition of the RK solvers as inheritance (subfolder) - addition of comments and definitions of functions here and there, where it felt they were missing - modification of any code which uses integrators (usually replacing `RKIntegrator...` -> `Integrator...`) - modification of the tests accordingly. As a detail, the tests checking the accuracy of the solvers now compare to an analytical solution instead of a numerical one (same ODE, just not using `scipy` anymore) In practice, the usage remains the same, only the internal structure changes. The reason for this code is that I had a custom integrator for which I created this whole structure, so I am sharing it here --------- Co-authored-by: Filippo Vicentini <[email protected]>
Must still document this, but the interface is now decently defined... |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi, I am interested in a minimal working example for using higher order integration methods. I cannot immediately see how does their implementation work. For instance, given a TDVP linear ODE in custom_simple_tdvp() from https://scipost.org/SciPostPhysCodeb.7/pdf how would you modify simple Euler rule to e.g., RK12 while utilizing methods from netket.experimental.dynamics?
The text was updated successfully, but these errors were encountered: