Octopus
|
The basic Hamiltonian for electronic system. More...
The basic Hamiltonian for electronic system.
This object stores and applies an electromagnetic potential that can be represented by different types of potentials.
Different components of scalar or vector potentials are added together as for the application of the Hamiltonian onlt the sum matters.
Definition at line 156 of file hamiltonian_elec_base.F90.
Public Attributes | |
type(nl_operator_t), pointer, public | kinetic |
kinetic energy operator More... | |
real(real64), dimension(:, :), allocatable, public | potential |
real scalar potential More... | |
real(real64), dimension(:, :), allocatable, public | impotential |
imaginary scalar potential More... | |
real(real64), dimension(:), allocatable, public | uniform_magnetic_field |
uniform magnetic field (assumed to be in Gaussian units) More... | |
real(real64), dimension(:, :), allocatable, public | magnetic_field |
non-uniform magnetic field (assumed to be in Gaussian units) More... | |
real(real64), dimension(:, :), allocatable, public | zeeman_pot |
real(real64), dimension(:), allocatable, public | uniform_vector_potential |
a uniform vector potential More... | |
real(real64), dimension(:, :), allocatable, public | vector_potential |
general (non-uniform) vector potential More... | |
type(accel_mem_t), public | vtau_accel |
Private Member Functions | |
procedure | init => hamiltonian_elec_base_init |
initialize the hamiltonian_elec_base_t object More... | |
procedure | end => hamiltonian_elec_base_end |
Finalizer for hamiltonian_elec_base_t. More... | |
procedure | clear => hamiltonian_elec_base_clear |
This functions sets to zero all fields that are currently allocated. More... | |
procedure | update_magnetic_terms => hamiltonian_elec_base_update_magnetic_terms |
procedure | allocate_field => hamiltonian_elec_base_allocate |
This function ensures that the corresponding field is allocated. More... | |
procedure | accel_copy_pot => hamiltonian_elec_base_accel_copy_pot |
copy the potential to the acceleration device buffer More... | |
procedure | has_magnetic => hamiltonian_elec_base_has_magnetic |
return .true. if the Hamiltonian contains any magnetic field More... | |
procedure | has_zeeman => hamiltonian_elec_base_has_zeeman |
return .true. of the Hamiltonian contains a zeeman term More... | |
procedure | has_vector_potential => hamiltonian_elec_base_has_vector_potential |
return .true. of the Hamiltonian contains any vector potential More... | |
procedure | calc_rashba => hamiltonian_elec_base_rashba |
procedure | dcalc_magnetic => dhamiltonian_elec_base_magnetic |
apply magnetic terms form the Hamiltonian to the wave functions More... | |
procedure | zcalc_magnetic => zhamiltonian_elec_base_magnetic |
apply magnetic terms form the Hamiltonian to the wave functions More... | |
procedure | dcalc_local => dhamiltonian_elec_base_local |
apply the local potential (stored in the hamiltonian) to the states More... | |
procedure | zcalc_local => zhamiltonian_elec_base_local |
apply the local potential (stored in the hamiltonian) to the states More... | |
Private Attributes | |
integer | nspin |
number of spin channels More... | |
real(real64) | mass |
Needed to compute the magnetic terms, if the mass is not one. More... | |
real(real64) | rashba_coupling |
Rashba coupling strength. More... | |
type(accel_mem_t) | potential_accel |
type(accel_mem_t) | impotential_accel |
|
private |
initialize the hamiltonian_elec_base_t object
Definition at line 179 of file hamiltonian_elec_base.F90.
|
private |
Finalizer for hamiltonian_elec_base_t.
Definition at line 181 of file hamiltonian_elec_base.F90.
|
private |
This functions sets to zero all fields that are currently allocated.
Definition at line 183 of file hamiltonian_elec_base.F90.
|
private |
Definition at line 185 of file hamiltonian_elec_base.F90.
|
private |
This function ensures that the corresponding field is allocated.
Definition at line 187 of file hamiltonian_elec_base.F90.
|
private |
copy the potential to the acceleration device buffer
Definition at line 189 of file hamiltonian_elec_base.F90.
|
private |
return .true. if the Hamiltonian contains any magnetic field
Definition at line 191 of file hamiltonian_elec_base.F90.
|
private |
return .true. of the Hamiltonian contains a zeeman term
Definition at line 193 of file hamiltonian_elec_base.F90.
|
private |
return .true. of the Hamiltonian contains any vector potential
Definition at line 195 of file hamiltonian_elec_base.F90.
|
private |
Definition at line 197 of file hamiltonian_elec_base.F90.
|
private |
apply magnetic terms form the Hamiltonian to the wave functions
Definition at line 199 of file hamiltonian_elec_base.F90.
|
private |
apply magnetic terms form the Hamiltonian to the wave functions
Definition at line 201 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 203 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 205 of file hamiltonian_elec_base.F90.
|
private |
number of spin channels
Definition at line 158 of file hamiltonian_elec_base.F90.
|
private |
Needed to compute the magnetic terms, if the mass is not one.
Definition at line 159 of file hamiltonian_elec_base.F90.
|
private |
Rashba coupling strength.
Definition at line 160 of file hamiltonian_elec_base.F90.
type(nl_operator_t), pointer, public hamiltonian_elec_base_oct_m::hamiltonian_elec_base_t::kinetic |
kinetic energy operator
Definition at line 161 of file hamiltonian_elec_base.F90.
real(real64), dimension(:, :), allocatable, public hamiltonian_elec_base_oct_m::hamiltonian_elec_base_t::potential |
real scalar potential
Definition at line 162 of file hamiltonian_elec_base.F90.
real(real64), dimension(:, :), allocatable, public hamiltonian_elec_base_oct_m::hamiltonian_elec_base_t::impotential |
imaginary scalar potential
Definition at line 163 of file hamiltonian_elec_base.F90.
real(real64), dimension(:), allocatable, public hamiltonian_elec_base_oct_m::hamiltonian_elec_base_t::uniform_magnetic_field |
uniform magnetic field (assumed to be in Gaussian units)
Definition at line 164 of file hamiltonian_elec_base.F90.
real(real64), dimension(:, :), allocatable, public hamiltonian_elec_base_oct_m::hamiltonian_elec_base_t::magnetic_field |
non-uniform magnetic field (assumed to be in Gaussian units)
Definition at line 166 of file hamiltonian_elec_base.F90.
real(real64), dimension(:, :), allocatable, public hamiltonian_elec_base_oct_m::hamiltonian_elec_base_t::zeeman_pot |
Definition at line 168 of file hamiltonian_elec_base.F90.
real(real64), dimension(:), allocatable, public hamiltonian_elec_base_oct_m::hamiltonian_elec_base_t::uniform_vector_potential |
a uniform vector potential
in some cases, absorbed in the vector_potential i.e. the non-uniform vector potential
Definition at line 169 of file hamiltonian_elec_base.F90.
real(real64), dimension(:, :), allocatable, public hamiltonian_elec_base_oct_m::hamiltonian_elec_base_t::vector_potential |
general (non-uniform) vector potential
Definition at line 173 of file hamiltonian_elec_base.F90.
|
private |
Definition at line 174 of file hamiltonian_elec_base.F90.
|
private |
Definition at line 175 of file hamiltonian_elec_base.F90.
type(accel_mem_t), public hamiltonian_elec_base_oct_m::hamiltonian_elec_base_t::vtau_accel |
Definition at line 176 of file hamiltonian_elec_base.F90.