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
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
[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
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
[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
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
[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')
[ ]: