|
| subroutine | phase_init_phases (phase, gr, kpt, kpoints, d, space) |
| | Initiliaze the phase arrays and copy to GPU the data. More...
|
| |
| subroutine | phase_update_phases (phase, mesh, kpt, kpoints, d, space, uniform_vector_potential) |
| | Update the phases. More...
|
| |
| subroutine | phase_end (phase) |
| | Releases the memory of the phase object. More...
|
| |
| subroutine | phase_set_phase_corr (phase, mesh, psib, async) |
| | set the phase correction (if necessary) More...
|
| |
| subroutine | phase_unset_phase_corr (phase, mesh, psib, async) |
| | unset the phase correction (if necessary) More...
|
| |
| subroutine | phase_apply_batch (this, mesh, np, conjugate, psib, src, async) |
| | apply (remove) the phase to the wave functions before (after) applying the Hamiltonian More...
|
| |
| subroutine | phase_apply_mf (this, psi, np, dim, ik, conjugate) |
| | apply (or remove) the phase to a wave function psi More...
|
| |
| subroutine | phase_phase_spiral (this, der, psib) |
| | apply spiral phase More...
|
| |
| logical pure function | phase_is_allocated (this) |
| |
| subroutine | phase_copy_and_set_phase (phase, gr, kpt, psib, psib_with_phase) |
| | Copy a batch to another batch and apply the Bloch phase to it. More...
|
| |
| subroutine phase_oct_m::phase_apply_mf |
( |
class(phase_t), intent(in) |
this, |
|
|
complex(real64), dimension(:, :), intent(inout) |
psi, |
|
|
integer, intent(in) |
np, |
|
|
integer, intent(in) |
dim, |
|
|
integer, intent(in) |
ik, |
|
|
logical, intent(in) |
conjugate |
|
) |
| |
|
private |
apply (or remove) the phase to a wave function psi
States are usually stored without the phase. Due to the phase convention (exp(-i phase())), the phase is applied by multiplying with the complex conjugate of the phase() function, and removed by multiplying with phase().
- Parameters
-
| [in,out] | psi | the complex wave function |
| [in] | np | number of points |
| [in] | conjugate | if .false.: apply the phase, if .true.: remove the phase |
Definition at line 710 of file phase.F90.
| subroutine phase_oct_m::phase_copy_and_set_phase |
( |
class(phase_t), intent(in) |
phase, |
|
|
type(grid_t), intent(in) |
gr, |
|
|
type(distributed_t), intent(in) |
kpt, |
|
|
type(wfs_elec_t), intent(in) |
psib, |
|
|
type(wfs_elec_t), intent(out) |
psib_with_phase |
|
) |
| |
|
private |
Copy a batch to another batch and apply the Bloch phase to it.
On exist, psib_with_phase is packed If no phase is defined, a packed copy of psib is returned
TODO: This should should probably belong to wfs_elec_t, but cannot due to circular dependencies
- Parameters
-
| [in] | kpt | k-point distribution |
| [in] | psib | Batched wave functions |
| [out] | psib_with_phase | Batched wave functions with phase applied |
Definition at line 877 of file phase.F90.