![]() |
Octopus
|
Data Types | |
| type | propagation_ops_elec_t |
Functions/Subroutines | |
| subroutine, public | propagation_ops_elec_update_hamiltonian (namespace, space, st, mesh, hm, ext_partners, time) |
| subroutine, public | propagation_ops_elec_move_ions (wo, gr, hm, st, namespace, space, ions_dyn, ions, ext_partners, mc, time, dt, save_pos) |
| subroutine, public | propagation_ops_elec_propagate_ions_and_cell (gr, hm, st, namespace, space, ions_dyn, ions, mc, time, dt_ions) |
| subroutine, public | propagation_ops_elec_restore_ions (wo, ions_dyn, ions) |
| subroutine, public | propagation_ops_elec_propagate_gauge_field (wo, gfield, dt, time, save_gf) |
| subroutine, public | propagation_ops_elec_restore_gauge_field (wo, namespace, space, hm, mesh, ext_partners) |
| subroutine, public | propagation_ops_elec_exp_apply (te, namespace, st, mesh, hm, dt, op) |
| subroutine, public | propagation_ops_elec_fuse_density_exp_apply (te, namespace, st, gr, hm, dt, dt2, op, st_td) |
| Apply \( \e^{-i dt H} \) to all states, and accumulate the density in the same pass. More... | |
| subroutine, public | propagation_ops_do_pack (st, hm, ib, ik, copy) |
| subroutine, public | propagation_ops_do_unpack (st, hm, ib, ik) |
| subroutine, public | propagation_ops_finish_unpack (st, hm, ib, ik) |
| subroutine, public | propagation_ops_elec_interpolate_get (hm, vks_old) |
| subroutine | calculate_mxll_dipole_field (hm, mesh, st) |
| subroutine, public propagation_ops_elec_oct_m::propagation_ops_elec_update_hamiltonian | ( | type(namespace_t), intent(in) | namespace, |
| class(space_t), intent(in) | space, | ||
| type(states_elec_t), intent(inout) | st, | ||
| class(mesh_t), intent(in) | mesh, | ||
| type(hamiltonian_elec_t), intent(inout) | hm, | ||
| type(partner_list_t), intent(in) | ext_partners, | ||
| real(real64), intent(in) | time | ||
| ) |
Definition at line 178 of file propagation_ops_elec.F90.
| subroutine, public propagation_ops_elec_oct_m::propagation_ops_elec_move_ions | ( | class(propagation_ops_elec_t), intent(inout) | wo, |
| type(grid_t), intent(inout) | gr, | ||
| type(hamiltonian_elec_t), intent(inout) | hm, | ||
| type(states_elec_t), intent(inout) | st, | ||
| type(namespace_t), intent(in) | namespace, | ||
| type(electron_space_t), intent(in) | space, | ||
| 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, | ||
| real(real64), intent(in) | time, | ||
| real(real64), intent(in) | dt, | ||
| logical, intent(in), optional | save_pos | ||
| ) |
| [in,out] | mc | index and domain communicators |
Definition at line 203 of file propagation_ops_elec.F90.
| subroutine, public propagation_ops_elec_oct_m::propagation_ops_elec_propagate_ions_and_cell | ( | type(grid_t), intent(inout) | gr, |
| type(hamiltonian_elec_t), intent(inout) | hm, | ||
| type(states_elec_t), intent(inout) | st, | ||
| type(namespace_t), intent(in) | namespace, | ||
| type(electron_space_t), intent(in) | space, | ||
| type(ion_dynamics_t), intent(inout) | ions_dyn, | ||
| type(ions_t), intent(inout) | ions, | ||
| type(multicomm_t), intent(inout) | mc, | ||
| real(real64), intent(in) | time, | ||
| real(real64), intent(in) | dt_ions | ||
| ) |
| [in,out] | mc | index and domain communicators |
Definition at line 244 of file propagation_ops_elec.F90.
| subroutine, public propagation_ops_elec_oct_m::propagation_ops_elec_restore_ions | ( | class(propagation_ops_elec_t), intent(inout) | wo, |
| type(ion_dynamics_t), intent(inout) | ions_dyn, | ||
| type(ions_t), intent(inout) | ions | ||
| ) |
Definition at line 272 of file propagation_ops_elec.F90.
| subroutine, public propagation_ops_elec_oct_m::propagation_ops_elec_propagate_gauge_field | ( | class(propagation_ops_elec_t), intent(inout) | wo, |
| type(gauge_field_t), intent(inout) | gfield, | ||
| real(real64), intent(in) | dt, | ||
| real(real64), intent(in) | time, | ||
| logical, intent(in), optional | save_gf | ||
| ) |
Definition at line 292 of file propagation_ops_elec.F90.
| subroutine, public propagation_ops_elec_oct_m::propagation_ops_elec_restore_gauge_field | ( | class(propagation_ops_elec_t), intent(inout) | wo, |
| type(namespace_t), intent(in) | namespace, | ||
| class(space_t), intent(in) | space, | ||
| type(hamiltonian_elec_t), intent(inout) | hm, | ||
| class(mesh_t), intent(in) | mesh, | ||
| type(partner_list_t), intent(in) | ext_partners | ||
| ) |
Definition at line 320 of file propagation_ops_elec.F90.
| subroutine, public propagation_ops_elec_oct_m::propagation_ops_elec_exp_apply | ( | type(exponential_t), intent(inout) | te, |
| type(namespace_t), intent(in) | namespace, | ||
| type(states_elec_t), intent(inout) | st, | ||
| class(mesh_t), intent(in) | mesh, | ||
| type(hamiltonian_elec_t), intent(inout) | hm, | ||
| real(real64), intent(in) | dt, | ||
| class(operator_t), intent(in), optional | op | ||
| ) |
| [in] | op | operator to be applied in the exponential |
Definition at line 349 of file propagation_ops_elec.F90.
| subroutine, public propagation_ops_elec_oct_m::propagation_ops_elec_fuse_density_exp_apply | ( | type(exponential_t), intent(inout) | te, |
| type(namespace_t), intent(in) | namespace, | ||
| type(states_elec_t), intent(inout) | st, | ||
| type(grid_t), intent(in) | gr, | ||
| type(hamiltonian_elec_t), intent(inout) | hm, | ||
| real(real64), intent(in) | dt, | ||
| real(real64), intent(in), optional | dt2, | ||
| class(operator_t), intent(in), optional | op, | ||
| type(states_elec_t), intent(inout), optional, target | st_td | ||
| ) |
Apply \( \e^{-i dt H} \) to all states, and accumulate the density in the same pass.
With dt only, the states are propagated a half time-step: stpsib <- exp(-i dt H) stpsib. The density of stpsib is written to strho.
With dt and dt2, the states are simultaneously propagated half and full time-steps: stpsib <- exp(-i dt H) stpsib. zpsib_dt <- exp(-i dt2 H) stpsib
If st_td is present, zpsib_dt points to st_tdpsib, so the dt2-propagated states are also returned. Otherwise zpsib_dt is a local buffer that is discarded.
If dt2 is passed, the density is always computed for the full time step. If st_td is present, the density is returned in st_tdrho, otherwise it is returned in strho.
| [in] | op | operator to be applied in the exponential |
| [in,out] | st_td | Optional full-time states, required for the |
Definition at line 409 of file propagation_ops_elec.F90.
| subroutine, public propagation_ops_elec_oct_m::propagation_ops_do_pack | ( | type(states_elec_t), intent(inout) | st, |
| type(hamiltonian_elec_t), intent(inout) | hm, | ||
| integer, intent(in) | ib, | ||
| integer, intent(in) | ik, | ||
| logical, intent(in), optional | copy | ||
| ) |
Definition at line 521 of file propagation_ops_elec.F90.
| subroutine, public propagation_ops_elec_oct_m::propagation_ops_do_unpack | ( | type(states_elec_t), intent(inout) | st, |
| type(hamiltonian_elec_t), intent(inout) | hm, | ||
| integer, intent(in) | ib, | ||
| integer, intent(in) | ik | ||
| ) |
Definition at line 544 of file propagation_ops_elec.F90.
| subroutine, public propagation_ops_elec_oct_m::propagation_ops_finish_unpack | ( | type(states_elec_t), intent(inout) | st, |
| type(hamiltonian_elec_t), intent(inout) | hm, | ||
| integer, intent(in) | ib, | ||
| integer, intent(in) | ik | ||
| ) |
Definition at line 560 of file propagation_ops_elec.F90.
| subroutine, public propagation_ops_elec_oct_m::propagation_ops_elec_interpolate_get | ( | type(hamiltonian_elec_t), intent(inout) | hm, |
| type(potential_interpolation_t), intent(inout) | vks_old | ||
| ) |
Definition at line 576 of file propagation_ops_elec.F90.
|
private |
Definition at line 589 of file propagation_ops_elec.F90.