Check F1 & F2

load package

using FRGRealTime,Plots,HCubature

Define integrate $\tilde{\partial_k}F1$ function:

testloopfunpp(p0,ps,k,m,T)=hquadrature(x->FRGRealTime.flowpp(p0,ps,x,m,T),0.0,k,initdiv=2000)[1]+FRGRealTime.loopfunpp(p0,ps,0.0,m,T)
testloopfunpp (generic function with 1 method)

Define integrate $\tilde{\partial_k}F2$ function:

testloopfunpm(p0,ps,k,m,T)=hquadrature(x->FRGRealTime.flowpm(p0,ps,x,m,T),0.0,k)[1]+FRGRealTime.loopfunpm(p0,ps,0.0,m,T)
testloopfunpm (generic function with 1 method)

Define integrate $\tilde{\partial_k}F1$ function for m<0:

testloopfunpp2(p0,ps,k,m,T)=-hquadrature(x->FRGRealTime.flowpp(p0,ps,x,m,T),k,400.0,rtol=1e-14,atol=1e-14,initdiv=10000)[1]+FRGRealTime.loopfunpp(p0,ps,400.0,m,T)
testloopfunpp2 (generic function with 1 method)

Define integrate $\tilde{\partial_k}F2$ function:

testloopfunpm2(p0,ps,k,m,T)=hquadrature(x->FRGRealTime.flowpm(p0,ps,x,m,T),2.0,k,initdiv=1000)[1]+FRGRealTime.loopfunpm(p0,ps,2.0,m,T)
testloopfunpm2 (generic function with 1 method)

F1 Checking Results

$k>ps,m>0,p_0\in (1.0,400.0)$

plot(p0->testloopfunpp(p0,10.0,20.0,1.0,145.0),1.0,400.0,label="Integrate flow",xaxis="p0")
plot!(p0->FRGRealTime.loopfunpp(p0,10.0,20.0,1.0,145.0),1.0,400.0,label="F1")

$k>ps,m>0,p_0\in (1.0,10.0)$

plot(p0->testloopfunpp(p0,10.0,20.0,1.0,145.0),1.0,20.0,label="Integrate flow",xaxis="p0")
plot!(p0->FRGRealTime.loopfunpp(p0,10.0,20.0,1.0,145.0),1.0,20.0,label="F1")

$ps/2<k<ps,m>0$

plot(p0->testloopfunpp(p0,10.0,8.0,1.0,145.0),1.0,400.0,label="Integrate flow",xaxis="p0")
plot!(p0->FRGRealTime.loopfunpp(p0,10.0,8.0,1.0,145.0),1.0,400.0,label="F1")

$k<ps/2,m>0$

plot(p0->testloopfunpp(p0,10.0,2.0,1.0,145.0),1.0,400.0,label="Integrate flow",xaxis="p0")
plot!(p0->FRGRealTime.loopfunpp(p0,10.0,2.0,1.0,145.0),1.0,400.0,label="F1")

$k>ps,m<0,p_0\in (1.0,400.0)$

plot(p0->testloopfunpp2(p0,10.0,20.0,-3.0,145.0),1.0,400.0,label="Integrate flow",xaxis="p0")
plot!(p0->FRGRealTime.loopfunpp(p0,10.0,20.0,-3.0,145.0),1.0,400.0,label="F1")

$ps/2<k<ps,m<0$

plot(p0->testloopfunpp2(p0,10.0,8.0,-3.0,145.0),1.0,400.0,label="Integrate flow",xaxis="p0")
plot!(p0->FRGRealTime.loopfunpp(p0,10.0,8.0,-3.0,145.0),1.0,400.0,label="F1")

$k<ps/2,m>0$

plot(p0->testloopfunpp2(p0,10.0,2.0,-3.0,145.0),1.0,400.0,label="Integrate flow",xaxis="p0")
plot!(p0->FRGRealTime.loopfunpp(p0,10.0,2.0,-3.0,145.0),1.0,400.0,label="F1")

$k<ps/2,m<0$

plot(p0->testloopfunpp2(p0,10.0,4.0,-3.0,145.0),9.25,9.5,label="Integrate flow",xaxis="p0")
plot!(p0->FRGRealTime.loopfunpp(p0,10.0,4.0,-3.0,145.0),9.25,9.5,label="F1")

F2 Checking Results

$k>ps,m>0$

plot(p0->testloopfunpm(p0,10.0,20.0,1.0,145.0),1.0,20.0,label="Integrate flow",xaxis="p0")
plot!(p0->FRGRealTime.loopfunpm(p0,10.0,20.0,1.0,145.0),1.0,20.0,label="F2")

$ps/2<k<ps,m>0$

plot(p0->testloopfunpm(p0,10.0,8.0,1.0,145.0),1.0,20.0,label="Integrate flow",xaxis="p0")
plot!(p0->FRGRealTime.loopfunpm(p0,10.0,8.0,1.0,145.0),1.0,20.0,label="F2")

$k<ps/2,m>0$

plot(p0->testloopfunpm(p0,10.0,2.0,1.0,145.0),1.0,20.0,label="Integrate flow",xaxis="p0")
plot!(p0->FRGRealTime.loopfunpm(p0,10.0,2.0,1.0,145.0),1.0,20.0,label="F2")

$k>ps,m<0$

plot(p0->testloopfunpm2(p0,10.0,20.0,-3.0,145.0),1.0,20.0,label="Integrate flow",xaxis="p0")
plot!(p0->FRGRealTime.loopfunpm(p0,10.0,20.0,-3.0,145.0),1.0,20.0,label="F2")

$ps/2<k<ps,m<0$

plot(p0->testloopfunpm2(p0,10.0,8.0,-3.0,145.0),1.0,20.0,label="Integrate flow",xaxis="p0")
plot!(p0->FRGRealTime.loopfunpm(p0,10.0,8.0,-3.0,145.0),1.0,20.0,label="F2")

$k<ps/2,m<0$

plot(p0->testloopfunpm2(p0,10.0,2.0,-3.0,145.0),1.0,20.0,label="Integrate flow",xaxis="p0")
plot!(p0->FRGRealTime.loopfunpm(p0,10.0,2.0,-3.0,145.0),1.0,20.0,label="F2")

Check Vertex

The flow equation of vertex has the following form:

\[\begin{aligned} \partial_kV_k=&\lambda_{4\pi}(k)^2 \tilde{\partial_k}\Bigg\{3\pi\Bigg. (2 + N) \Big[\Big. F_1(p_0-q_0,|\mathbf{p}_s+\mathbf{q}_s|,k,m(k))+F_2(p_0-q_0,|\mathbf{p}_s+\mathbf{q}_s|,k,m(k))\\ &\Bigg.\Big.+F_1(p_0+q_0,|\mathbf{p}_s+\mathbf{q}_s|,k,m(k))+F_2(p_0+q_0,|\mathbf{p}_s+\mathbf{q}_s|,k,m(k))\Big]\Bigg\} \end{aligned}\]

Define Vertex testing function, we set $q_0=E_\pi(k,m)$:

testVIm(p0, ps, k, m, T, lam4pik)=-hquadrature(x->FRGRealTime.dkVIm(p0, ps, Epi(k,m), x, m, T, 4.0, lam4pik),k,400.0,atol=1e-6,rtol=1e-6,initdiv=1000)[1]
testVIm (generic function with 1 method)

Define a check plot function with p0 is x-axis:

function checkplotVIm(ps,qs,costh, k, m, T, lam4pik)
  plot(p0->testVIm(p0, sqrt(ps^2+qs^2+2*ps*qs*costh), k, m, T, lam4pik),1.0,100.0,label="Integrate Flow",xaxis="p0")
  plot!(p0->FRGRealTime.VImSimple(p0, sqrt(ps^2+qs^2+2*ps*qs*costh), Epi(k,m), k, m, T,4.0, lam4pik,400.0),1.0,100.0,label="F1&F2")
end
checkplotVIm (generic function with 1 method)

\[m<0,k>ps/2,\cos\theta=1.0,ps=0.0\]

checkplotVIm(0.0,5.0,1.0,10.0,-2.0,145.0,1.0)

\[m<0,k>ps/2,\cos\theta=1.0,ps=0.0,qs=8,k=10\]

checkplotVIm(0.0,8.0,1.0,10.0,-2.0,145.0,1.0)

\[m<0,k>ps/2,\cos\theta=1.0,ps=0.0,qs=9,k=10\]

checkplotVIm(0.0,9.0,1.0,10.0,-2.0,145.0,1.0)

\[m<0,k>ps/2,\cos\theta=1.0,ps=0.0,qs=ps\]

checkplotVIm(0.0,10.0,1.0,10.0,-2.0,145.0,1.0)

\[m<0,k>ps/2,\cos\theta=-1.0,ps=4.0,k=10.0\]

checkplotVIm(4.0,5.0,-1.0,10.0,-2.0,145.0,1.0)

\[m<0,k>ps/2,\cos\theta=0.0,ps=4.0,k=10.0\]

checkplotVIm(4.0,5.0,0.0,10.0,-2.0,145.0,1.0)

\[m<0,k>ps/2,\cos\theta=1.0,ps=4.0,k=10.0\]

checkplotVIm(4.0,5.0,1.0,10.0,-2.0,145.0,1.0)

\[m<0,k>ps/2,\cos\theta=-1.0,ps=10.0,k=10.0\]

checkplotVIm(10.0,5.0,-1.0,10.0,-2.0,145.0,1.0)

\[m<0,k>ps/2,\cos\theta=0.0,ps=10.0,k=10.0\]

checkplotVIm(10.0,5.0,-1.0,10.0,-2.0,145.0,1.0)

\[m<0,k>ps/2,\cos\theta=1.0,ps=10.0,k=10.0\]

