GRASP rci-qed
Data Types | Functions/Subroutines | Variables
grasp_rciqed_qed_vp Module Reference

Data Types

interface  potential
 Evaluates the single particle matrix elements of an arbitrary (even) potential represented as an array on the GRASP grid in the basis of GRASP orbitals. More...
 
interface  qedvp
 Populates a matrix with the matrix elements of a QED vacuum polarization potential. More...
 

Functions/Subroutines

subroutine qedvp_init
 Initializes the global state for the vacuum polarization calculations. More...
 
subroutine qedvp (matrix)
 Populates matrix with the full QED vacuum polarization matrix elements in the orbital basis. More...
 
subroutine qedvp_type (vptype, matrix)
 Populates matrix with the matrix elements of the VP potential corresponding to a contribution defined by vptype. More...
 
subroutine potential_kl (v, k1, k2, result)
 Integrates the generic potential, stored in the array v, with orbitals k1 and k2 to obtain a single particle matrix element correponding to those orbitals. More...
 
subroutine potential (v, matrix)
 Populates matrix with the matrix elements of potential v. More...
 

Variables

integer, parameter nvptypes = 2
 
character(*), dimension(nvptypes), parameter vptypes_long = (/ "Uehling ", "Källén-Sabry " /)
 
character(*), dimension(nvptypes), parameter vptypes_short = (/ "uehling ", "kallensabry" /)
 
logical qedvp_initialized = .false.
 
real(real64), dimension(:,:), allocatable vp_potential
 
real(real64), dimension(:,:), allocatable qedvp_kl
 
real(real64), dimension(nnnp) zdist
 

Function/Subroutine Documentation

◆ potential()

subroutine grasp_rciqed_qed_vp::potential ( real(real64), dimension(:), intent(in)  v,
real(real64), dimension(:, :), intent(out)  matrix 
)

Populates matrix with the matrix elements of potential v.

Internally, it uses the QUAD routine to perform the integration on the standard GRASP grid. It will multiply the value of the potential with RP, so the user should not do that themselves (i.e. internally TA ~ V * RP).

Parameters
vAn array containing the potential, represented on the GRASP grid.
matrixAn NW x NW real64 array for storing the matrix elements.
Here is the call graph for this function:

◆ potential_kl()

subroutine grasp_rciqed_qed_vp::potential_kl ( real(real64), dimension(:), intent(in)  v,
integer, intent(in)  k1,
integer, intent(in)  k2,
real(real64), intent(out)  result 
)

Integrates the generic potential, stored in the array v, with orbitals k1 and k2 to obtain a single particle matrix element correponding to those orbitals.

Internally, it uses the QUAD routine to perform the integration on the standard GRASP grid. It will multiply the value of the potential with RP, so the user should not do that themselves (i.e. internally TA ~ V * RP).

Parameters
vAn array containing the potential, represented on the GRASP grid.
k1,k2Indices of the orbitals.
resultThe value of the single particle matrix element for orbitals k1 and k2.
Here is the caller graph for this function:

◆ qedvp()

subroutine grasp_rciqed_qed_vp::qedvp ( real(real64), dimension(:, :), intent(out)  matrix)

Populates matrix with the full QED vacuum polarization matrix elements in the orbital basis.

The matrix element values are integrated using the vp_vac{2,4} global arrays from this module, which contains both the Uehling and Källen-Sabry terms.

Parameters
matrixAn NW x NW real64 array for storing the matrix elements.

◆ qedvp_init()

subroutine grasp_rciqed_qed_vp::qedvp_init ( )

Initializes the global state for the vacuum polarization calculations.

If the global state is already initialized, the routine just prints an error message and does not do anything.

Here is the caller graph for this function:

◆ qedvp_type()

subroutine grasp_rciqed_qed_vp::qedvp_type ( integer, intent(in)  vptype,
real(real64), dimension(:, :), intent(out)  matrix 
)

Populates matrix with the matrix elements of the VP potential corresponding to a contribution defined by vptype.

The values of vptype correspond to the following VP contributions:

  1. Uehling
  2. Källén-Sabry
Parameters
vptypeInteger specifying the VP contribution.
matrixAn NW x NW real64 array for storing the matrix elements.

Variable Documentation

◆ nvptypes

integer, parameter grasp_rciqed_qed_vp::nvptypes = 2

◆ qedvp_initialized

logical grasp_rciqed_qed_vp::qedvp_initialized = .false.

◆ qedvp_kl

real(real64), dimension(:,:), allocatable grasp_rciqed_qed_vp::qedvp_kl

◆ vp_potential

real(real64), dimension(:,:), allocatable grasp_rciqed_qed_vp::vp_potential

◆ vptypes_long

character(*), dimension(nvptypes), parameter grasp_rciqed_qed_vp::vptypes_long = (/ "Uehling ", "Källén-Sabry " /)

◆ vptypes_short

character(*), dimension(nvptypes), parameter grasp_rciqed_qed_vp::vptypes_short = (/ "uehling ", "kallensabry" /)

◆ zdist

real(real64), dimension(nnnp) grasp_rciqed_qed_vp::zdist