![]() |
Octopus
|
Functions/Subroutines | |
| subroutine, public | td_etrs (ks, namespace, space, hm, ext_partners, gr, st, tr, time, dt, ions_dyn, ions, mc) |
| Propagator with enforced time-reversal symmetry, ETRS. More... | |
| subroutine | td_etrs_independent_particles (namespace, space, hm, ext_partners, gr, st, tr, time, dt, ions_dyn, ions, mc) |
| Propagator with enforced time-reversal symmetry for independent particles. More... | |
| subroutine | td_etrs_predictor (ks, namespace, space, hm, ext_partners, gr, st, tr, time, dt, ions_dyn, ions, mc) |
| ETRS predictor step. More... | |
| subroutine, public | td_etrs_sc (ks, namespace, space, hm, ext_partners, gr, st, tr, time, dt, ions_dyn, ions, mc, sctol, scsteps) |
| Propagator with enforced time-reversal symmetry and self-consistency. More... | |
| subroutine, public | td_aetrs (namespace, space, hm, gr, st, tr, time, dt, ions_dyn, ions, ext_partners, mc) |
| Propagator with approximate enforced time-reversal symmetry. More... | |
| subroutine, public | td_aetrs_sc (ks, namespace, space, hm, ext_partners, gr, st, tr, time, dt, ions_dyn, ions, mc, sctol, scsteps) |
| Propagator with approximate enforced time-reversal symmetry and self-consistency. More... | |
| subroutine, public | td_caetrs (ks, namespace, space, hm, ext_partners, gr, st, tr, time, dt, ions_dyn, ions, mc) |
| Propagator with approximate enforced time-reversal symmetry. More... | |
| subroutine, public propagator_etrs_oct_m::td_etrs | ( | type(v_ks_t), intent(inout) | ks, |
| type(namespace_t), intent(in) | namespace, | ||
| type(electron_space_t), intent(in) | space, | ||
| type(hamiltonian_elec_t), intent(inout) | hm, | ||
| type(partner_list_t), intent(in) | ext_partners, | ||
| type(grid_t), intent(inout) | gr, | ||
| type(states_elec_t), intent(inout) | st, | ||
| type(propagator_base_t), intent(inout) | tr, | ||
| real(real64), intent(in) | time, | ||
| real(real64), intent(in) | dt, | ||
| type(ion_dynamics_t), intent(inout) | ions_dyn, | ||
| type(ions_t), intent(inout) | ions, | ||
| type(multicomm_t), intent(inout) | mc | ||
| ) |
Propagator with enforced time-reversal symmetry, ETRS.
Due to time-reversal symmetry, propagating backwards by \(\Delta t/2\) starting from \(\psi_{j,n+1}\) should lead to the same result as propagating forwards by \(\Delta t/2\) starting from \(\psi_{j,n}\). Using the simplest approximation to the evolution operator, the propagated states are defined as:
\[ \psi_{j,n+1} = e^{-i(\Delta t/2)\tilde{H}_{n+1}} e^{-i(\Delta t/2)H_n} \psi_{j,n}, \]
which can be expressed in terms of the half-step orbitals \(\psi_{j,n+1/2}\) from td_etrs_predictor:
\[ \psi_{j,n+1} = e^{-i(\Delta t/2)\tilde{H}_{n+1}} \psi_{j,n+1/2}, \]
where \(n\) labels discrete time steps, and \(\tilde{H}_{n+1}\) is the approximate Hamiltonian at time \(t_{n+1} = t_n + \Delta t\). This is constructed from the predictor density and (when appropriate) orbitals.
| [in,out] | mc | index and domain communicators |
Definition at line 182 of file propagator_etrs.F90.
|
private |
Propagator with enforced time-reversal symmetry for independent particles.
| [in,out] | mc | index and domain communicators |
Definition at line 215 of file propagator_etrs.F90.
|
private |
ETRS predictor step.
Propagate the current KS orbitals twice. Once by a half step:
\[ \psi_{j,n+1/2} = e^{-i(\Delta t/2)H_n} \psi_{j,n}, \]
and once by a full step:
\[ \tilde{\psi}_{j,n+1} = e^{-i\Delta t H_n} \psi_{j,n}, \]
\( \tilde{\psi}_{j,n+1} \) estimate the end point orbitals, and are used to define the predictor density:
\[ \tilde{\rho}_{n+1}(\mathbf r) = \sum_j f_j |\tilde{\psi}_{j,n+1}(\mathbf r)|^2. \]
| [in,out] | mc | index and domain communicators |
Definition at line 275 of file propagator_etrs.F90.
| subroutine, public propagator_etrs_oct_m::td_etrs_sc | ( | type(v_ks_t), intent(inout) | ks, |
| type(namespace_t), intent(in) | namespace, | ||
| type(electron_space_t), intent(in) | space, | ||
| type(hamiltonian_elec_t), intent(inout) | hm, | ||
| type(partner_list_t), intent(in) | ext_partners, | ||
| type(grid_t), intent(inout) | gr, | ||
| type(states_elec_t), intent(inout) | st, | ||
| type(propagator_base_t), intent(inout) | tr, | ||
| real(real64), intent(in) | time, | ||
| real(real64), intent(in) | dt, | ||
| type(ion_dynamics_t), intent(inout) | ions_dyn, | ||
| type(ions_t), intent(inout) | ions, | ||
| type(multicomm_t), intent(inout) | mc, | ||
| real(real64), intent(in) | sctol, | ||
| integer, intent(out), optional | scsteps | ||
| ) |
Propagator with enforced time-reversal symmetry and self-consistency.
| [in,out] | mc | index and domain communicators |
Definition at line 345 of file propagator_etrs.F90.
| subroutine, public propagator_etrs_oct_m::td_aetrs | ( | type(namespace_t), intent(in) | namespace, |
| type(electron_space_t), intent(in) | space, | ||
| type(hamiltonian_elec_t), intent(inout) | hm, | ||
| type(grid_t), intent(inout) | gr, | ||
| type(states_elec_t), intent(inout) | st, | ||
| type(propagator_base_t), intent(inout) | tr, | ||
| real(real64), intent(in) | time, | ||
| real(real64), intent(in) | dt, | ||
| type(ion_dynamics_t), intent(inout) | ions_dyn, | ||
| type(ions_t), intent(inout) | ions, | ||
| type(partner_list_t), intent(in) | ext_partners, | ||
| type(multicomm_t), intent(inout) | mc | ||
| ) |
Propagator with approximate enforced time-reversal symmetry.
| [in,out] | mc | index and domain communicators |
Definition at line 462 of file propagator_etrs.F90.
| subroutine, public propagator_etrs_oct_m::td_aetrs_sc | ( | type(v_ks_t), intent(inout) | ks, |
| type(namespace_t), intent(in) | namespace, | ||
| type(electron_space_t), intent(in) | space, | ||
| type(hamiltonian_elec_t), intent(inout) | hm, | ||
| type(partner_list_t), intent(in) | ext_partners, | ||
| type(grid_t), intent(inout) | gr, | ||
| type(states_elec_t), intent(inout) | st, | ||
| type(propagator_base_t), intent(inout) | tr, | ||
| real(real64), intent(in) | time, | ||
| real(real64), intent(in) | dt, | ||
| type(ion_dynamics_t), intent(inout) | ions_dyn, | ||
| type(ions_t), intent(inout) | ions, | ||
| type(multicomm_t), intent(inout) | mc, | ||
| real(real64), intent(in) | sctol, | ||
| integer, intent(out), optional | scsteps | ||
| ) |
Propagator with approximate enforced time-reversal symmetry and self-consistency.
| [in,out] | mc | index and domain communicators |
Definition at line 507 of file propagator_etrs.F90.
| subroutine, public propagator_etrs_oct_m::td_caetrs | ( | type(v_ks_t), intent(inout) | ks, |
| type(namespace_t), intent(in) | namespace, | ||
| type(electron_space_t), intent(in) | space, | ||
| type(hamiltonian_elec_t), intent(inout) | hm, | ||
| type(partner_list_t), intent(in) | ext_partners, | ||
| type(grid_t), intent(inout) | gr, | ||
| type(states_elec_t), intent(inout) | st, | ||
| type(propagator_base_t), intent(inout) | tr, | ||
| real(real64), intent(in) | time, | ||
| real(real64), intent(in) | dt, | ||
| type(ion_dynamics_t), intent(inout) | ions_dyn, | ||
| type(ions_t), intent(inout) | ions, | ||
| type(multicomm_t), intent(inout) | mc | ||
| ) |
Propagator with approximate enforced time-reversal symmetry.
| [in,out] | mc | index and domain communicators |
Definition at line 601 of file propagator_etrs.F90.