![]() |
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) |
| pure logical function | hamiltonian_elec_needs_mgga_term (hm, terms) |
| 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_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... | |
| logical function, public | hamiltonian_elec_needs_current (hm, states_are_real) |
| subroutine, public | zhamiltonian_elec_apply_all (hm, namespace, gr, st, hst) |
| 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_diagonal (hm, mesh, diag, ik) |
| subroutine | dhamiltonian_elec_apply (hm, namespace, mesh, psib, hpsib, terms, set_bc) |
| 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 | dh_mgga_terms (hm, mesh, psib, hpsib, lapl_psib) |
| Computes the orbital-dependent part of the mGGA potential. More... | |
| subroutine, public | dvmask (mesh, hm, st) |
| subroutine | zhamiltonian_elec_apply (hm, namespace, mesh, psib, hpsib, terms, set_bc) |
| subroutine, public | zhamiltonian_elec_apply_batch (hm, namespace, mesh, psib, hpsib, terms, set_bc) |
| subroutine, public | 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 | zh_mgga_terms (hm, mesh, psib, hpsib, lapl_psib) |
| Computes the orbital-dependent part of the mGGA potential. More... | |
| subroutine, public | zvmask (mesh, hm, st) |
Variables | |
| integer, parameter, public | length = 1 |
| integer, parameter, public | velocity = 2 |
| 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 325 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 763 of file hamiltonian_elec.F90.
|
private |
Definition at line 826 of file hamiltonian_elec.F90.
|
private |
Definition at line 838 of file hamiltonian_elec.F90.
|
private |
Definition at line 859 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 881 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 889 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 904 of file hamiltonian_elec.F90.
| subroutine, public hamiltonian_elec_oct_m::hamiltonian_elec_adjoint | ( | type(hamiltonian_elec_t), intent(inout) | hm | ) |
Definition at line 918 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 935 of file hamiltonian_elec.F90.
|
private |
(re-)build the Hamiltonian for the next application:
Definition at line 953 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 1180 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 1280 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 1363 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 1371 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 1380 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 1413 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 1604 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, | ||
| type(grid_t), intent(in) | gr, | ||
| type(states_elec_t), intent(inout) | st, | ||
| type(states_elec_t), intent(inout) | hst | ||
| ) |
Definition at line 1622 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 1669 of file hamiltonian_elec.F90.
|
private |
set the effective electron mass, checking whether it was previously redefined.
Definition at line 1681 of file hamiltonian_elec.F90.
| subroutine, public hamiltonian_elec_oct_m::hamiltonian_elec_diagonal | ( | type(hamiltonian_elec_t), intent(in) | hm, |
| class(mesh_t), intent(in) | mesh, | ||
| real(real64), dimension(:,:), intent(out), contiguous | diag, | ||
| integer, intent(in) | ik | ||
| ) |
| [out] | diag | hpsi(grmeshnp, hmdnspin) |
Definition at line 1699 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 1810 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 1839 of file hamiltonian_elec.F90.
|
private |
Definition at line 2054 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 2103 of file hamiltonian_elec.F90.
|
private |
Computes the orbital-dependent part of the mGGA potential.
This reads as \( L\psi =-\nabla \cdot [\vtau \nabla \psi]\).
It is trivial to show that this operator is self-adjoint. However, this is never the case with finite differences. This is thus reimplemented as L\psi = -1/2(v_\tau \Delta \psi - \psi \Delta[v_\tau] + \Delta [v_\tau \psi]
The same expression was proposed in Richter et al., J. Chem. Phys. 159, 124117 (2023).
Definition at line 2147 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 2197 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 2301 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 2330 of file hamiltonian_elec.F90.
| subroutine, public hamiltonian_elec_oct_m::zhamiltonian_elec_external | ( | type(hamiltonian_elec_t), intent(in) | this, |
| class(mesh_t), intent(in) | mesh, | ||
| type(wfs_elec_t), intent(in) | psib, | ||
| type(wfs_elec_t), intent(inout) | vpsib | ||
| ) |
Definition at line 2545 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 2594 of file hamiltonian_elec.F90.
|
private |
Computes the orbital-dependent part of the mGGA potential.
This reads as \( L\psi =-\nabla \cdot [\vtau \nabla \psi]\).
It is trivial to show that this operator is self-adjoint. However, this is never the case with finite differences. This is thus reimplemented as L\psi = -1/2(v_\tau \Delta \psi - \psi \Delta[v_\tau] + \Delta [v_\tau \psi]
The same expression was proposed in Richter et al., J. Chem. Phys. 159, 124117 (2023).
Definition at line 2638 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 2688 of file hamiltonian_elec.F90.
| integer, parameter, public hamiltonian_elec_oct_m::length = 1 |
Definition at line 317 of file hamiltonian_elec.F90.
| integer, parameter, public hamiltonian_elec_oct_m::velocity = 2 |
Definition at line 317 of file hamiltonian_elec.F90.