109 lines
2.7 KiB
Plaintext
109 lines
2.7 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"WARNING: Method definition (::Type{QEDcore.ParticleStateful{DIR, SPECIES, ELEMENT} where ELEMENT<:QEDbase.AbstractFourMomentum})(QEDbase.AbstractFourMomentum) where {DIR<:QEDbase.ParticleDirection, SPECIES<:QEDbase.AbstractParticleType} in module QEDcore at /home/antonr/.julia/packages/QEDcore/uVldP/src/phase_spaces/create.jl:7 overwritten in module MetagraphOptimization at /home/antonr/.julia/packages/MetagraphOptimization/mvCVq/src/QEDprocesses_patch.jl:15.\n",
|
|
"ERROR: Method overwriting is not permitted during Module precompilation. Use `__precompile__(false)` to opt-out of precompilation.\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"using Revise\n",
|
|
"using FeynmanDiagramGenerator"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"proc = GenericQEDProcess(3, 1, 1, 1, 0, 0)\n",
|
|
"all_particles = Set()\n",
|
|
"for fd in feynman_diagrams(proc)\n",
|
|
" push!(all_particles, virtual_particles(proc, fd)...)\n",
|
|
"end\n",
|
|
"all_particles = sort([all_particles...])\n",
|
|
"display(all_particles)\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"pairs = FeynmanDiagramGenerator.particle_pairs(all_particles)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"triples = FeynmanDiagramGenerator.total_particle_triples(all_particles)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"function n(vp::VirtualParticle)\n",
|
|
" if !haskey(pairs, vp)\n",
|
|
" return 1\n",
|
|
" end\n",
|
|
" s = 0\n",
|
|
" for (l, r) in pairs[vp]\n",
|
|
" s += n(l) * n(r)\n",
|
|
" end\n",
|
|
" return s\n",
|
|
"end\n",
|
|
"\n",
|
|
"s = 0\n",
|
|
"for (ph, e, p) in triples\n",
|
|
" s += n(ph) * n(e) * n(p)\n",
|
|
"end\n",
|
|
"\n",
|
|
"println(\"s: $s, should be: $(length(feynman_diagrams(proc)))\")\n",
|
|
"println(\"number of triples: $(length(triples))\")\n",
|
|
"\n",
|
|
"sort(triples)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"generate_DAG(proc)"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Julia 1.10.4",
|
|
"language": "julia",
|
|
"name": "julia-1.10"
|
|
},
|
|
"language_info": {
|
|
"file_extension": ".jl",
|
|
"mimetype": "application/julia",
|
|
"name": "julia",
|
|
"version": "1.10.4"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|