51 integer,
public :: n_c
52 real(real64),
allocatable,
public :: p(:,:)
53 real(real64),
allocatable,
public :: e(:)
61 type(kb_projector_t),
intent(inout) :: kb_p
62 type(submesh_t),
intent(in) :: sm
63 class(pseudopotential_t),
intent(in) :: pseudo
64 integer,
intent(in) :: l, lm
71 kb_p%n_c = pseudo%ps%projectors_per_l(l+1)
73 safe_allocate(kb_p%p (1:kb_p%n_s, 1:max(kb_p%n_c,2)))
75 safe_allocate(kb_p%e (1:max(kb_p%n_c,2)))
81 kb_p%e(ic) = pseudo%ps%h(l, ic, ic)
87 do ic = 0, kb_p%n_c/2-1
88 kb_p%e(2*ic+1) = kb_p%e(2*ic+1)*real(l+1, real64) /real(2*l+1, real64)
89 kb_p%e(2*ic+2) = kb_p%e(2*ic+2)*real(l, real64) /real(2*l+1, real64)
98 type(kb_projector_t),
intent(inout) :: kb_p
102 safe_deallocate_a(kb_p%p)
103 safe_deallocate_a(kb_p%e)
110#include "kb_projector_inc.F90"
113#include "complex.F90"
114#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...