checkplotVIm(10.0,5.0,1.0,10.0,-2.0,145.0,1.0)

\[m<0,k=ps/2,\cos\theta=-1.0\]

checkplotVIm(20.0,5.0,-1.0,10.0,-2.0,145.0,1.0)

\[m<0,k=ps/2,\cos\theta=0.0\]

checkplotVIm(20.0,5.0,0.0,10.0,-2.0,145.0,1.0)

\[m<0,k=ps/2,\cos\theta=1.0\]

checkplotVIm(20.0,5.0,1.0,10.0,-2.0,145.0,1.0)

\[m<0,k<ps/2,\cos\theta=-1.0\]

checkplotVIm(40.0,5.0,-1.0,10.0,-2.0,145.0,1.0)

\[m<0,k<ps/2,\cos\theta=0.0\]

checkplotVIm(40.0,5.0,0.0,10.0,-2.0,145.0,1.0)

\[m<0,k<ps/2,\cos\theta=1.0\]

checkplotVIm(40.0,5.0,1.0,10.0,-2.0,145.0,1.0)

\[m<0,k<ps/2,\cos\theta=-1.0,qs=k\]

checkplotVIm(40.0,10.0,-1.0,10.0,-2.0,145.0,1.0)

\[m<0,k<ps/2,\cos\theta=0.0,qs=k\]

checkplotVIm(40.0,10.0,0.0,10.0,-2.0,145.0,1.0)

\[m<0,k<ps/2,\cos\theta=1.0,qs=k\]

checkplotVIm(40.0,10.0,1.0,10.0,-2.0,145.0,1.0)

\[m<0,k=ps/2,\cos\theta=-1.0,qs=k\]

checkplotVIm(20.0,10.0,-1.0,10.0,-2.0,145.0,1.0)

\[m<0,k=ps/2,\cos\theta=0.0,qs=k\]

checkplotVIm(20.0,10.0,0.0,10.0,-2.0,145.0,1.0)

Check Two Point function

Define mass function and $\lambda_4\pi$ function:

using Dierckx
testmfun(x)=-2.0
testlamfun(x)=1.0
testmfun2=Spline1D(collect(0.1:0.5:800.0),fill(-2.0,length(collect(0.1:0.5:800.0))))
testlamfun2=Spline1D(collect(0.1:0.5:800.0),fill(1.0,length(collect(0.1:0.5:800.0))))
Spline1D(knots=[0.1,1.1 … 798.6,799.6] (1598 elements), k=3, extrapolation=
"nearest", residual=0.0)

\[p_s=0.5, m=-2,T=145,p_0\in (1,100)\]

v1=collect(1.0:2.0:100.0)
propout1=(p0->FRGRealTime.propImintqs(p0, 0.5, 145.0,5.0,400.0, 4.0, testmfun2, testlamfun2)).(v1)
propdeltaout1=-(p0->FRGRealTime.propImintqs_delta1(p0, 0.5, 145.0,5.0,400.0, 4.0, testmfun2, testlamfun2)).(v1)
propsimpleout1=FRGRealTime.propImSimple.(v1, 0.5, 145.0, 5.0,400.0, 4.0, -2.0, 1.0)
plot(v1,propout1+propdeltaout1,lable="Integrate Flow",xaxis="p0")
plot!(v1,propsimpleout1,lable="F1 & F2")

\[p_s=0.5, m=-2,T=145,p_0\in (1,400)\]

v1=collect(1.0:5.0:400.0)
propout1=(p0->FRGRealTime.propImintqs(p0, 0.5, 145.0,5.0,400.0, 4.0, testmfun2, testlamfun2)).(v1)
propdeltaout1=-(p0->FRGRealTime.propImintqs_delta1(p0, 0.5, 145.0,5.0,400.0, 4.0, testmfun2, testlamfun2)).(v1)
propsimpleout1=FRGRealTime.propImSimple.(v1, 0.5, 145.0, 5.0,400.0, 4.0, -2.0, 1.0)
plot(v1,propout1+propdeltaout1,lable="Integrate Flow",xaxis="p0")
plot!(v1,propsimpleout1,lable="F1 & F2")

\[p_s=100.0, m=-2,T=145,p_0\in (1,100)\]

v1=collect(1.0:2.0:100.0)
propout1=(p0->FRGRealTime.propImintqs(p0, 100.0, 145.0,5.0,400.0, 4.0, testmfun2, testlamfun2)).(v1)
propdeltaout1=-(p0->FRGRealTime.propImintqs_delta1(p0, 100.0, 145.0,5.0,400.0, 4.0, testmfun2, testlamfun2)).(v1)
propsimpleout1=FRGRealTime.propImSimple.(v1, 100.0, 145.0, 5.0,400.0, 4.0, -2.0, 1.0)
plot(v1,propout1+propdeltaout1,lable="Integrate Flow",xaxis="p0")
plot!(v1,propsimpleout1,lable="F1 & F2")