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.