FeynMPΒΆ

[1]:
from pyfeyn2.feynmandiagram import FeynmanDiagram, Leg, Propagator, Vertex
from pyfeyn2.render.feynmp import FeynmpRender
from pyfeyn2.render.dot import feynman_adjust_points
[2]:
fd = FeynmanDiagram()
v1 = Vertex("v1").set_xy(-1, 0)
v2 = Vertex("v2").set_xy(1, 0)
p1 = Propagator("p1").connect(v1, v2).set_type("gluon")
l1 = Leg("l1").set_target(v1).set_xy(-2, 1).set_type("gluon").set_incoming()
l2 = Leg("l2").set_target(v1).set_xy(-2, -1).set_type("gluon").set_incoming()
l3 = Leg("l3").set_target(v2).set_xy(2, 1).set_type("gluon").set_outgoing()
l4 = Leg("l4").set_target(v2).set_xy(2, -1).set_type("gluon").set_outgoing()
p1.set_source(v1)
p1.set_target(v2)
fd.propagators.append(p1)
fd.vertices.extend([v1, v2])
fd.legs.extend([l1, l2, l3, l4])
[3]:
tfd = FeynmpRender(fd)
print(tfd.get_src())
\documentclass[preview,crop]{standalone}%
\usepackage[T1]{fontenc}%
\usepackage[utf8]{inputenc}%
\usepackage{lmodern}%
\usepackage{textcomp}%
\usepackage{lastpage}%
%
\usepackage{feynmp-auto}%
%
\begin{document}%
\normalsize%
\begin{fmffile}{tmp-ijrvbfmmoj}
\begin{fmfgraph*}(120,80)
                \fmfleft{l1,l2}
                \fmfright{l3,l4}
                \fmf{gluon}{l1,v1}
                \fmf{gluon}{l2,v1}
                \fmf{gluon}{v2,l3}
                \fmf{gluon}{v2,l4}
                \fmf{gluon}{v1,v2}
\end{fmfgraph*}
\end{fmffile}
%
\end{document}
[4]:
tfd.render()
../_images/examples_FeynMP_4_0.png
[4]:
../_images/examples_FeynMP_4_1.png
[5]:
tfd.render("test.pdf")
../_images/examples_FeynMP_5_0.png
[5]:
../_images/examples_FeynMP_5_1.png
[ ]: