(git:6a2e663)
commutator_rpnl Module Reference

Calculation of the non-local pseudopotential contribution to the core Hamiltonian <a|V(non-local)|b> = <a|p(l,i)>h(i,j)<p(l,j)|b> More...

Functions/Subroutines

subroutine, public build_com_rpnl (matrix_rv, qs_kind_set, sab_orb, sap_ppnl, eps_ppnl)
 ... More...
 
subroutine, public build_com_mom_nl (qs_kind_set, sab_all, sap_ppnl, eps_ppnl, particle_set, cell, matrix_rv, matrix_rxrv, matrix_rrv, matrix_rvr, matrix_rrv_vrr, matrix_r_rxvr, matrix_rxvr_r, matrix_r_doublecom, pseudoatom, ref_point)
 Calculate [r,Vnl] (matrix_rv), r x [r,Vnl] (matrix_rxrv) or [rr,Vnl] (matrix_rrv) in AO basis. Reference point is required for the two latter options Update: Calculate rxVnlxr (matrix_rvr) and rxrxVnl + Vnlxrxr (matrix_rrv_vrr) in AO basis. Added in the first place for current correction in the VG formalism (first order wrt vector potential). More...
 
subroutine, public build_com_nl_mag (qs_kind_set, sab_all, sap_ppnl, eps_ppnl, particle_set, matrix_mag_nl, refpoint, cell)
 calculate \sum_R_ps (R_ps - R_nu) x [V_nl, r] summing over all pseudized atoms R More...
 
subroutine, public build_com_vnl_giao (qs_kind_set, sab_all, sap_ppnl, eps_ppnl, particle_set, matrix_rv, ref_point, cell, direction_Or)
 Calculate matrix_rv(gamma, delta) = < R^eta_gamma * Vnl * r_delta > for GIAOs. More...
 

Detailed Description

Calculation of the non-local pseudopotential contribution to the core Hamiltonian <a|V(non-local)|b> = <a|p(l,i)>h(i,j)<p(l,j)|b>

History
  • refactered from qs_core_hamiltian [Joost VandeVondele, 2008-11-01]
  • full rewrite [jhu, 2009-01-23]

Function/Subroutine Documentation

◆ build_com_rpnl()

subroutine, public commutator_rpnl::build_com_rpnl ( type(dbcsr_p_type), dimension(:), pointer  matrix_rv,
type(qs_kind_type), dimension(:), pointer  qs_kind_set,
type(neighbor_list_set_p_type), dimension(:), pointer  sab_orb,
type(neighbor_list_set_p_type), dimension(:), pointer  sap_ppnl,
real(kind=dp), intent(in)  eps_ppnl 
)

...

Parameters
matrix_rv...
qs_kind_set...
sab_orb...
sap_ppnl...
eps_ppnl...

Definition at line 75 of file commutator_rpnl.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ build_com_mom_nl()

subroutine, public commutator_rpnl::build_com_mom_nl ( type(qs_kind_type), dimension(:), intent(in), pointer  qs_kind_set,
type(neighbor_list_set_p_type), dimension(:), intent(in), pointer  sab_all,
type(neighbor_list_set_p_type), dimension(:), intent(in), pointer  sap_ppnl,
real(kind=dp), intent(in)  eps_ppnl,
type(particle_type), dimension(:), intent(in), pointer  particle_set,
type(cell_type), intent(in), pointer  cell,
type(dbcsr_p_type), dimension(:), intent(inout), optional  matrix_rv,
type(dbcsr_p_type), dimension(:), intent(inout), optional  matrix_rxrv,
type(dbcsr_p_type), dimension(:), intent(inout), optional  matrix_rrv,
type(dbcsr_p_type), dimension(:), intent(inout), optional  matrix_rvr,
type(dbcsr_p_type), dimension(:), intent(inout), optional  matrix_rrv_vrr,
type(dbcsr_p_type), dimension(:, :), intent(inout), optional  matrix_r_rxvr,
type(dbcsr_p_type), dimension(:, :), intent(inout), optional  matrix_rxvr_r,
type(dbcsr_p_type), dimension(:, :), intent(inout), optional  matrix_r_doublecom,
integer, intent(in), optional  pseudoatom,
real(kind=dp), dimension(3), intent(in), optional  ref_point 
)

Calculate [r,Vnl] (matrix_rv), r x [r,Vnl] (matrix_rxrv) or [rr,Vnl] (matrix_rrv) in AO basis. Reference point is required for the two latter options Update: Calculate rxVnlxr (matrix_rvr) and rxrxVnl + Vnlxrxr (matrix_rrv_vrr) in AO basis. Added in the first place for current correction in the VG formalism (first order wrt vector potential).

Parameters
qs_kind_set...
sab_all...
sap_ppnl...
eps_ppnl...
particle_set...
cell...
matrix_rv...
matrix_rxrv...
matrix_rrv...
matrix_rvr...
matrix_rrv_vrr...
matrix_r_rxvr...
matrix_rxvr_r...
matrix_r_doublecom...
pseudoatom...
ref_point...

Definition at line 437 of file commutator_rpnl.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ build_com_nl_mag()

subroutine, public commutator_rpnl::build_com_nl_mag ( type(qs_kind_type), dimension(:), intent(in), pointer  qs_kind_set,
type(neighbor_list_set_p_type), dimension(:), intent(in), pointer  sab_all,
type(neighbor_list_set_p_type), dimension(:), intent(in), pointer  sap_ppnl,
real(kind=dp), intent(in)  eps_ppnl,
type(particle_type), dimension(:), intent(in), pointer  particle_set,
type(dbcsr_p_type), dimension(:), intent(in), pointer  matrix_mag_nl,
real(kind=dp), dimension(3), intent(in), optional  refpoint,
type(cell_type), intent(in), optional, pointer  cell 
)

calculate \sum_R_ps (R_ps - R_nu) x [V_nl, r] summing over all pseudized atoms R

Parameters
qs_kind_set...
sab_all...
sap_ppnl...
eps_ppnl...
particle_set...
matrix_mag_nl...
refpoint...
cell...

Definition at line 1537 of file commutator_rpnl.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ build_com_vnl_giao()

subroutine, public commutator_rpnl::build_com_vnl_giao ( type(qs_kind_type), dimension(:), intent(in), pointer  qs_kind_set,
type(neighbor_list_set_p_type), dimension(:), intent(in), pointer  sab_all,
type(neighbor_list_set_p_type), dimension(:), intent(in), pointer  sap_ppnl,
real(kind=dp), intent(in)  eps_ppnl,
type(particle_type), dimension(:), intent(in), pointer  particle_set,
type(dbcsr_p_type), dimension(:, :), intent(inout), optional, pointer  matrix_rv,
real(kind=dp), dimension(3), intent(in), optional  ref_point,
type(cell_type), intent(in), optional, pointer  cell,
logical  direction_Or 
)

Calculate matrix_rv(gamma, delta) = < R^eta_gamma * Vnl * r_delta > for GIAOs.

Parameters
qs_kind_set...
sab_all...
sap_ppnl...
eps_ppnl...
particle_set...
matrix_rv...
ref_point...
cell...
direction_OrIf set to true: calculate Vnl * r_delta Otherwise calculate r_delta * Vnl

Definition at line 1776 of file commutator_rpnl.F.

Here is the call graph for this function: