Octopus
|
Data Types | |
type | hamiltonian_elec_base_t |
The basic Hamiltonian for electronic system. More... | |
Functions/Subroutines | |
subroutine | hamiltonian_elec_base_init (this, nspin, mass, rashba_coupling) |
initialize the hamiltonian_elec_base_t object More... | |
subroutine | hamiltonian_elec_base_end (this) |
Finalizer for hamiltonian_elec_base_t. More... | |
subroutine | hamiltonian_elec_base_clear (this, np) |
This functions sets to zero all fields that are currently allocated. More... | |
subroutine | hamiltonian_elec_base_allocate (this, mesh, field, complex_potential) |
This function ensures that the corresponding field is allocated. More... | |
subroutine | hamiltonian_elec_base_update_magnetic_terms (this, mesh, gyromagnetic_ratio, ispin) |
update the magnetic terms of the hamiltonian_elec_base_t. More... | |
subroutine | hamiltonian_elec_base_accel_copy_pot (this, mesh, vtau) |
copy the potential to the acceleration device buffer More... | |
logical pure function | hamiltonian_elec_base_has_magnetic (this) |
return .true. if the Hamiltonian contains any magnetic field More... | |
logical pure function | hamiltonian_elec_base_has_zeeman (this) |
return .true. of the Hamiltonian contains a zeeman term More... | |
logical pure function | hamiltonian_elec_base_has_vector_potential (this) |
return .true. of the Hamiltonian contains any vector potential More... | |
subroutine | hamiltonian_elec_base_rashba (this, mesh, der, std, psib, vpsib) |
subroutine | dhamiltonian_elec_base_local (this, mesh, std, ispin, psib, vpsib, async) |
apply the local potential (stored in the hamiltonian) to the states More... | |
subroutine, public | dhamiltonian_elec_base_local_sub (potential, mesh, std, ispin, psib, vpsib, Impotential, potential_accel, impotential_accel, async) |
apply a local potential to a set of states More... | |
subroutine | dhamiltonian_elec_base_magnetic (this, mesh, der, std, ep, ispin, psib, vpsib) |
apply magnetic terms form the Hamiltonian to the wave functions More... | |
subroutine | zhamiltonian_elec_base_local (this, mesh, std, ispin, psib, vpsib, async) |
apply the local potential (stored in the hamiltonian) to the states More... | |
subroutine, public | zhamiltonian_elec_base_local_sub (potential, mesh, std, ispin, psib, vpsib, Impotential, potential_accel, impotential_accel, async) |
apply a local potential to a set of states More... | |
subroutine | zhamiltonian_elec_base_magnetic (this, mesh, der, std, ep, ispin, psib, vpsib) |
apply magnetic terms form the Hamiltonian to the wave functions More... | |
Variables | |
integer, parameter, public | term_all = HUGE(1) |
integer, parameter, public | term_kinetic = 1 |
integer, parameter, public | term_local_potential = 2 |
integer, parameter, public | term_non_local_potential = 4 |
integer, parameter, public | term_others = 8 |
integer, parameter, public | term_local_external = 16 |
integer, parameter, public | term_mgga = 32 |
integer, parameter, public | term_dft_u = 64 |
integer, parameter, public | term_rdmft_occ = 128 |
integer, parameter, public | field_potential = 1 |
integer, parameter, public | field_vector_potential = 2 |
integer, parameter, public | field_uniform_vector_potential = 4 |
integer, parameter, public | field_uniform_magnetic_field = 8 |
integer, parameter, public | field_magnetic_field = 16 |
|
private |
initialize the hamiltonian_elec_base_t object
Definition at line 232 of file hamiltonian_elec_base.F90.
|
private |
Finalizer for hamiltonian_elec_base_t.
Definition at line 250 of file hamiltonian_elec_base.F90.
|
private |
This functions sets to zero all fields that are currently allocated.
Definition at line 279 of file hamiltonian_elec_base.F90.
|
private |
This function ensures that the corresponding field is allocated.
Definition at line 332 of file hamiltonian_elec_base.F90.
|
private |
update the magnetic terms of the hamiltonian_elec_base_t.
If both a uniform and non-uniform vector potentials are allocated, this function copies the uniform in the non-uniform one. In the future it may perform other internal consistency operations.
Definition at line 413 of file hamiltonian_elec_base.F90.
|
private |
copy the potential to the acceleration device buffer
Definition at line 489 of file hamiltonian_elec_base.F90.
|
private |
return .true. if the Hamiltonian contains any magnetic field
Definition at line 518 of file hamiltonian_elec_base.F90.
|
private |
return .true. of the Hamiltonian contains a zeeman term
Definition at line 529 of file hamiltonian_elec_base.F90.
|
private |
return .true. of the Hamiltonian contains any vector potential
Definition at line 539 of file hamiltonian_elec_base.F90.
|
private |
Definition at line 548 of file hamiltonian_elec_base.F90.
|
private |
apply the local potential (stored in the hamiltonian) to the states
[in] | std | dimensions of the states |
[in] | ispin | spin channel |
[in] | psib | original states |
[in,out] | vpsib | states multiplied by local potential |
Definition at line 677 of file hamiltonian_elec_base.F90.
subroutine, public hamiltonian_elec_base_oct_m::dhamiltonian_elec_base_local_sub | ( | real(real64), dimension(:,:), intent(in), contiguous | potential, |
class(mesh_t), intent(in) | mesh, | ||
type(states_elec_dim_t), intent(in) | std, | ||
integer, intent(in) | ispin, | ||
class(batch_t), intent(in), target | psib, | ||
class(batch_t), intent(inout), target | vpsib, | ||
real(real64), dimension(:,:), intent(in), optional, contiguous | Impotential, | ||
type(accel_mem_t), intent(in), optional, target | potential_accel, | ||
type(accel_mem_t), intent(in), optional, target | impotential_accel, | ||
logical, intent(in), optional | async | ||
) |
apply a local potential to a set of states
This auxiliary routine multiples the wave functions in psib by a potential, provided as argument, and returns the new set of states in vpsib.
[in] | potential | real potential v |
[in] | mesh | the mesh |
[in] | std | dimensions of the states |
[in] | ispin | spin channel |
[in] | psib | original wave functions |
[in,out] | vpsib | wave functions multiplied by v |
[in] | impotential | optional imaginary potential |
[in] | potential_accel | device buffer for Re(v) |
[in] | impotential_accel | devide buffer for Im(v) |
Definition at line 716 of file hamiltonian_elec_base.F90.
|
private |
apply magnetic terms form the Hamiltonian to the wave functions
Definition at line 952 of file hamiltonian_elec_base.F90.
|
private |
apply the local potential (stored in the hamiltonian) to the states
[in] | std | dimensions of the states |
[in] | ispin | spin channel |
[in] | psib | original states |
[in,out] | vpsib | states multiplied by local potential |
Definition at line 1101 of file hamiltonian_elec_base.F90.
subroutine, public hamiltonian_elec_base_oct_m::zhamiltonian_elec_base_local_sub | ( | real(real64), dimension(:,:), intent(in), contiguous | potential, |
class(mesh_t), intent(in) | mesh, | ||
type(states_elec_dim_t), intent(in) | std, | ||
integer, intent(in) | ispin, | ||
class(batch_t), intent(in), target | psib, | ||
class(batch_t), intent(inout), target | vpsib, | ||
real(real64), dimension(:,:), intent(in), optional, contiguous | Impotential, | ||
type(accel_mem_t), intent(in), optional, target | potential_accel, | ||
type(accel_mem_t), intent(in), optional, target | impotential_accel, | ||
logical, intent(in), optional | async | ||
) |
apply a local potential to a set of states
This auxiliary routine multiples the wave functions in psib by a potential, provided as argument, and returns the new set of states in vpsib.
[in] | potential | real potential v |
[in] | mesh | the mesh |
[in] | std | dimensions of the states |
[in] | ispin | spin channel |
[in] | psib | original wave functions |
[in,out] | vpsib | wave functions multiplied by v |
[in] | impotential | optional imaginary potential |
[in] | potential_accel | device buffer for Re(v) |
[in] | impotential_accel | devide buffer for Im(v) |
Definition at line 1140 of file hamiltonian_elec_base.F90.
|
private |
apply magnetic terms form the Hamiltonian to the wave functions
Definition at line 1466 of file hamiltonian_elec_base.F90.
integer, parameter, public hamiltonian_elec_base_oct_m::term_all = HUGE(1) |
Definition at line 209 of file hamiltonian_elec_base.F90.
integer, parameter, public hamiltonian_elec_base_oct_m::term_kinetic = 1 |
Definition at line 209 of file hamiltonian_elec_base.F90.
integer, parameter, public hamiltonian_elec_base_oct_m::term_local_potential = 2 |
Definition at line 209 of file hamiltonian_elec_base.F90.
integer, parameter, public hamiltonian_elec_base_oct_m::term_non_local_potential = 4 |
Definition at line 209 of file hamiltonian_elec_base.F90.
integer, parameter, public hamiltonian_elec_base_oct_m::term_others = 8 |
Definition at line 209 of file hamiltonian_elec_base.F90.
integer, parameter, public hamiltonian_elec_base_oct_m::term_local_external = 16 |
Definition at line 209 of file hamiltonian_elec_base.F90.
integer, parameter, public hamiltonian_elec_base_oct_m::term_mgga = 32 |
Definition at line 209 of file hamiltonian_elec_base.F90.
integer, parameter, public hamiltonian_elec_base_oct_m::term_dft_u = 64 |
Definition at line 209 of file hamiltonian_elec_base.F90.
integer, parameter, public hamiltonian_elec_base_oct_m::term_rdmft_occ = 128 |
Definition at line 209 of file hamiltonian_elec_base.F90.
integer, parameter, public hamiltonian_elec_base_oct_m::field_potential = 1 |
Definition at line 220 of file hamiltonian_elec_base.F90.
integer, parameter, public hamiltonian_elec_base_oct_m::field_vector_potential = 2 |
Definition at line 220 of file hamiltonian_elec_base.F90.
integer, parameter, public hamiltonian_elec_base_oct_m::field_uniform_vector_potential = 4 |
Definition at line 220 of file hamiltonian_elec_base.F90.
integer, parameter, public hamiltonian_elec_base_oct_m::field_uniform_magnetic_field = 8 |
Definition at line 220 of file hamiltonian_elec_base.F90.
integer, parameter, public hamiltonian_elec_base_oct_m::field_magnetic_field = 16 |
Definition at line 220 of file hamiltonian_elec_base.F90.