yambo-code / yambo

This is the official GPL repository of the yambo code
http://www.yambo-code.eu/
GNU General Public License v2.0
98 stars 37 forks source link

Revision of the real-time Integrator methods #126

Open andreamarini opened 2 weeks ago

andreamarini commented 2 weeks ago

On the Yambo notes on overleaf i wrote a detailled analysis of what I know of the numerical approaches to the solution of the real-time dynamics, belonging to the Runge-Kutta family.

I added references and I detailed the math as much I could do.

Some observations follow:

As already stated in issue #95 I have demonstrated that:

More observations about yambo implementation:

sangallidavide commented 2 weeks ago

Thanks Andrea for the notes.

I also point to this paper, and the Octopus code documentation https://doi.org/10.1103/PhysRevE.96.063307 https://www.octopus-code.org/documentation/main/manual/calculations/time-dependent/

Here I just want to restrict the discussion to "RK2 + INV" of yambo (which is the integratore I would suggest as default) and "RK2 + EXP(n)"

The Crank-Nicolson (CN) method (equation 25 in the overleaf notes), is written as equation 21 (in the Phys.Rev. E, after a key approximation), and slightly differently in the Octopus documentation, e.g. with H evaluated at time-step T+dt/2 (following the "mid-point rule") image In both cases it is reduced to an explicit solver. However, in the Octopus notes, it requires to evaluate the hamiltonian at time t+dt/2, what you call "explicit-mid point) or RK22

To connect with yambo, this needs to be generalized to the case of the density matrix. This is done in equations (6) and (7) in my notes. This corresponds to the yambo implementation "RK2+INV", which, folllowing Octopus, and what done by Myrta and Claudio in yambo_nl, can be called CN (or approximated CN) This is an approximation to the "implicit CN", since there is the approximations used in the Phys. Rev. E (right before eq. 21), or its "mid-point" refinement.

Similarly the mid-point or RK22 (simply RK2 in the yambo language) can be combined with the exponential integrator. This gives "RK2+EXP". Again, following Octopus, this is called Exponenital mid-point (EMP) image

andreamarini commented 2 weeks ago

Dear Davide please point me to specific points in the overleaf notes you don't agree and/or you want to comment.

And please define, coherently with the formalism introduced there, the formal derivation and definition of the RK2+EXP. I have tried to do it on a piece of paper but I cannot get it.

Moreover to easily show it's application please consider the simple ODE I use at the end of the notes.

There are also at least two points raised about the validity of the exp elemental evolution operator that I kindly ask you to consider.

On 30 August 2024 11:31:52 CEST, Davide Sangalli @.***> wrote:

Thanks Andrea for the notes.

I also point to this paper, and the Octopus code documentation https://doi.org/10.1103/PhysRevE.96.063307 https://www.octopus-code.org/documentation/main/manual/calculations/time-dependent/

Here I just want to restrict the discussion to "RK2 + INV" of yambo (which is the integratore I would suggest as default) and "RK2 + EXP(n)"

The Crank-Nicolson (CN) method (equation 25 in the overleaf notes), is written as equation 21 (in the Phys.Rev. E, after a key approximation), and slightly differently in the Octopus documentation, e.g. with H evaluated at time-step T+dt/2 (following the "mid-point rule") image In both cases it is reduced to an explicit solver. However, in the Octopus notes, it requires to evaluate the hamiltonian at time t+dt/2, what you call "explicit-mid point) or RK22

To connect with yambo, this needs to be generalized to the case of the density matrix. This is done in equations (6) and (7) in my notes. This corresponds to the yambo implementation "RK2+INV", which, folllowing Octopus, and what done by Myrta and Claudio in yambo_nl, can be called CN (or approximated CN) This is an approximation to the "implicit CN", since there is the approximations used in the Phys. Rev. E (right before eq. 21), or its "mid-point" refinement.

Similarly the mid-point or RK22 (simply RK2 in the yambo language) can be combined with the exponential integrator. This gives "RK2+EXP". Again, following Octopus, this is called Exponenital mid-point (EMP) image

-- Reply to this email directly or view it on GitHub: https://github.com/yambo-code/yambo/issues/126#issuecomment-2320646022 You are receiving this because you were assigned.

Message ID: @.***>

sangallidavide commented 1 week ago

Dear Andrea, I do not have any specific point on which I do not agree. I just reported some extra info (a paper in particular) which extend the notes.

For the simplified model (equation (23) in your notes), this is too simple. It results in a time independent Hamiltonian, H=i*alpha where:

About the exp integrator, and the time-ordering issue, check eqs. (7-9) of the Phys. Rev. E.

andreamarini commented 1 week ago

Dear Davide,

For the simplified model (equation (23) in your notes), this is too simple. It results in a time independent Hamiltonian, H=i*alpha where:

ok. Consider, then, the following ODE

$$\frac{d}{dt} y(t) =I\left[y(t)\right](t) $$

and write explicitly the math the leads of the RK2+EXP solution method pointing to the steps and approximations you used in Yambo.

Please use the overleaf using the notation I introduced.

Thanks

andreamarini commented 1 week ago

Hi Davide, I had a quick look at your overleaf notes and I have a basic comment.

If you agree about my notes this means that you agree that a general Runge-Kutta procedure is mathematically defined by equations (10) and (11).

The equations together with the definition of the corresponding Butcher's tables define inequitably the procedure.

This means that RK2, for example, corresponds to Eq.(15) and CN to Eq.(22).

So I don't understand how, if INV is Eq. (36) and thus corresponds to the Butcher's table defined in Eq. (22), you can combine it with RK2 that corresponds to a different table.

It would be helpful if you use, in your derivations, the formalism I introduced in Sec. IB (if you agree of course).

I have more comment but first I would like to define a common mathematical background.