Closed andreamarini closed 1 month ago
that assumes that the n-th derivative of G(t) is obtained by iterating the commutator.
The expansion does not come from "iterating the commutator", but from the expansion of the expression
exp(+i*H*t) * G(t,t') * exp(-i*H*t)
There should be notes / papers on this
The expansion obtained by iterating the commutator is what it is normally used to expand in powers the time-evolution of an operator under the action of a time-independent Hamiltonian.
This is another way to see that the EXP integrator applies only to static Hamiltonians
Why but I think for short Time steps, It should work Claudio
Il mer 29 mag 2024, 14:10 Andrea Marini @.***> ha scritto:
The expansion obtained by iterating the commutator is what it is normally used to expand in powers the time-evolution of an operator under the action of a time-independent Hamiltonian.
This is another way to see that the EXP integrator applies only to static Hamiltonians
— Reply to this email directly, view it on GitHub https://github.com/yambo-code/yambo/issues/93#issuecomment-2137258853, or unsubscribe https://github.com/notifications/unsubscribe-auth/AED6PCKFEPJSFX62U3W5O7TZEXAU7AVCNFSM6AAAAABIOXVYEKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMZXGI2TQOBVGM . You are receiving this because you were assigned.Message ID: @.***>
Claudio, it does not make sense. There is no way to estimate the error induced by neglecting the missing terms.
It is not a matter of the length of the time step. If the electric field is strong and/or rapid oscillating the result can be arbitrary wrong.
I suggest to remove it.
This is another way to see that the EXP integrator applies only to static Hamiltonians
Yeah. It is also written in the description of the subroutine
Still in these cases it is useful.
Ok.
I do think it is to be removed because:
a. it is not exact b. there is no way for any user to realize the limitations
I will clean the RT_integrator in my branch and I will propose a tech branch for that. We will discuss it at the moment of the merging.
There are reasons for which the Exp integrator is better than simple Euler for example. e.g. the Exp integrator is unitary.
Some of them are discussed in the paper pointed out by Daniele: https://doi.org/10.1063/1.1774980 If you combine this with RK2, I think you get the "Exponential mid point" discussed in the reference.
Also see the Octopus documentation: https://www.octopus-code.org/documentation/13/variables/time-dependent/propagation/
For the user, if he does not know what he is doing, he should not try randomly all the possible propagators, but just stick to the default or to the ones he understands, or study before trying others.
I provided an exact (simple) derivation.
I believe we should support the coding with more clear math.
In any case after re-coding the integration I will check on the validity and report the results in preparation of the merging.
Closing issue. The discussion in proceeding here: https://github.com/yambo-code/yambo/issues/95
In yambo_rt there is one integrator named EXP
! 2 - Exp integrator: G(t+dt) = G(t) - i*dt *[H(t'),G(t)] - dt^2 *[H(t'),[H(t'),G(t)]] + .... [Can be expanded up to order 6]
that assumes that the n-th derivative of G(t) is obtained by iterating the commutator.
I attach notes where I demonstrate that this is not the case and additional terms appear.
Let me know if you agree.
scan.pdf