Octopus
|
Data Types | |
type | hamiltonian_elec_t |
Functions/Subroutines | |
subroutine, public | hamiltonian_elec_init (hm, namespace, space, gr, ions, ext_partners, st, theory_level, xc, mc, kpoints, need_exchange, xc_photons) |
subroutine, public | hamiltonian_elec_end (hm) |
logical function | hamiltonian_elec_hermitian (hm) |
subroutine | hamiltonian_elec_span (hm, delta, emin, namespace) |
pure logical function, public | hamiltonian_elec_inh_term (hm) |
subroutine, public | hamiltonian_elec_set_inh (hm, st) |
subroutine, public | hamiltonian_elec_remove_inh (hm) |
subroutine, public | hamiltonian_elec_adjoint (hm) |
subroutine, public | hamiltonian_elec_not_adjoint (hm) |
subroutine | hamiltonian_elec_update (this, mesh, namespace, space, ext_partners, time) |
(re-)build the Hamiltonian for the next application: More... | |
subroutine, public | hamiltonian_elec_update_pot (this, mesh, accumulate) |
Update the KS potential of the electronic Hamiltonian. More... | |
subroutine, public | hamiltonian_elec_epot_generate (this, namespace, space, gr, ions, ext_partners, st, time) |
real(real64) function, public | hamiltonian_elec_get_time (this) |
pure logical function, public | hamiltonian_elec_apply_packed (this) |
subroutine, public | zhamiltonian_elec_apply_atom (hm, namespace, space, latt, species, pos, ia, mesh, psi, vpsi) |
subroutine, public | hamiltonian_elec_dump_vhxc (restart, hm, space, mesh, ierr) |
subroutine, public | hamiltonian_elec_load_vhxc (restart, hm, space, mesh, ierr) |
subroutine, public | hamiltonian_elec_update_with_ext_pot (this, mesh, space, ext_partners, time, mu) |
This is an extension of "hamiltonian_elec_update_pot" to be used by the CFM4 propagator. It updates the Hamiltonian by considering a weighted sum of the external potentials at times time(1) and time(2), weighted by alpha(1) and alpha(2). More... | |
subroutine, public | hamiltonian_elec_set_vhxc (hm, mesh, vold, vold_tau) |
logical function, public | hamiltonian_elec_needs_current (hm, states_are_real) |
subroutine, public | zhamiltonian_elec_apply_all (hm, namespace, mesh, st, hst) |
subroutine, public | magnus (hm, namespace, mesh, psi, hpsi, ik, vmagnus, set_phase) |
subroutine | vborders (mesh, hm, psi, hpsi) |
logical function, public | hamiltonian_elec_has_kick (hm) |
subroutine | hamiltonian_elec_set_mass (this, namespace, mass) |
set the effective electron mass, checking whether it was previously redefined. More... | |
subroutine, public | hamiltonian_elec_copy_and_set_phase (hm, gr, kpt, psib, psib_with_phase) |
Copy a batch to another batch and apply the Bloch phase to it. More... | |
subroutine | dhamiltonian_elec_apply (hm, namespace, mesh, psib, hpsib, terms, set_bc) |
subroutine | dhamiltonian_elec_magnus_apply (hm, namespace, mesh, psib, hpsib, vmagnus) |
subroutine, public | dhamiltonian_elec_apply_batch (hm, namespace, mesh, psib, hpsib, terms, set_bc) |
subroutine | dhamiltonian_elec_external (this, mesh, psib, vpsib) |
subroutine, public | dhamiltonian_elec_apply_single (hm, namespace, mesh, psi, hpsi, ist, ik, terms, set_bc, set_phase) |
subroutine | dhamiltonian_elec_magnus_apply_batch (hm, namespace, mesh, psib, hpsib, vmagnus) |
subroutine | dh_mgga_terms (hm, mesh, psib, hpsib, ghost_update) |
subroutine, public | dvmask (mesh, hm, st) |
subroutine, public | dhamiltonian_elec_diagonal (hm, mesh, diag, ik) |
subroutine | zhamiltonian_elec_apply (hm, namespace, mesh, psib, hpsib, terms, set_bc) |
subroutine | zhamiltonian_elec_magnus_apply (hm, namespace, mesh, psib, hpsib, vmagnus) |
subroutine, public | zhamiltonian_elec_apply_batch (hm, namespace, mesh, psib, hpsib, terms, set_bc) |
subroutine | zhamiltonian_elec_external (this, mesh, psib, vpsib) |
subroutine, public | zhamiltonian_elec_apply_single (hm, namespace, mesh, psi, hpsi, ist, ik, terms, set_bc, set_phase) |
subroutine | zhamiltonian_elec_magnus_apply_batch (hm, namespace, mesh, psib, hpsib, vmagnus) |
subroutine | zh_mgga_terms (hm, mesh, psib, hpsib, ghost_update) |
subroutine, public | zvmask (mesh, hm, st) |
subroutine, public | zhamiltonian_elec_diagonal (hm, mesh, diag, ik) |
Variables | |
integer, parameter, public | length = 1 |
integer, parameter, public | velocity = 2 |
integer, parameter, public | independent_particles = 2 |
integer, parameter, public | hartree = 1 |
integer, parameter, public | hartree_fock = 3 |
integer, parameter, public | kohn_sham_dft = 4 |
integer, parameter, public | generalized_kohn_sham_dft = 5 |
integer, parameter, public | rdmft = 7 |
subroutine, public hamiltonian_elec_oct_m::hamiltonian_elec_init | ( | type(hamiltonian_elec_t), intent(inout), target | hm, |
type(namespace_t), intent(in) | namespace, | ||
class(space_t), intent(in) | space, | ||
type(grid_t), intent(inout), target | gr, | ||
type(ions_t), intent(inout), target | ions, | ||
type(partner_list_t), intent(inout) | ext_partners, | ||
type(states_elec_t), intent(inout), target | st, | ||
integer, intent(in) | theory_level, | ||
type(xc_t), intent(in), target | xc, | ||
type(multicomm_t), intent(in) | mc, | ||
type(kpoints_t), intent(in), target | kpoints, | ||
logical, intent(in), optional | need_exchange, | ||
type(xc_photons_t), intent(in), optional, target | xc_photons | ||
) |
Definition at line 337 of file hamiltonian_elec.F90.
subroutine, public hamiltonian_elec_oct_m::hamiltonian_elec_end | ( | type(hamiltonian_elec_t), intent(inout), target | hm | ) |
Definition at line 785 of file hamiltonian_elec.F90.
|
private |
Definition at line 854 of file hamiltonian_elec.F90.
|
private |
Definition at line 866 of file hamiltonian_elec.F90.
pure logical function, public hamiltonian_elec_oct_m::hamiltonian_elec_inh_term | ( | type(hamiltonian_elec_t), intent(in) | hm | ) |
Definition at line 888 of file hamiltonian_elec.F90.
subroutine, public hamiltonian_elec_oct_m::hamiltonian_elec_set_inh | ( | type(hamiltonian_elec_t), intent(inout) | hm, |
type(states_elec_t), intent(in) | st | ||
) |
Definition at line 896 of file hamiltonian_elec.F90.
subroutine, public hamiltonian_elec_oct_m::hamiltonian_elec_remove_inh | ( | type(hamiltonian_elec_t), intent(inout) | hm | ) |
Definition at line 911 of file hamiltonian_elec.F90.
subroutine, public hamiltonian_elec_oct_m::hamiltonian_elec_adjoint | ( | type(hamiltonian_elec_t), intent(inout) | hm | ) |
Definition at line 925 of file hamiltonian_elec.F90.
subroutine, public hamiltonian_elec_oct_m::hamiltonian_elec_not_adjoint | ( | type(hamiltonian_elec_t), intent(inout) | hm | ) |
Definition at line 942 of file hamiltonian_elec.F90.
|
private |
(re-)build the Hamiltonian for the next application:
Definition at line 960 of file hamiltonian_elec.F90.
subroutine, public hamiltonian_elec_oct_m::hamiltonian_elec_update_pot | ( | type(hamiltonian_elec_t), intent(inout) | this, |
class(mesh_t), intent(in) | mesh, | ||
logical, intent(in), optional | accumulate | ||
) |
Update the KS potential of the electronic Hamiltonian.
Adds PCM contributions
Adds possible absorbing potential
Definition at line 1191 of file hamiltonian_elec.F90.
subroutine, public hamiltonian_elec_oct_m::hamiltonian_elec_epot_generate | ( | type(hamiltonian_elec_t), intent(inout) | this, |
type(namespace_t), intent(in) | namespace, | ||
class(electron_space_t), intent(in) | space, | ||
type(grid_t), intent(in) | gr, | ||
type(ions_t), intent(inout), target | ions, | ||
type(partner_list_t), intent(in) | ext_partners, | ||
type(states_elec_t), intent(inout) | st, | ||
real(real64), intent(in), optional | time | ||
) |
Generates the real-space PCM potential due to nuclei which do not change during the SCF calculation.
Local field effects due to static electrostatic potentials (if they were). The laser and the kick are included in subroutine v_ks_hartree (module v_ks).
Definition at line 1311 of file hamiltonian_elec.F90.
real(real64) function, public hamiltonian_elec_oct_m::hamiltonian_elec_get_time | ( | type(hamiltonian_elec_t), intent(inout) | this | ) |
Definition at line 1394 of file hamiltonian_elec.F90.
pure logical function, public hamiltonian_elec_oct_m::hamiltonian_elec_apply_packed | ( | class(hamiltonian_elec_t), intent(in) | this | ) |
Definition at line 1402 of file hamiltonian_elec.F90.
subroutine, public hamiltonian_elec_oct_m::zhamiltonian_elec_apply_atom | ( | type(hamiltonian_elec_t), intent(in) | hm, |
type(namespace_t), intent(in) | namespace, | ||
class(space_t), intent(in) | space, | ||
type(lattice_vectors_t), intent(in) | latt, | ||
class(species_t), intent(in) | species, | ||
real(real64), dimension(1:space%dim), intent(in) | pos, | ||
integer, intent(in) | ia, | ||
class(mesh_t), intent(in) | mesh, | ||
complex(real64), dimension(:,:), intent(in) | psi, | ||
complex(real64), dimension(:,:), intent(out) | vpsi | ||
) |
[in] | psi | (grnp_part, hmddim) |
[out] | vpsi | (grnp, hmddim) |
Definition at line 1411 of file hamiltonian_elec.F90.
subroutine, public hamiltonian_elec_oct_m::hamiltonian_elec_dump_vhxc | ( | type(restart_t), intent(in) | restart, |
type(hamiltonian_elec_t), intent(in) | hm, | ||
class(space_t), intent(in) | space, | ||
class(mesh_t), intent(in) | mesh, | ||
integer, intent(out) | ierr | ||
) |
Definition at line 1441 of file hamiltonian_elec.F90.
subroutine, public hamiltonian_elec_oct_m::hamiltonian_elec_load_vhxc | ( | type(restart_t), intent(in) | restart, |
type(hamiltonian_elec_t), intent(inout) | hm, | ||
class(space_t), intent(in) | space, | ||
class(mesh_t), intent(in) | mesh, | ||
integer, intent(out) | ierr | ||
) |
Definition at line 1533 of file hamiltonian_elec.F90.
subroutine, public hamiltonian_elec_oct_m::hamiltonian_elec_update_with_ext_pot | ( | type(hamiltonian_elec_t), intent(inout) | this, |
class(mesh_t), intent(in) | mesh, | ||
class(space_t), intent(in) | space, | ||
type(partner_list_t), intent(in) | ext_partners, | ||
real(real64), dimension(1:2), intent(in) | time, | ||
real(real64), dimension(1:2), intent(in) | mu | ||
) |
This is an extension of "hamiltonian_elec_update_pot" to be used by the CFM4 propagator. It updates the Hamiltonian by considering a weighted sum of the external potentials at times time(1) and time(2), weighted by alpha(1) and alpha(2).
Definition at line 1599 of file hamiltonian_elec.F90.
subroutine, public hamiltonian_elec_oct_m::hamiltonian_elec_set_vhxc | ( | type(hamiltonian_elec_t), intent(inout) | hm, |
class(mesh_t), intent(in) | mesh, | ||
real(real64), dimension(:, :), intent(in), contiguous | vold, | ||
real(real64), dimension(:, :), intent(in), optional, contiguous | vold_tau | ||
) |
Definition at line 1795 of file hamiltonian_elec.F90.
logical function, public hamiltonian_elec_oct_m::hamiltonian_elec_needs_current | ( | type(hamiltonian_elec_t), intent(in) | hm, |
logical, intent(in) | states_are_real | ||
) |
Definition at line 1811 of file hamiltonian_elec.F90.
subroutine, public hamiltonian_elec_oct_m::zhamiltonian_elec_apply_all | ( | type(hamiltonian_elec_t), intent(inout) | hm, |
type(namespace_t), intent(in) | namespace, | ||
class(mesh_t), intent(in) | mesh, | ||
type(states_elec_t), intent(inout) | st, | ||
type(states_elec_t), intent(inout) | hst | ||
) |
Definition at line 1829 of file hamiltonian_elec.F90.
subroutine, public hamiltonian_elec_oct_m::magnus | ( | type(hamiltonian_elec_t), intent(in) | hm, |
type(namespace_t), intent(in) | namespace, | ||
class(mesh_t), intent(in) | mesh, | ||
complex(real64), dimension(:,:), intent(inout) | psi, | ||
complex(real64), dimension(:,:), intent(out) | hpsi, | ||
integer, intent(in) | ik, | ||
real(real64), dimension(:, :, :), intent(in) | vmagnus, | ||
logical, intent(in), optional | set_phase | ||
) |
[in] | set_phase | If set to .false. the phase will not be added to the states. |
Definition at line 1878 of file hamiltonian_elec.F90.
|
private |
Definition at line 1930 of file hamiltonian_elec.F90.
logical function, public hamiltonian_elec_oct_m::hamiltonian_elec_has_kick | ( | type(hamiltonian_elec_t), intent(in) | hm | ) |
Definition at line 1950 of file hamiltonian_elec.F90.
|
private |
set the effective electron mass, checking whether it was previously redefined.
Definition at line 1962 of file hamiltonian_elec.F90.
subroutine, public hamiltonian_elec_oct_m::hamiltonian_elec_copy_and_set_phase | ( | type(hamiltonian_elec_t), intent(in) | hm, |
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 | ||
) |
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
[in] | kpt | k-point distribution |
[in] | psib | Batched wave functions |
[out] | psib_with_phase | Batched wave functions with phase applied |
Definition at line 1986 of file hamiltonian_elec.F90.
|
private |
[in] | set_bc | If set to .false. the boundary conditions are assumed to be set previously. |
Definition at line 2084 of file hamiltonian_elec.F90.
|
private |
Definition at line 2113 of file hamiltonian_elec.F90.
subroutine, public hamiltonian_elec_oct_m::dhamiltonian_elec_apply_batch | ( | type(hamiltonian_elec_t), intent(in) | hm, |
type(namespace_t), intent(in) | namespace, | ||
class(mesh_t), intent(in) | mesh, | ||
type(wfs_elec_t), intent(inout), target | psib, | ||
type(wfs_elec_t), intent(inout), target | hpsib, | ||
integer, intent(in), optional | terms, | ||
logical, intent(in), optional | set_bc | ||
) |
[in] | set_bc | If set to .false. the boundary conditions are assumed to be set previously. |
Definition at line 2141 of file hamiltonian_elec.F90.
|
private |
Definition at line 2350 of file hamiltonian_elec.F90.
subroutine, public hamiltonian_elec_oct_m::dhamiltonian_elec_apply_single | ( | type(hamiltonian_elec_t), intent(in) | hm, |
type(namespace_t), intent(in) | namespace, | ||
class(mesh_t), intent(in) | mesh, | ||
real(real64), dimension(:,:), intent(inout), target, contiguous | psi, | ||
real(real64), dimension(:,:), intent(inout), target, contiguous | hpsi, | ||
integer, intent(in) | ist, | ||
integer, intent(in) | ik, | ||
integer, intent(in), optional | terms, | ||
logical, intent(in), optional | set_bc, | ||
logical, intent(in), optional | set_phase | ||
) |
[in] | ist | the index of the state |
[in] | ik | the index of the k-point |
[in,out] | psi | (grmeshnp_part, hmddim) |
[in,out] | hpsi | (grmeshnp, hmddim) |
Definition at line 2399 of file hamiltonian_elec.F90.
|
private |
Definition at line 2433 of file hamiltonian_elec.F90.
|
private |
Definition at line 2485 of file hamiltonian_elec.F90.
subroutine, public hamiltonian_elec_oct_m::dvmask | ( | class(mesh_t), intent(in) | mesh, |
type(hamiltonian_elec_t), intent(in) | hm, | ||
type(states_elec_t), intent(inout) | st | ||
) |
Definition at line 2549 of file hamiltonian_elec.F90.
subroutine, public hamiltonian_elec_oct_m::dhamiltonian_elec_diagonal | ( | type(hamiltonian_elec_t), intent(in) | hm, |
class(mesh_t), intent(in) | mesh, | ||
real(real64), dimension(:,:), intent(out) | diag, | ||
integer, intent(in) | ik | ||
) |
[out] | diag | hpsi(grmeshnp, hmddim) |
Definition at line 2580 of file hamiltonian_elec.F90.
|
private |
[in] | set_bc | If set to .false. the boundary conditions are assumed to be set previously. |
Definition at line 2694 of file hamiltonian_elec.F90.
|
private |
Definition at line 2723 of file hamiltonian_elec.F90.
subroutine, public hamiltonian_elec_oct_m::zhamiltonian_elec_apply_batch | ( | type(hamiltonian_elec_t), intent(in) | hm, |
type(namespace_t), intent(in) | namespace, | ||
class(mesh_t), intent(in) | mesh, | ||
type(wfs_elec_t), intent(inout), target | psib, | ||
type(wfs_elec_t), intent(inout), target | hpsib, | ||
integer, intent(in), optional | terms, | ||
logical, intent(in), optional | set_bc | ||
) |
[in] | set_bc | If set to .false. the boundary conditions are assumed to be set previously. |
Definition at line 2751 of file hamiltonian_elec.F90.
|
private |
Definition at line 2960 of file hamiltonian_elec.F90.
subroutine, public hamiltonian_elec_oct_m::zhamiltonian_elec_apply_single | ( | type(hamiltonian_elec_t), intent(in) | hm, |
type(namespace_t), intent(in) | namespace, | ||
class(mesh_t), intent(in) | mesh, | ||
complex(real64), dimension(:,:), intent(inout), target, contiguous | psi, | ||
complex(real64), dimension(:,:), intent(inout), target, contiguous | hpsi, | ||
integer, intent(in) | ist, | ||
integer, intent(in) | ik, | ||
integer, intent(in), optional | terms, | ||
logical, intent(in), optional | set_bc, | ||
logical, intent(in), optional | set_phase | ||
) |
[in] | ist | the index of the state |
[in] | ik | the index of the k-point |
[in,out] | psi | (grmeshnp_part, hmddim) |
[in,out] | hpsi | (grmeshnp, hmddim) |
Definition at line 3009 of file hamiltonian_elec.F90.
|
private |
Definition at line 3043 of file hamiltonian_elec.F90.
|
private |
Definition at line 3095 of file hamiltonian_elec.F90.
subroutine, public hamiltonian_elec_oct_m::zvmask | ( | class(mesh_t), intent(in) | mesh, |
type(hamiltonian_elec_t), intent(in) | hm, | ||
type(states_elec_t), intent(inout) | st | ||
) |
Definition at line 3159 of file hamiltonian_elec.F90.
subroutine, public hamiltonian_elec_oct_m::zhamiltonian_elec_diagonal | ( | type(hamiltonian_elec_t), intent(in) | hm, |
class(mesh_t), intent(in) | mesh, | ||
complex(real64), dimension(:,:), intent(out) | diag, | ||
integer, intent(in) | ik | ||
) |
[out] | diag | hpsi(grmeshnp, hmddim) |
Definition at line 3190 of file hamiltonian_elec.F90.
integer, parameter, public hamiltonian_elec_oct_m::length = 1 |
Definition at line 321 of file hamiltonian_elec.F90.
integer, parameter, public hamiltonian_elec_oct_m::velocity = 2 |
Definition at line 321 of file hamiltonian_elec.F90.
integer, parameter, public hamiltonian_elec_oct_m::independent_particles = 2 |
Definition at line 325 of file hamiltonian_elec.F90.
integer, parameter, public hamiltonian_elec_oct_m::hartree = 1 |
Definition at line 325 of file hamiltonian_elec.F90.
integer, parameter, public hamiltonian_elec_oct_m::hartree_fock = 3 |
Definition at line 325 of file hamiltonian_elec.F90.
integer, parameter, public hamiltonian_elec_oct_m::kohn_sham_dft = 4 |
Definition at line 325 of file hamiltonian_elec.F90.
integer, parameter, public hamiltonian_elec_oct_m::generalized_kohn_sham_dft = 5 |
Definition at line 325 of file hamiltonian_elec.F90.
integer, parameter, public hamiltonian_elec_oct_m::rdmft = 7 |
Definition at line 325 of file hamiltonian_elec.F90.