|
| subroutine, public | propagator_magnus_oct_m::td_magnus (hm, ext_partners, gr, st, tr, namespace, time, dt) |
| | Magnus propagator. More...
|
| |
| type(magnus4_operator_t) function, pointer | propagator_magnus_oct_m::magnus4_operator_constructor (namespace, mesh, hm, vmagnus) |
| |
| subroutine | propagator_magnus_oct_m::magnus4_operator_apply (this, psib, hpsib) |
| |
| type(magnus3_linear_operator_t) function, pointer | propagator_magnus_oct_m::magnus3_linear_operator_constructor (namespace, mesh, hm1, hm2, c1, c2) |
| | Build a linear Hamiltonian operator c1*H1 + c2*H2. More...
|
| |
| subroutine | propagator_magnus_oct_m::magnus3_apply_stage_in_ref_phase (namespace, mesh, hm_ref, hm_stage, psib, hpsib) |
| | Apply a stage Hamiltonian in the reference Hamiltonian phase convention. More...
|
| |
| subroutine | propagator_magnus_oct_m::magnus3_linear_operator_apply (this, psib, hpsib) |
| | Apply the linear Hamiltonian operator for the explicit Magnus-3 stages. More...
|
| |
| type(magnus3_operator_t) function, pointer | propagator_magnus_oct_m::magnus3_operator_constructor (namespace, mesh, hm1, hm2, hm3, hm4, dt) |
| | Build the explicit Magnus-3 final-stage operator from stage Hamiltonians. More...
|
| |
| subroutine | propagator_magnus_oct_m::magnus3_operator_apply (this, psib, hpsib) |
| | Apply the explicit Magnus-3 operator (weighted stage sum plus commutator term). The equation refers to: Casas, F. & Iserles, A. Explicit Magnus expansions for nonlinear equations. J. Phys. A: Math. Gen. 39, 5445 (2006) [https: More...
|
| |
| subroutine, public | propagator_magnus_oct_m::td_explicit_magnus3 (ks, namespace, space, hm, gr, st, tr, time, dt, ions_dyn, ions, ext_partners, mc) |
| | Third-order explicit Magnus propagator. This implements equation (22) from Casas, F. & Iserles, A. Explicit Magnus expansions for nonlinear equations. J. Phys. A: Math. Gen. 39, 5445 (2006) [https: More...
|
| |
| subroutine, public | propagator_magnus_oct_m::td_cfmagnus4 (ks, namespace, space, hm, gr, st, tr, time, dt, ions_dyn, ions, ext_partners, mc, iter) |
| | Commutator-free Magnus propagator of order 4. This method has been developed for linear systems and involves products of exponentials to avoid commutators. To apply it to our non-linear equations, we extrapolate the potential from previous timesteps to the times needed. The fourth-ordermethod implemented here follows equation 54 in G\U000000f3mez Pueyo, A., Marques, M. A. L., Rubio, A. & Castro, A. Propagators for the Time-Dependent Kohn–Sham Equations: Multistep, Runge–Kutta, Exponential Runge–Kutta, and Commutator Free Magnus Methods. J. Chem. Theory Comput. 14, 3040–3052 (2018) which corresponds to equation 43 in Blanes, S. & Moan, P. C. Fourth- and sixth-order commutator-free Magnus integrators for linear and non-linear dynamical systems. Applied Numerical Mathematics 56, 1519–1537 (2006): <math> \psi(t+\Delta t) = \exp(-i \Delta t ( \alpha_1 H(t_1) + \alpha_2 H(t_2) ) ) \exp(-i \Delta t ( \alpha_2 H(t_1) + \alpha_1 H(t_2) ) ) \psi(t), </math> with $\alpha_{1,2} = \frac{3\mp 2\sqrt{3}}{12}$ and $t_i = t_0 + c_i \Delta t$, $c_{1,2} = \frac{1}{2} \mp \frac{\sqrt{3}}{6}$. More...
|
| |