(git:5c1df3d)
Loading...
Searching...
No Matches
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_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).
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
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.

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_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 74 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 1197 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 1436 of file commutator_rpnl.F.

Here is the call graph for this function: