mirror of
https://github.com/pfloos/quack
synced 2024-08-30 16:13:45 +02:00
85 lines
1.2 KiB
Fortran
85 lines
1.2 KiB
Fortran
|
function SigC_dcgw(x,y) result(SigC)
|
||
|
|
||
|
! Degeneracy-corrected GW
|
||
|
|
||
|
implicit none
|
||
|
include 'parameters.h'
|
||
|
|
||
|
! Input variables
|
||
|
|
||
|
double precision,intent(in) :: x,y
|
||
|
|
||
|
! Local variables
|
||
|
|
||
|
double precision,parameter :: eta = 0.1d0
|
||
|
double precision :: r
|
||
|
|
||
|
! Output variables
|
||
|
|
||
|
double precision :: SigC
|
||
|
|
||
|
! Compute the divergence-free term
|
||
|
|
||
|
r = y/x
|
||
|
|
||
|
! Bare style
|
||
|
|
||
|
SigC = y*r
|
||
|
|
||
|
! DCPT style
|
||
|
|
||
|
! SigC = -0.5d0*x*(1d0-sqrt(1d0+4d0*r*r))
|
||
|
|
||
|
! QDPT style
|
||
|
|
||
|
! SigC = y*r/sqrt(1d0+4d0*r*r)
|
||
|
|
||
|
! Infinitesimal
|
||
|
|
||
|
! SigC = y*y*x/(x*x+eta*eta)
|
||
|
|
||
|
end function SigC_dcgw
|
||
|
|
||
|
function Z_dcgw(x,y) result(Z)
|
||
|
|
||
|
|
||
|
! Derivative of the degeneracy-corrected GW
|
||
|
|
||
|
implicit none
|
||
|
include 'parameters.h'
|
||
|
|
||
|
! Input variables
|
||
|
|
||
|
double precision,intent(in) :: x,y
|
||
|
|
||
|
! Local variables
|
||
|
|
||
|
double precision,parameter :: eta = 1d0
|
||
|
double precision :: r
|
||
|
|
||
|
! Output variables
|
||
|
|
||
|
double precision :: Z
|
||
|
|
||
|
! Compute the divergence-free term
|
||
|
|
||
|
r = y/x
|
||
|
|
||
|
! Bare style
|
||
|
|
||
|
Z = r*r
|
||
|
|
||
|
! DCPT style
|
||
|
|
||
|
! Z = 0.5d0*(1d0-1d0/sqrt(1d0+4d0*r*r))
|
||
|
|
||
|
! QDPT style
|
||
|
|
||
|
! Z = r/sqrt(1d0+4d0*r*r)/(1d0+4d0*r*r)
|
||
|
|
||
|
! Infinitesimal
|
||
|
|
||
|
! Z = y*y*(x*x-eta*eta)/(x*x+eta*eta)**2
|
||
|
|
||
|
end function Z_dcgw
|