Octopus
elec_matrix_elements_oct_m Module Reference

Data Types

interface  dipole_me
 
interface  ks_multipoles_1d
 
interface  ks_multipoles_2d
 
interface  ks_multipoles_3d
 
interface  one_body_me
 
interface  two_body_me
 

Functions/Subroutines

subroutine, public elec_momentum_me (gr, st, space, kpoints, momentum)
 
subroutine, public elec_angular_momentum_me (gr, st, space, ll, l2)
 
subroutine zelec_momentum_me (gr, st, space, kpoints, momentum)
 The routine calculates the expectation value of the momentum operator. More...
 
subroutine zelec_angular_momentum_me (gr, st, space, ll, l2)
 It calculates the expectation value of the angular momentum of the states. If l2 is passed, it also calculates the expectation value of the square of the angular momentum of the state phi. More...
 
subroutine zelec_ks_multipoles_3d_me (gr, st, space, ll, mm, ik, elements)
 Prints out the multipole matrix elements between KS states. More...
 
subroutine zelec_ks_multipoles_2d_me (gr, st, ll, ik, elements)
 Prints out the dipole matrix elements (X or Y) between single orbitals, in the 1d case. More...
 
subroutine zelec_ks_multipoles_1d_me (gr, st, ll, ik, elements)
 Prints out the multipole matrix elements (X**l) between single orbitals, in the 1d case. More...
 
subroutine zelec_dipole_me (gr, st, namespace, hm, ions, ik, st_start, st_end, elements)
 Computes the dipole matrix elements between KS states. More...
 
subroutine zcalculate_expectation_values_matrix (namespace, hm, der, st, eigen, terms, diagonal_states)
 
subroutine zelec_one_body_me (gr, st, namespace, hm, iindex, jindex, oneint)
 
subroutine zelec_two_body_me (gr, st, space, namespace, kpoints, psolver, st_min, st_max, iindex, jindex, kindex, lindex, twoint, phase, singularity, exc_k)
 
subroutine delec_momentum_me (gr, st, space, kpoints, momentum)
 The routine calculates the expectation value of the momentum operator. More...
 
subroutine delec_angular_momentum_me (gr, st, space, ll, l2)
 It calculates the expectation value of the angular momentum of the states. If l2 is passed, it also calculates the expectation value of the square of the angular momentum of the state phi. More...
 
subroutine delec_ks_multipoles_3d_me (gr, st, space, ll, mm, ik, elements)
 Prints out the multipole matrix elements between KS states. More...
 
subroutine delec_ks_multipoles_2d_me (gr, st, ll, ik, elements)
 Prints out the dipole matrix elements (X or Y) between single orbitals, in the 1d case. More...
 
subroutine delec_ks_multipoles_1d_me (gr, st, ll, ik, elements)
 Prints out the multipole matrix elements (X**l) between single orbitals, in the 1d case. More...
 
subroutine delec_dipole_me (gr, st, namespace, hm, ions, ik, st_start, st_end, elements)
 Computes the dipole matrix elements between KS states. More...
 
subroutine dcalculate_expectation_values_matrix (namespace, hm, der, st, eigen, terms, diagonal_states)
 
subroutine delec_one_body_me (gr, st, namespace, hm, iindex, jindex, oneint)
 
subroutine delec_two_body_me (gr, st, space, namespace, kpoints, psolver, st_min, st_max, iindex, jindex, kindex, lindex, twoint, phase, singularity, exc_k)
 

Function/Subroutine Documentation

◆ elec_momentum_me()

subroutine, public elec_matrix_elements_oct_m::elec_momentum_me ( type(grid_t), intent(in)  gr,
type(states_elec_t), intent(in)  st,
type(space_t), intent(in)  space,
type(kpoints_t), intent(in)  kpoints,
real(real64), dimension(:,:,:), intent(out)  momentum 
)

Definition at line 196 of file elec_matrix_elements.F90.

◆ elec_angular_momentum_me()

subroutine, public elec_matrix_elements_oct_m::elec_angular_momentum_me ( type(grid_t), intent(in)  gr,
type(states_elec_t), intent(in)  st,
type(space_t), intent(in)  space,
real(real64), dimension(:, :, :), intent(out), contiguous  ll,
real(real64), dimension(:, :), intent(out), optional, contiguous  l2 
)
Parameters
[out]ll(stnst, stnik, 1 or 3)
[out]l2(stnst, stnik)

Definition at line 215 of file elec_matrix_elements.F90.

◆ zelec_momentum_me()

subroutine elec_matrix_elements_oct_m::zelec_momentum_me ( type(grid_t), intent(in)  gr,
type(states_elec_t), intent(in)  st,
type(space_t), intent(in)  space,
type(kpoints_t), intent(in)  kpoints,
real(real64), dimension(:,:,:), intent(out)  momentum 
)
private

The routine calculates the expectation value of the momentum operator.

\[ <p> = < phi*(ist, k) | -i \nabla | phi(ist, ik) > \]

Definition at line 289 of file elec_matrix_elements.F90.

◆ zelec_angular_momentum_me()

subroutine elec_matrix_elements_oct_m::zelec_angular_momentum_me ( type(grid_t), intent(in)  gr,
type(states_elec_t), intent(in)  st,
type(space_t), intent(in)  space,
real(real64), dimension(:, :, :), intent(out), contiguous  ll,
real(real64), dimension(:, :), intent(out), optional, contiguous  l2 
)
private

It calculates the expectation value of the angular momentum of the states. If l2 is passed, it also calculates the expectation value of the square of the angular momentum of the state phi.

Parameters
[out]ll(stnst, stnik, 1 or 3)
[out]l2(stnst, stnik)

Definition at line 385 of file elec_matrix_elements.F90.

◆ zelec_ks_multipoles_3d_me()

subroutine elec_matrix_elements_oct_m::zelec_ks_multipoles_3d_me ( type(grid_t), intent(in)  gr,
type(states_elec_t), intent(in)  st,
type(space_t), intent(in)  space,
integer, intent(in)  ll,
integer, intent(in)  mm,
integer, intent(in)  ik,
complex(real64), dimension(:,:), intent(out)  elements 
)
private

Prints out the multipole matrix elements between KS states.

It prints the states to the file opened in iunit. It prints the (ll,mm) multipole moment, for the Kohn-Sham states in the irreducible subspace ik.

Definition at line 462 of file elec_matrix_elements.F90.

◆ zelec_ks_multipoles_2d_me()

subroutine elec_matrix_elements_oct_m::zelec_ks_multipoles_2d_me ( type(grid_t), intent(in)  gr,
type(states_elec_t), intent(in)  st,
integer, intent(in)  ll,
integer, intent(in)  ik,
complex(real64), dimension(:,:), intent(out)  elements 
)
private

Prints out the dipole matrix elements (X or Y) between single orbitals, in the 1d case.

It prints the states to the file opened in iunit. It prints the moment, for single orbital states irreducible subspace ik. It only prints the first order moments X or Y. Eventually it should print the circular multipoles of arbitrary order, similar to the 3D case.

The argument ll should be 1 (X) or 2 (Y).

Definition at line 522 of file elec_matrix_elements.F90.

◆ zelec_ks_multipoles_1d_me()

subroutine elec_matrix_elements_oct_m::zelec_ks_multipoles_1d_me ( type(grid_t), intent(in)  gr,
type(states_elec_t), intent(in)  st,
integer, intent(in)  ll,
integer, intent(in)  ik,
complex(real64), dimension(:,:), intent(out)  elements 
)
private

Prints out the multipole matrix elements (X**l) between single orbitals, in the 1d case.

It prints the states to the file opened in iunit. It prints the moment of ll-th order, for single orbital states irreducible subspace ik.

Definition at line 574 of file elec_matrix_elements.F90.

◆ zelec_dipole_me()

subroutine elec_matrix_elements_oct_m::zelec_dipole_me ( type(grid_t), intent(in)  gr,
type(states_elec_t), intent(in)  st,
type(namespace_t), intent(in)  namespace,
type(hamiltonian_elec_t), intent(in)  hm,
type(ions_t), intent(in)  ions,
integer, intent(in)  ik,
integer, intent(in)  st_start,
integer, intent(in)  st_end,
complex(real64), dimension(:,:,:), intent(out)  elements 
)
private

Computes the dipole matrix elements between KS states.

Definition at line 619 of file elec_matrix_elements.F90.

◆ zcalculate_expectation_values_matrix()

subroutine elec_matrix_elements_oct_m::zcalculate_expectation_values_matrix ( type(namespace_t), intent(in)  namespace,
type(hamiltonian_elec_t), intent(in)  hm,
type(derivatives_t), intent(in)  der,
type(states_elec_t), intent(inout)  st,
complex(real64), dimension(st%st_start:,st%st_start:,st%d%kpt%start:), intent(out)  eigen,
integer, intent(in), optional  terms,
logical, intent(in), optional  diagonal_states 
)
private

Definition at line 733 of file elec_matrix_elements.F90.

◆ zelec_one_body_me()

subroutine elec_matrix_elements_oct_m::zelec_one_body_me ( type(grid_t), intent(in)  gr,
type(states_elec_t), intent(inout)  st,
type(namespace_t), intent(in)  namespace,
type(hamiltonian_elec_t), intent(in)  hm,
integer, dimension(:), intent(out)  iindex,
integer, dimension(:), intent(out)  jindex,
complex(real64), dimension(:), intent(out)  oneint 
)
private

Definition at line 789 of file elec_matrix_elements.F90.

◆ zelec_two_body_me()

subroutine elec_matrix_elements_oct_m::zelec_two_body_me ( type(grid_t), intent(in)  gr,
type(states_elec_t), intent(inout), target  st,
class(space_t), intent(in)  space,
type(namespace_t), intent(in)  namespace,
type(kpoints_t), intent(in)  kpoints,
type(poisson_t), intent(inout)  psolver,
integer, intent(in)  st_min,
integer, intent(in)  st_max,
integer, dimension(:,:), intent(out)  iindex,
integer, dimension(:,:), intent(out)  jindex,
integer, dimension(:,:), intent(out)  kindex,
integer, dimension(:,:), intent(out)  lindex,
complex(real64), dimension(:), intent(out), contiguous  twoint,
type(phase_t), intent(in), optional  phase,
type(singularity_t), intent(in), optional  singularity,
logical, intent(in), optional  exc_k 
)
private

Definition at line 871 of file elec_matrix_elements.F90.

◆ delec_momentum_me()

subroutine elec_matrix_elements_oct_m::delec_momentum_me ( type(grid_t), intent(in)  gr,
type(states_elec_t), intent(in)  st,
type(space_t), intent(in)  space,
type(kpoints_t), intent(in)  kpoints,
real(real64), dimension(:,:,:), intent(out)  momentum 
)
private

The routine calculates the expectation value of the momentum operator.

\[ <p> = < phi*(ist, k) | -i \nabla | phi(ist, ik) > \]

Definition at line 1152 of file elec_matrix_elements.F90.

◆ delec_angular_momentum_me()

subroutine elec_matrix_elements_oct_m::delec_angular_momentum_me ( type(grid_t), intent(in)  gr,
type(states_elec_t), intent(in)  st,
type(space_t), intent(in)  space,
real(real64), dimension(:, :, :), intent(out), contiguous  ll,
real(real64), dimension(:, :), intent(out), optional, contiguous  l2 
)
private

It calculates the expectation value of the angular momentum of the states. If l2 is passed, it also calculates the expectation value of the square of the angular momentum of the state phi.

Parameters
[out]ll(stnst, stnik, 1 or 3)
[out]l2(stnst, stnik)

Definition at line 1248 of file elec_matrix_elements.F90.

◆ delec_ks_multipoles_3d_me()

subroutine elec_matrix_elements_oct_m::delec_ks_multipoles_3d_me ( type(grid_t), intent(in)  gr,
type(states_elec_t), intent(in)  st,
type(space_t), intent(in)  space,
integer, intent(in)  ll,
integer, intent(in)  mm,
integer, intent(in)  ik,
real(real64), dimension(:,:), intent(out)  elements 
)
private

Prints out the multipole matrix elements between KS states.

It prints the states to the file opened in iunit. It prints the (ll,mm) multipole moment, for the Kohn-Sham states in the irreducible subspace ik.

Definition at line 1317 of file elec_matrix_elements.F90.

◆ delec_ks_multipoles_2d_me()

subroutine elec_matrix_elements_oct_m::delec_ks_multipoles_2d_me ( type(grid_t), intent(in)  gr,
type(states_elec_t), intent(in)  st,
integer, intent(in)  ll,
integer, intent(in)  ik,
real(real64), dimension(:,:), intent(out)  elements 
)
private

Prints out the dipole matrix elements (X or Y) between single orbitals, in the 1d case.

It prints the states to the file opened in iunit. It prints the moment, for single orbital states irreducible subspace ik. It only prints the first order moments X or Y. Eventually it should print the circular multipoles of arbitrary order, similar to the 3D case.

The argument ll should be 1 (X) or 2 (Y).

Definition at line 1377 of file elec_matrix_elements.F90.

◆ delec_ks_multipoles_1d_me()

subroutine elec_matrix_elements_oct_m::delec_ks_multipoles_1d_me ( type(grid_t), intent(in)  gr,
type(states_elec_t), intent(in)  st,
integer, intent(in)  ll,
integer, intent(in)  ik,
real(real64), dimension(:,:), intent(out)  elements 
)
private

Prints out the multipole matrix elements (X**l) between single orbitals, in the 1d case.

It prints the states to the file opened in iunit. It prints the moment of ll-th order, for single orbital states irreducible subspace ik.

Definition at line 1429 of file elec_matrix_elements.F90.

◆ delec_dipole_me()

subroutine elec_matrix_elements_oct_m::delec_dipole_me ( type(grid_t), intent(in)  gr,
type(states_elec_t), intent(in)  st,
type(namespace_t), intent(in)  namespace,
type(hamiltonian_elec_t), intent(in)  hm,
type(ions_t), intent(in)  ions,
integer, intent(in)  ik,
integer, intent(in)  st_start,
integer, intent(in)  st_end,
real(real64), dimension(:,:,:), intent(out)  elements 
)
private

Computes the dipole matrix elements between KS states.

Definition at line 1474 of file elec_matrix_elements.F90.

◆ dcalculate_expectation_values_matrix()

subroutine elec_matrix_elements_oct_m::dcalculate_expectation_values_matrix ( type(namespace_t), intent(in)  namespace,
type(hamiltonian_elec_t), intent(in)  hm,
type(derivatives_t), intent(in)  der,
type(states_elec_t), intent(inout)  st,
real(real64), dimension(st%st_start:,st%st_start:,st%d%kpt%start:), intent(out)  eigen,
integer, intent(in), optional  terms,
logical, intent(in), optional  diagonal_states 
)
private

Definition at line 1577 of file elec_matrix_elements.F90.

◆ delec_one_body_me()

subroutine elec_matrix_elements_oct_m::delec_one_body_me ( type(grid_t), intent(in)  gr,
type(states_elec_t), intent(inout)  st,
type(namespace_t), intent(in)  namespace,
type(hamiltonian_elec_t), intent(in)  hm,
integer, dimension(:), intent(out)  iindex,
integer, dimension(:), intent(out)  jindex,
real(real64), dimension(:), intent(out)  oneint 
)
private

Definition at line 1633 of file elec_matrix_elements.F90.

◆ delec_two_body_me()

subroutine elec_matrix_elements_oct_m::delec_two_body_me ( type(grid_t), intent(in)  gr,
type(states_elec_t), intent(inout), target  st,
class(space_t), intent(in)  space,
type(namespace_t), intent(in)  namespace,
type(kpoints_t), intent(in)  kpoints,
type(poisson_t), intent(inout)  psolver,
integer, intent(in)  st_min,
integer, intent(in)  st_max,
integer, dimension(:,:), intent(out)  iindex,
integer, dimension(:,:), intent(out)  jindex,
integer, dimension(:,:), intent(out)  kindex,
integer, dimension(:,:), intent(out)  lindex,
real(real64), dimension(:), intent(out), contiguous  twoint,
type(phase_t), intent(in), optional  phase,
type(singularity_t), intent(in), optional  singularity,
logical, intent(in), optional  exc_k 
)
private

Definition at line 1715 of file elec_matrix_elements.F90.