Octopus
hgh_projector_oct_m Module Reference

Data Types

type  hgh_projector_t
 

Functions/Subroutines

subroutine, public hgh_projector_init (hgh_p, sm, reltyp, spec, l, lm, so_strength)
 
subroutine, public hgh_projector_end (hgh_p)
 
subroutine, public dhgh_project (mesh, sm, hgh_p, ll, lmax, dim, psi, ppsi, reltype)
 dhgh_project calculates the action of the projector hgh_p on the psi wavefunction. The action of the projector hgh_p is defined as: More...
 
subroutine, public dhgh_project_bra (mesh, sm, hgh_p, dim, reltype, psi, uvpsi)
 THREADSAFE. More...
 
subroutine, public dhgh_project_ket (hgh_p, ll, lmax, dim, reltype, uvpsi, ppsi)
 THREADSAFE. More...
 
subroutine, public zhgh_project (mesh, sm, hgh_p, ll, lmax, dim, psi, ppsi, reltype)
 zhgh_project calculates the action of the projector hgh_p on the psi wavefunction. The action of the projector hgh_p is defined as: More...
 
subroutine, public zhgh_project_bra (mesh, sm, hgh_p, dim, reltype, psi, uvpsi)
 THREADSAFE. More...
 
subroutine, public zhgh_project_ket (hgh_p, ll, lmax, dim, reltype, uvpsi, ppsi)
 THREADSAFE. More...
 

Function/Subroutine Documentation

◆ hgh_projector_init()

subroutine, public hgh_projector_oct_m::hgh_projector_init ( type(hgh_projector_t), intent(inout)  hgh_p,
type(submesh_t), intent(in)  sm,
integer, intent(in)  reltyp,
class(pseudopotential_t), intent(in)  spec,
integer, intent(in)  l,
integer, intent(in)  lm,
real(real64), intent(in)  so_strength 
)

Definition at line 156 of file hgh_projector.F90.

◆ hgh_projector_end()

subroutine, public hgh_projector_oct_m::hgh_projector_end ( type(hgh_projector_t), intent(inout)  hgh_p)

Definition at line 188 of file hgh_projector.F90.

◆ dhgh_project()

subroutine, public hgh_projector_oct_m::dhgh_project ( type(mesh_t), intent(in)  mesh,
type(submesh_t), intent(in)  sm,
type(hgh_projector_t), dimension(-lmax:), intent(in)  hgh_p,
integer, intent(in)  ll,
integer, intent(in)  lmax,
integer, intent(in)  dim,
real(real64), dimension(:, :), intent(in)  psi,
real(real64), dimension(:, :), intent(inout)  ppsi,
integer, intent(in)  reltype 
)

dhgh_project calculates the action of the projector hgh_p on the psi wavefunction. The action of the projector hgh_p is defined as:

\[ \hat{hgh_p} |psi> = \sum_{ij}^3 p\%h(i,j) |hgh_p\%p(:, i)><hgh_p\%p(:, j)|psi> \]

The result is summed up to ppsi.

If including the spin-orbit coupling there is another term to be added to ppsi:

\[ \sum_{ij}^3\sum{k}^3 p\%k(i,j) |hgh_p\%p(:, i)><hgh_p\%lp(:, k, j)|\hat{S(k)}|psi> \]

Parameters
[in]psi(hgh%n_s, dim)
[in,out]ppsi(hgh%n_s, dim)

Definition at line 281 of file hgh_projector.F90.

◆ dhgh_project_bra()

subroutine, public hgh_projector_oct_m::dhgh_project_bra ( type(mesh_t), intent(in)  mesh,
type(submesh_t), intent(in)  sm,
type(hgh_projector_t), intent(in)  hgh_p,
integer, intent(in)  dim,
integer, intent(in)  reltype,
real(real64), dimension(:, :), intent(in)  psi,
real(real64), dimension(:,:), intent(out)  uvpsi 
)

THREADSAFE.

Parameters
[out]uvpsi(dim, 3)

Definition at line 307 of file hgh_projector.F90.

◆ dhgh_project_ket()

subroutine, public hgh_projector_oct_m::dhgh_project_ket ( type(hgh_projector_t), dimension(-lmax:), intent(in)  hgh_p,
integer, intent(in)  ll,
integer, intent(in)  lmax,
integer, intent(in)  dim,
integer, intent(in)  reltype,
real(real64), dimension(:,:,-ll:), intent(in)  uvpsi,
real(real64), dimension(:, :), intent(inout)  ppsi 
)

THREADSAFE.

Parameters
[in]uvpsi(dim, 3, 2*ll+1)

Definition at line 392 of file hgh_projector.F90.

◆ zhgh_project()

subroutine, public hgh_projector_oct_m::zhgh_project ( type(mesh_t), intent(in)  mesh,
type(submesh_t), intent(in)  sm,
type(hgh_projector_t), dimension(-lmax:), intent(in)  hgh_p,
integer, intent(in)  ll,
integer, intent(in)  lmax,
integer, intent(in)  dim,
complex(real64), dimension(:, :), intent(in)  psi,
complex(real64), dimension(:, :), intent(inout)  ppsi,
integer, intent(in)  reltype 
)

zhgh_project calculates the action of the projector hgh_p on the psi wavefunction. The action of the projector hgh_p is defined as:

\[ \hat{hgh_p} |psi> = \sum_{ij}^3 p\%h(i,j) |hgh_p\%p(:, i)><hgh_p\%p(:, j)|psi> \]

The result is summed up to ppsi.

If including the spin-orbit coupling there is another term to be added to ppsi:

\[ \sum_{ij}^3\sum{k}^3 p\%k(i,j) |hgh_p\%p(:, i)><hgh_p\%lp(:, k, j)|\hat{S(k)}|psi> \]

Parameters
[in]psi(hgh%n_s, dim)
[in,out]ppsi(hgh%n_s, dim)

Definition at line 584 of file hgh_projector.F90.

◆ zhgh_project_bra()

subroutine, public hgh_projector_oct_m::zhgh_project_bra ( type(mesh_t), intent(in)  mesh,
type(submesh_t), intent(in)  sm,
type(hgh_projector_t), intent(in)  hgh_p,
integer, intent(in)  dim,
integer, intent(in)  reltype,
complex(real64), dimension(:, :), intent(in)  psi,
complex(real64), dimension(:,:), intent(out)  uvpsi 
)

THREADSAFE.

Parameters
[out]uvpsi(dim, 3)

Definition at line 610 of file hgh_projector.F90.

◆ zhgh_project_ket()

subroutine, public hgh_projector_oct_m::zhgh_project_ket ( type(hgh_projector_t), dimension(-lmax:), intent(in)  hgh_p,
integer, intent(in)  ll,
integer, intent(in)  lmax,
integer, intent(in)  dim,
integer, intent(in)  reltype,
complex(real64), dimension(:,:,-ll:), intent(in)  uvpsi,
complex(real64), dimension(:, :), intent(inout)  ppsi 
)

THREADSAFE.

Parameters
[in]uvpsi(dim, 3, 2*ll+1)

Definition at line 695 of file hgh_projector.F90.