52 integer,
public :: n_c
53 real(real64),
allocatable,
public :: p(:,:)
54 real(real64),
allocatable,
public :: e(:)
62 type(kb_projector_t),
intent(inout) :: kb_p
63 type(submesh_t),
intent(in) :: sm
64 class(pseudopotential_t),
intent(in) :: pseudo
65 integer,
intent(in) :: l, lm
72 kb_p%n_c = pseudo%ps%projectors_per_l(l+1)
74 safe_allocate(kb_p%p (1:kb_p%n_s, 1:max(kb_p%n_c,2)))
76 safe_allocate(kb_p%e (1:max(kb_p%n_c,2)))
82 kb_p%e(ic) = pseudo%ps%h(l, ic, ic)
88 do ic = 0, kb_p%n_c/2-1
89 kb_p%e(2*ic+1) = kb_p%e(2*ic+1)*real(l+1, real64) /real(2*l+1, real64)
90 kb_p%e(2*ic+2) = kb_p%e(2*ic+2)*real(l, real64) /real(2*l+1, real64)
99 type(kb_projector_t),
intent(inout) :: kb_p
103 safe_deallocate_a(kb_p%p)
104 safe_deallocate_a(kb_p%e)
111#include "kb_projector_inc.F90"
114#include "complex.F90"
115#include "kb_projector_inc.F90"
real(real64), parameter, public m_zero
This module implements the underlying real-space grid.
subroutine, public zkb_project_ket(kb_p, dim, uvpsi, psi)
THREADSAFE.
subroutine, public zkb_project_bra(mesh, sm, kb_p, dim, psi, uvpsi)
THREADSAFE.
subroutine, public dkb_project(mesh, sm, kb_p, dim, psi, ppsi)
dkb_project calculates the action of the projector kb_p on the psi wavefunction. The action of the pr...
subroutine, public kb_projector_end(kb_p)
subroutine, public dkb_project_bra(mesh, sm, kb_p, dim, psi, uvpsi)
THREADSAFE.
subroutine, public zkb_project(mesh, sm, kb_p, dim, psi, ppsi)
zkb_project calculates the action of the projector kb_p on the psi wavefunction. The action of the pr...
subroutine, public dkb_project_ket(kb_p, dim, uvpsi, psi)
THREADSAFE.
subroutine, public kb_projector_init(kb_p, sm, pseudo, l, lm)
This module defines the meshes, which are used in Octopus.
integer, parameter, public proj_j_dependent
Fully-relativistic j-dependent pseudopotentials.
subroutine, public pseudopotential_real_nl_projector(spec, np, x, r, l, lm, i, uV)
This routine returns the non-local projector and its derivative, built using real spherical harmonics...