diff --git a/src/sigma/parquetAD.jl b/src/sigma/parquetAD.jl index 9bc02e3..e708322 100644 --- a/src/sigma/parquetAD.jl +++ b/src/sigma/parquetAD.jl @@ -58,7 +58,7 @@ function ParquetAD(para::ParaMC, diagram; dof=dof, type=ComplexF64, # type of the integrand obs=obs, - userdata=(para, kgrid, ngrid, maxMomNum, extT_labels, leafStat, momLoopPool, root, funcGraphs!, isLayered2D), + userdata=(para, kgrid, ngrid, maxMomNum, extT_labels, leafStat, leaf_maps, momLoopPool, root, funcGraphs!, isLayered2D), kwargs... ) end diff --git a/src/sigma/sigmaKW.jl b/src/sigma/sigmaKW.jl index 537ccaa..330fe98 100644 --- a/src/sigma/sigmaKW.jl +++ b/src/sigma/sigmaKW.jl @@ -10,6 +10,12 @@ function integrandKW(idx, vars, config) extidx = ExtKidx[1] varK.data[1, 1] = kgrid[extidx] FrontEnds.update(momLoopPool, varK.data[:, 1:MaxLoopNum]) + if para.isDynamic + tau_num = 2 + else + tau_num = 1 + end + for (i, lftype) in enumerate(leafType[idx]) if lftype == 0 continue @@ -23,8 +29,9 @@ function integrandKW(idx, vars, config) kq = FrontEnds.loop(momLoopPool, leafMomIdx[idx][i]) order = leafOrders[idx][i][2] if dim == 3 - invK = 1.0 / (dot(kq, kq) + λ) - leafval[idx][i] = e0^2 / ϵ0 * invK * (λ * invK)^order + leafval[idx][i] = Propagator.interaction_derive(τ1, τ2, kq, para, idorder; idtype=diagid.type, tau_num=tau_num) + # invK = 1.0 / (dot(kq, kq) + λ) + # leafval[idx][i] = e0^2 / ϵ0 * invK * (λ * invK)^order elseif dim == 2 if isLayered2D == false invK = 1.0 / (sqrt(dot(kq, kq)) + λ)