52 subroutine exponential_midpoint(hm, namespace, space, gr, st, tr, time, dt, ions_dyn, ions, ext_partners)
53 type(hamiltonian_elec_t),
target,
intent(inout) :: hm
54 type(namespace_t),
intent(in) :: namespace
55 type(electron_space_t),
intent(in) :: space
56 type(grid_t),
target,
intent(in) :: gr
57 type(states_elec_t),
target,
intent(inout) :: st
58 type(propagator_base_t),
target,
intent(inout) :: tr
59 real(real64),
intent(in) :: time
60 real(real64),
intent(in) :: dt
61 type(ion_dynamics_t),
intent(inout) :: ions_dyn
62 type(ions_t),
intent(inout) :: ions
63 type(partner_list_t),
intent(in) :: ext_partners
65 type(gauge_field_t),
pointer :: gfield
72 if(
associated(gfield))
then
78 time, dt, time - dt/
m_two, hm%vhxc, vtau = hm%vtau)
85 if(
associated(gfield))
then
type(gauge_field_t) function, pointer, public list_get_gauge_field(partners)
logical pure function, public gauge_field_is_propagated(this)
real(real64), parameter, public m_two
real(real64), parameter, public m_half
This module implements the underlying real-space grid.
integer, parameter, public independent_particles
This module defines classes and functions for interaction partners.
subroutine, public potential_interpolation_interpolate(potential_interpolation, order, time, dt, t, vhxc, vtau)
subroutine, public propagation_ops_elec_restore_ions(wo, ions_dyn, ions)
subroutine, public propagation_ops_elec_move_ions(wo, gr, hm, st, namespace, space, ions_dyn, ions, ext_partners, time, dt, save_pos)
subroutine, public propagation_ops_elec_propagate_gauge_field(wo, gfield, dt, time, save_gf)
subroutine, public propagation_ops_elec_update_hamiltonian(namespace, space, st, mesh, hm, ext_partners, time)
subroutine, public propagation_ops_elec_restore_gauge_field(wo, namespace, space, hm, mesh, ext_partners)
subroutine, public propagation_ops_elec_fuse_density_exp_apply(te, namespace, st, gr, hm, dt, dt2, vmagnus)
subroutine, public exponential_midpoint(hm, namespace, space, gr, st, tr, time, dt, ions_dyn, ions, ext_partners)
Exponential midpoint.