Pyfeyn
https://pyfeyn.hepforge.org/examples
[1]:
from pyfeyn2.feynmandiagram import FeynmanDiagram, Leg, Propagator, Vertex
from pyfeyn2.render.all import AllRender
from pyfeyn2.auto.position import feynman_adjust_points
from pyfeyn2.auto.label import auto_label
from pyfeyn2.auto.bend import auto_bend
from pyfeyn2.feynmandiagram import Momentum
[2]:
v1 = Vertex().with_xy(-1, 0)
v2 = Vertex().with_xy(1, 0)
v3 = Vertex().with_xy(2, 1)
v4 = Vertex().with_xy(2, -1)
fd = FeynmanDiagram().add(
v1, v2, v3, v4,
Propagator().connect(v1, v2).with_type("boson").with_label("$\\gamma/Z$"),
Propagator(pdgid=1).connect(v2, v3),
Propagator(pdgid=-1).connect(v2,v4),
Propagator(name="g").connect(v3,v4).with_style("bend-direction : left"),
Leg(pdgid=11).with_target(v1).with_xy(-3, 2).with_incoming().with_style("momentum-arrow : true; momentum-arrow-flip : true").with_momentum(Momentum(name="$\\vec p$")),
Leg(pdgid=-11).with_target(v1).with_xy(-3, -2).with_incoming(),
Leg(pdgid=1).with_target(v3).with_xy(3, 2).with_outgoing(),
Leg(pdgid=-1).with_target(v4).with_xy(3, -2).with_outgoing(),
)
auto_label(fd.propagators + fd.legs)
ar = AllRender(fd)
ar.render()
pyx:
pyx failed:
Traceback (most recent call last):
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py", line 86, in render
render(fd).render(dirpath + "/" + name + ".pdf", **dynarg)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/pyx/pyxrender.py", line 43, in render
nl = NamedLine[l.type](Point(l.x, l.y), Point(tar.x, tar.y))
KeyError: 'anti fermion'
feynmp:
feynmp failed:
Traceback (most recent call last):
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py", line 86, in render
render(fd).render(dirpath + "/" + name + ".pdf", **dynarg)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/feynmp.py", line 139, in __init__
self.set_feynman_diagram(fd)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/feynmp.py", line 143, in set_feynman_diagram
self.set_src_diag(NoEscape(feynman_to_feynmp(fd)))
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/feynmp.py", line 91, in feynman_to_feynmp
tttype = type_map[l.type]
KeyError: 'anti fermion'
tikz:
![../../_images/gallery_pyfeyn_pyfeyn_2_1.png](../../_images/gallery_pyfeyn_pyfeyn_2_1.png)
dot:
dot failed:
Traceback (most recent call last):
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py", line 86, in render
render(fd).render(dirpath + "/" + name + ".pdf", **dynarg)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/dot.py", line 72, in __init__
self.set_feynman_diagram(fd)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/dot.py", line 76, in set_feynman_diagram
self.src_dot = feynman_to_dot(
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/interface/dot.py", line 27, in feynman_to_dot
thestyle = styler(p)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/dot.py", line 33, in stylize_connect
style = 'style="{}",texmode="raw"'.format(map_feyn_to_tikz[c.type])
KeyError: 'anti fermion'
feynman:
feynman failed:
Traceback (most recent call last):
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py", line 86, in render
render(fd).render(dirpath + "/" + name + ".pdf", **dynarg)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/mpl/feynmanrender.py", line 75, in render
byid[v.id] = diagram.vertex(
File "/home/apn/.cache/pypoetry/virtualenvs/pyfeyn2-CEvJ4jFG-py3.9/lib/python3.9/site-packages/feynman/diagrams/diagrams.py", line 73, in vertex
v = Vertex(xy, **kwargs)
File "/home/apn/.cache/pypoetry/virtualenvs/pyfeyn2-CEvJ4jFG-py3.9/lib/python3.9/site-packages/feynman/core/vertex.py", line 64, in __init__
cxy = (np.complex(*xy) + np.complex(*dxy) + np.complex(dx, dy)
File "/home/apn/.cache/pypoetry/virtualenvs/pyfeyn2-CEvJ4jFG-py3.9/lib/python3.9/site-packages/numpy/__init__.py", line 284, in __getattr__
raise AttributeError("module {!r} has no attribute "
AttributeError: module 'numpy' has no attribute 'complex'
mpl:
mpl failed:
Traceback (most recent call last):
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py", line 86, in render
render(fd).render(dirpath + "/" + name + ".pdf", **dynarg)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/mpl/mpl.py", line 138, in render
namedlines[p.type](idtopos[p.source], idtopos[p.target])
KeyError: 'anti fermion'
ascii:
ascii failed:
Traceback (most recent call last):
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py", line 86, in render
render(fd).render(dirpath + "/" + name + ".pdf", **dynarg)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/asciipdf.py", line 25, in render
ASCIIRender.render(self, file, show, resolution, width, height)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/ascii.py", line 150, in render
self.namedlines[p.type]().draw(pane, src, tar, **fmt)
KeyError: 'anti fermion'
unicode:
unicode failed:
Traceback (most recent call last):
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py", line 86, in render
render(fd).render(dirpath + "/" + name + ".pdf", **dynarg)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/unicodepdf.py", line 64, in render
UnicodeRender.render(self, file, show, resolution, width, height)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/ascii.py", line 150, in render
self.namedlines[p.type]().draw(pane, src, tar, **fmt)
KeyError: 'anti fermion'
![../../_images/gallery_pyfeyn_pyfeyn_2_3.png](../../_images/gallery_pyfeyn_pyfeyn_2_3.png)
[3]:
v1 = Vertex(x=-2,y=0)
v2 = Vertex(x= 2,y=0)
l1 = Leg(x=-4,y=0,pdgid=25)
l2 = Leg(x= 4,y=0,pdgid=25)
fd = FeynmanDiagram().add(
v1, v2,
Propagator(pdgid=6).connect(v1, v2),
Propagator(pdgid=-6).connect(v1, v2),
l1.with_target(v1).with_incoming(),
l2.with_target(v2).with_outgoing(),
)
auto_label(fd.propagators + fd.legs)
auto_bend(fd)
ar = AllRender(fd)
ar.render()
pyx:
pyx failed:
Traceback (most recent call last):
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py", line 86, in render
render(fd).render(dirpath + "/" + name + ".pdf", **dynarg)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/pyx/pyxrender.py", line 53, in render
nl = NamedLine[p.type](Point(src.x, src.y), Point(tar.x, tar.y))
KeyError: 'anti fermion'
feynmp:
feynmp failed:
Traceback (most recent call last):
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py", line 86, in render
render(fd).render(dirpath + "/" + name + ".pdf", **dynarg)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/feynmp.py", line 139, in __init__
self.set_feynman_diagram(fd)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/feynmp.py", line 143, in set_feynman_diagram
self.set_src_diag(NoEscape(feynman_to_feynmp(fd)))
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/feynmp.py", line 104, in feynman_to_feynmp
tttype = type_map[p.type]
KeyError: 'anti fermion'
tikz:
![../../_images/gallery_pyfeyn_pyfeyn_3_1.png](../../_images/gallery_pyfeyn_pyfeyn_3_1.png)
dot:
dot failed:
Traceback (most recent call last):
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py", line 86, in render
render(fd).render(dirpath + "/" + name + ".pdf", **dynarg)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/dot.py", line 72, in __init__
self.set_feynman_diagram(fd)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/dot.py", line 76, in set_feynman_diagram
self.src_dot = feynman_to_dot(
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/interface/dot.py", line 27, in feynman_to_dot
thestyle = styler(p)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/dot.py", line 33, in stylize_connect
style = 'style="{}",texmode="raw"'.format(map_feyn_to_tikz[c.type])
KeyError: 'anti fermion'
feynman:
feynman failed:
Traceback (most recent call last):
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py", line 86, in render
render(fd).render(dirpath + "/" + name + ".pdf", **dynarg)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/mpl/feynmanrender.py", line 68, in render
scaley = 1.0 / (maxy - miny) * buffer
ZeroDivisionError: float division by zero
mpl:
mpl failed:
Traceback (most recent call last):
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py", line 86, in render
render(fd).render(dirpath + "/" + name + ".pdf", **dynarg)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/mpl/mpl.py", line 138, in render
namedlines[p.type](idtopos[p.source], idtopos[p.target])
KeyError: 'anti fermion'
ascii:
ascii failed:
Traceback (most recent call last):
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py", line 86, in render
render(fd).render(dirpath + "/" + name + ".pdf", **dynarg)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/asciipdf.py", line 25, in render
ASCIIRender.render(self, file, show, resolution, width, height)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/ascii.py", line 150, in render
self.namedlines[p.type]().draw(pane, src, tar, **fmt)
KeyError: 'anti fermion'
unicode:
unicode failed:
Traceback (most recent call last):
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py", line 86, in render
render(fd).render(dirpath + "/" + name + ".pdf", **dynarg)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/unicodepdf.py", line 64, in render
UnicodeRender.render(self, file, show, resolution, width, height)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/ascii.py", line 150, in render
self.namedlines[p.type]().draw(pane, src, tar, **fmt)
KeyError: 'anti fermion'
![../../_images/gallery_pyfeyn_pyfeyn_3_3.png](../../_images/gallery_pyfeyn_pyfeyn_3_3.png)
[4]:
v1 = Vertex(x=-2,y=0)
v2 = Vertex(x= 2,y=0)
l1 = Leg(x=-4,y=0,pdgid=25)
l2 = Leg(x= 4,y=0,pdgid=25)
fd = FeynmanDiagram().add(
v1, v2,
Propagator(pdgid=6).connect(v1, v2),
Propagator(pdgid=-6).connect(v1, v2),
#l1.with_target(v1).with_incoming(),
#l2.with_target(v2).with_outgoing(),
)
auto_label(fd.propagators + fd.legs)
auto_bend(fd)
ar = AllRender(fd)
ar.render()
pyx:
pyx failed:
Traceback (most recent call last):
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py", line 86, in render
render(fd).render(dirpath + "/" + name + ".pdf", **dynarg)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/pyx/pyxrender.py", line 53, in render
nl = NamedLine[p.type](Point(src.x, src.y), Point(tar.x, tar.y))
KeyError: 'anti fermion'
feynmp:
feynmp failed:
Traceback (most recent call last):
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py", line 86, in render
render(fd).render(dirpath + "/" + name + ".pdf", **dynarg)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/feynmp.py", line 139, in __init__
self.set_feynman_diagram(fd)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/feynmp.py", line 143, in set_feynman_diagram
self.set_src_diag(NoEscape(feynman_to_feynmp(fd)))
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/feynmp.py", line 104, in feynman_to_feynmp
tttype = type_map[p.type]
KeyError: 'anti fermion'
tikz:
![../../_images/gallery_pyfeyn_pyfeyn_4_1.png](../../_images/gallery_pyfeyn_pyfeyn_4_1.png)
dot:
dot failed:
Traceback (most recent call last):
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py", line 86, in render
render(fd).render(dirpath + "/" + name + ".pdf", **dynarg)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/dot.py", line 72, in __init__
self.set_feynman_diagram(fd)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/dot.py", line 76, in set_feynman_diagram
self.src_dot = feynman_to_dot(
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/interface/dot.py", line 27, in feynman_to_dot
thestyle = styler(p)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/latex/dot.py", line 33, in stylize_connect
style = 'style="{}",texmode="raw"'.format(map_feyn_to_tikz[c.type])
KeyError: 'anti fermion'
feynman:
feynman failed:
Traceback (most recent call last):
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py", line 86, in render
render(fd).render(dirpath + "/" + name + ".pdf", **dynarg)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/mpl/feynmanrender.py", line 68, in render
scaley = 1.0 / (maxy - miny) * buffer
ZeroDivisionError: float division by zero
mpl:
mpl failed:
Traceback (most recent call last):
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py", line 86, in render
render(fd).render(dirpath + "/" + name + ".pdf", **dynarg)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/mpl/mpl.py", line 138, in render
namedlines[p.type](idtopos[p.source], idtopos[p.target])
KeyError: 'anti fermion'
ascii:
ascii failed:
Traceback (most recent call last):
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py", line 86, in render
render(fd).render(dirpath + "/" + name + ".pdf", **dynarg)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/asciipdf.py", line 25, in render
ASCIIRender.render(self, file, show, resolution, width, height)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/ascii.py", line 150, in render
self.namedlines[p.type]().draw(pane, src, tar, **fmt)
KeyError: 'anti fermion'
unicode:
unicode failed:
Traceback (most recent call last):
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/all.py", line 86, in render
render(fd).render(dirpath + "/" + name + ".pdf", **dynarg)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/unicodepdf.py", line 64, in render
UnicodeRender.render(self, file, show, resolution, width, height)
File "/home/apn/data/de.neuwirthinformatik.Alexander/Development/git/pyfeyn2/pyfeyn2/render/text/ascii.py", line 150, in render
self.namedlines[p.type]().draw(pane, src, tar, **fmt)
KeyError: 'anti fermion'
![../../_images/gallery_pyfeyn_pyfeyn_4_3.png](../../_images/gallery_pyfeyn_pyfeyn_4_3.png)
[5]:
[5]:
'<?xml version="1.0" encoding="UTF-8"?>\n<diagram id="FeynmanDiagram31" default_style="true" style="">\n <propagator id="Propagator32" pdgid="6" type="fermion" style="bend-direction: right" label="$t$">\n <name>t</name>\n <source>Vertex27</source>\n <target>Vertex28</target>\n </propagator>\n <propagator id="Propagator33" pdgid="-6" type="anti fermion" style="bend-direction: left" label="$\\overline{t}$">\n <name>t~</name>\n <source>Vertex27</source>\n <target>Vertex28</target>\n </propagator>\n <vertex id="Vertex27" style="" x="-2" y="0"/>\n <vertex id="Vertex28" style="" x="2" y="0"/>\n</diagram>\n'
[9]:
[9]:
cssutils.css.CSSStyleDeclaration(cssText='ok: true; kek: true; kek: true')
[ ]: