33 use,
intrinsic :: iso_fortran_env
64 type(grid_t),
pointer :: grid
65 type(space_t),
pointer :: space
66 type(states_elec_t),
pointer :: states
77 procedure :: delec_dipole_me, zelec_dipole_me
78 generic :: dipole_me => delec_dipole_me, zelec_dipole_me
80 procedure :: delec_ks_multipoles_3d_me, zelec_ks_multipoles_3d_me
81 generic :: ks_multipoles_3d => delec_ks_multipoles_3d_me, zelec_ks_multipoles_3d_me
82 procedure :: delec_ks_multipoles_2d_me, zelec_ks_multipoles_2d_me
83 generic :: ks_multipoles_2d => delec_ks_multipoles_2d_me, zelec_ks_multipoles_2d_me
84 procedure :: delec_ks_multipoles_1d_me, zelec_ks_multipoles_1d_me
85 generic :: ks_multipoles_1d => delec_ks_multipoles_1d_me, zelec_ks_multipoles_1d_me
87 procedure :: delec_one_body_me, zelec_one_body_me
88 generic :: one_body_me => delec_one_body_me, zelec_one_body_me
90 procedure :: delec_two_body_me, zelec_two_body_me
91 generic :: two_body_me => delec_two_body_me, zelec_two_body_me
99 class(elec_matrix_elements_t),
intent(inout) :: this
100 type(grid_t),
target,
intent(in) :: grid
101 class(space_t),
target,
intent(in) :: space
102 type(states_elec_t),
target,
intent(in) :: states
103 integer,
optional,
intent(in) :: st_start, st_end
110 this%states => states
119 type(elec_matrix_elements_t),
intent(inout) :: this
127 class(elec_matrix_elements_t),
intent(in) :: this
128 type(kpoints_t),
intent(in) :: kpoints
129 real(real64),
intent(out) :: momentum(:,:,:)
143 class(elec_matrix_elements_t),
intent(in) :: this
144 real(real64),
contiguous,
intent(out) :: ll(:, :, :)
145 real(real64),
contiguous,
optional,
intent(out) :: l2(:, :)
158#include "complex.F90"
159#include "elec_matrix_elements_inc.F90"
163#include "elec_matrix_elements_inc.F90"
This module implements batches of mesh functions.
Module implementing boundary conditions in Octopus.
This module calculates the derivatives (gradients, Laplacians, etc.) of a function.
subroutine elec_matrix_elements_finalize(this)
subroutine zelec_momentum_me(this, kpoints, momentum)
The routine calculates the expectation value of the momentum operator.
subroutine delec_momentum_me(this, kpoints, momentum)
The routine calculates the expectation value of the momentum operator.
subroutine delec_angular_momentum_me(this, ll, l2)
It calculates the expectation value of the angular momentum of the states. If l2 is passed,...
subroutine zelec_angular_momentum_me(this, ll, l2)
It calculates the expectation value of the angular momentum of the states. If l2 is passed,...
subroutine elec_angular_momentum_me(this, ll, l2)
subroutine elec_momentum_me(this, kpoints, momentum)
subroutine elec_matrix_elements_init(this, grid, space, states, st_start, st_end)
Initialize the elec_matrix_elements object.
This module implements the underlying real-space grid.
This module defines functions over batches of mesh functions.
This module defines various routines, operating on mesh functions.
This module defines the meshes, which are used in Octopus.
This module contains some common usage patterns of MPI routines.
pure logical function, public states_are_real(st)
This module handles spin dimensions of the states and the k-point distribution.