Beispiel #1
0
v11 = D.vertex(xy=[0.05, 0.06])
v12 = D.vertex(v11.xy, dx=l)
G = D.line(v11, v12, **G_style)
G.text("$G$", **text_prop)

# Symbol
D.text(v12.x + txt_l, v12.y, "=")

# First term
v21 = D.vertex(v12.xy, dx=2*txt_l)
v22 = D.vertex(v21.xy, dx=l)
G0 = D.line(v21, v22, **G0_style)
G0.text("$G_0$", **text_prop)

# Symbol
D.text(v22.x + txt_l, v22.y, "+")

# Second term
v31 = D.vertex(v22.xy, dx=2*txt_l)
v32 = D.vertex(v31.xy, dx=l)
v33 = D.vertex(v32.xy, dx=op_l)
v34 = D.vertex(v33.xy, dx=l)
D.line(v31, v32, **G0_style)
D.line(v33, v34, **G_style)
O = D.operator([v32,v33])
O.text("$\Sigma$")

# Plot and show
D.plot()
plt.show()
Beispiel #2
0
linlen = 0.3
txtpad = 0.2
tail_marker = 'o'

W_style = dict(style='double wiggly', nwiggles=2)
v_style = dict(style='simple wiggly', nwiggles=2)
G_style = dict(style='double', arrow=True, arrow_param={'width': 0.05})

D = Diagram(ax)

# Left hand size
xy = [0.4, y0]
v11 = D.vertex(xy, dy=side / 2)
v12 = D.vertex(xy, dy=-side / 2)
v13 = D.vertex(xy, dx=gammalen)
gamma0 = D.operator([v11, v12, v13])
gamma0.text("$\Gamma$")

# Symbol
D.text(v13.x + txtpad, y0, "=")

# Create a three-vertex dot.
chunkdist = .03
chunklen = .03
chunkstyle = dict(arrow=False, linewidth=6.)
v20 = D.vertex([v13.x + 2 * txtpad, y0])
v210 = D.vertex(v20.xy, angle=0., radius=chunkdist, marker='')
v220 = D.vertex(v20.xy, angle=1. / 3, radius=chunkdist, marker='')
v230 = D.vertex(v20.xy, angle=2. / 3, radius=chunkdist, marker='')
v21 = D.vertex(v20.xy, angle=0., radius=chunkdist + chunklen, marker='')
v22 = D.vertex(v20.xy, angle=1. / 3, radius=chunkdist + chunklen, marker='')
Beispiel #3
0
linlen = 0.8
tail_marker = 'o'
Gamma_width = .3

W_style = dict(style='double wiggly', nwiggles=4)
G_style = dict(style='double elliptic',
               ellipse_excentricity=-1.2,
               ellipse_spread=.3,
               arrow=True,
               arrow_param={'width': 0.05})

D = Diagram(ax)

xy = [0.2, y0]
v01 = D.verticle(xy)
v02 = D.verticle(v01.xy, dx=opwidth)
P = D.operator([v01, v02], c=1.3)
P.text("$P$")

D.text(.70, y0, "=", fontsize=30)

xy[0] = 0.9
v21 = D.verticle(xy)
v22 = D.verticle(xy, dx=linlen)

l21 = D.line(v22, v21, **G_style)
l21 = D.line(v21, v22, **G_style)

D.plot()
fig.savefig('pdf/gw-P.pdf')
Beispiel #4
0
opwidth = 0.3
linlen = 0.8
tail_marker = 'o'
Gamma_width = .3

W_style = dict(style='double wiggly', nwiggles=4)
G_style = dict(style='double elliptic',
                ellipse_excentricity=-1.2, ellipse_spread=.3,
                arrow=True, arrow_param={'width':0.05})

D = Diagram(ax)

xy = [0.2, y0]
v01 = D.verticle(xy)
v02 = D.verticle(v01.xy, dx=opwidth)
P = D.operator([v01,v02], c=1.3)
P.text("$P$")

D.text(.70, y0, "=", fontsize=30)

xy[0] = 0.9
v21 = D.verticle(xy)
v22 = D.verticle(xy, dx=linlen)

l21 = D.line(v22, v21, **G_style)
l21 = D.line(v21, v22, **G_style)

D.plot()
fig.savefig('pdf/gw-P.pdf')

Beispiel #5
0
DW_style = dict(style='circular loopy',
                circle_radius=.7,
                xamp=.10,
                yamp=.15,
                nloops=18)
G_style = dict(style='simple',
               arrow=True,
               arrow_param={
                   'width': 0.15,
                   'length': .3
               })

# Item 1
v11 = D.vertex([D.x0, D.y0])
v12 = D.vertex(v11.xy, dx=opwidth)
Sigma = D.operator([v11, v12])
Sigma.text("$\Sigma^{ep}$")

# Symbol
D.text(v12.x + txtpad, D.y0, "=")

# Item 3
v21 = D.vertex([v12.x + 2 * txtpad, D.y0 - 0.3])
v22 = D.vertex(v21.xy, dx=linlen)
G = D.line(v21, v22, **G_style)
Ph = D.line(v21, v22, **Ph_style)

# Symbol
D.text(v22.x + txtpad, D.y0, "+")

# Item 3
Beispiel #6
0
opwidth = 0.3
linlen = 0.8

W_style = dict(style='double wiggly elliptic', nwiggles=5)
G_style = dict(style='double', arrow=True, arrow_param={'width':0.05})

D = Diagram(ax)

xy = [0.2, y0]
v01 = D.verticle(xy)

xy[0] += opwidth
v02 = D.verticle(xy)

Sigma = D.operator([v01,v02])
Sigma.text("$\Sigma$")

D.text(.70, y0, "=", fontsize=30)

xy[1] = y0 - 0.07

xy[0] = 0.9
v21 = D.verticle(xy)

xy[0] += linlen
v22 = D.verticle(xy)

l21 = D.line(v21, v22, **G_style)
l22 = D.line(v21, v22, **W_style)
Beispiel #7
0
tail_marker = 'o'

W_style = dict(style = 'double wiggly', nwiggles=2)
v_style = dict(style = 'simple wiggly', nwiggles=2)
G_style = dict(style = 'double',  arrow=True, arrow_param={'width':0.05})

D = Diagram(ax)

arrow_param = dict(width=0.05)

xy = [0.2, y0]

v01 = D.verticle(xy, dy= side/2)
v02 = D.verticle(xy, dy=-side/2)
v03 = D.verticle(xy, dx=gammalen)
gamma0 = D.operator([v01,v02,v03])
gamma0.text("$\Gamma$")

D.text(.75, y0, "=", fontsize=30)

v30 = D.verticle([1.05, y0])


n1 = np.array([-np.sqrt(3)/6, .5])
n2 = np.array([-np.sqrt(3)/6,-.5])
n3 = np.array([ np.sqrt(3)/3, .0])

chunkdist = .05
v310 = D.verticle(v30.xy, dxy=n1*chunkdist, marker='')
v320 = D.verticle(v30.xy, dxy=n2*chunkdist, marker='')
v330 = D.verticle(v30.xy, dxy=n3*chunkdist, marker='')
Beispiel #8
0
tail_marker = 'o'

W_style = dict(style='double wiggly', nwiggles=2)
v_style = dict(style='simple wiggly', nwiggles=2)
G_style = dict(style='double', arrow=True, arrow_param={'width': 0.05})

D = Diagram(ax)

arrow_param = dict(width=0.05)

xy = [0.2, y0]

v01 = D.verticle(xy, dy=side / 2)
v02 = D.verticle(xy, dy=-side / 2)
v03 = D.verticle(xy, dx=gammalen)
gamma0 = D.operator([v01, v02, v03])
gamma0.text("$\Gamma$")

D.text(.75, y0, "=", fontsize=30)

v30 = D.verticle([1.05, y0])

n1 = np.array([-np.sqrt(3) / 6, .5])
n2 = np.array([-np.sqrt(3) / 6, -.5])
n3 = np.array([np.sqrt(3) / 3, .0])

chunkdist = .05
v310 = D.verticle(v30.xy, dxy=n1 * chunkdist, marker='')
v320 = D.verticle(v30.xy, dxy=n2 * chunkdist, marker='')
v330 = D.verticle(v30.xy, dxy=n3 * chunkdist, marker='')
Beispiel #9
0
opwidth = 0.3
linlen = 0.8
tail_marker = 'o'
Gamma_width = .3

W_style = dict(style='double elliptic wiggly', nwiggles=4)
G_style = dict(style='double', arrow=True, arrow_param={'width':0.05})

D = Diagram(ax)

xy = [0.2, y0]
v01 = D.verticle(xy)
xy[0] += opwidth
v02 = D.verticle(xy)
Sigma = D.operator([v01,v02])
Sigma.text("$\Sigma$")

D.text(.70, y0, "=", fontsize=30)

xy[1] = y0 - 0.1

xy[0] = 0.9
v21 = D.verticle(xy)

xy[0] += linlen - Gamma_width / 2
v22 = D.verticle(xy)

xy[0] += Gamma_width
v24 = D.verticle(xy)
Beispiel #10
0
G.text("$G$", **text_prop)

x = x0 + .55
D.text(x, y0, "=", fontsize=30)

x = x0 + .7
v21 = D.verticle(xy=(x,y0))
v22 = D.verticle(v21.xy, dx=l)
G0 = D.line(v21, v22, **G0_style)
G0.text("$G_0$", **text_prop)

x = x0 + 1.25
D.text(x, y0, "+", fontsize=30)

x = x0 + 1.4
v11 = D.verticle(xy=(x,y0))
v12 = D.verticle(xy=(x+l,y0))
v13 = D.verticle(xy=(x+l+.2,y0))
v14 = D.verticle(xy=(x+l+.2+l,y0))


D.line(v11, v12, **G0_style)
D.line(v13, v14, **G_style)
O = D.operator([v12,v13])
O.text("$\Sigma$")

D.plot()

fig.savefig('pdf/hedin-dyson.pdf')

Beispiel #11
0
text_prop = dict(y=0.05, fontsize=20)
G.text("$G$", **text_prop)

x = x0 + .55
D.text(x, y0, "=", fontsize=30)

x = x0 + .7
v21 = D.verticle(xy=(x, y0))
v22 = D.verticle(v21.xy, dx=l)
G0 = D.line(v21, v22, **G0_style)
G0.text("$G_0$", **text_prop)

x = x0 + 1.25
D.text(x, y0, "+", fontsize=30)

x = x0 + 1.4
v11 = D.verticle(xy=(x, y0))
v12 = D.verticle(xy=(x + l, y0))
v13 = D.verticle(xy=(x + l + .2, y0))
v14 = D.verticle(xy=(x + l + .2 + l, y0))

D.line(v11, v12, **G0_style)
D.line(v13, v14, **G_style)
O = D.operator([v12, v13])
O.text("$\Sigma$")

D.plot()

fig.savefig('pdf/hedin-dyson.pdf')
Beispiel #12
0
# First diagram
D1 = Diagram(ax)

xy = [0.2, y0]
v01 = D1.verticle(xy)

xy[0] += linlen
v02 = D1.verticle(v01.xy, dx=linlen)

W = D1.line(v01, v02, **W_style)

text_prop = dict(y=0.06, fontsize=22)

W.text("$W$", **text_prop)

D1.text(.75, y0, "=", fontsize=30)

xy = [0.9, y0]
v11 = D1.verticle(xy)
v13 = D1.verticle(v11.xy, dx=opwidth)
v14 = D1.verticle(v13.xy, dx=linlen)

O = D1.operator([v11,v13], c=1.1)
O.text("${\\varepsilon^{-1}}$", x=.0, y=.01, fontsize=35)
D1.line(v13, v14, **v_style)

D1.plot()

fig.savefig('pdf/gw-W.pdf')

Beispiel #13
0
fig = plt.figure(figsize=(8,2))
ax = fig.add_axes([0,0,1,1], frameon=False)

# It is best to keep the xlim/ylim ratio the same as the figure aspect ratio.
ax.set_xlim(0, 1)
ax.set_ylim(0, 0.25)

y0 = sum(ax.get_ylim()) / 2

# Initialize diagram with the ax
D = Diagram(ax)

# Polarizability operator
v11 = D.vertex([0.1, y0])
v12 = D.vertex(v11.xy, dx=0.15)
P = D.operator([v11, v12], c=1.3)  # c is the excentricity of the patch
P.text("$P$")

# Symbols
D.text(.35, y0, "=", fontsize=30)

# Propagator lines
G_style = dict(style='double elliptic',
               ellipse_excentricity=-1.2, ellipse_spread=.3,
               arrow=True, arrow_param={'width':0.03})

v21 = D.vertex([0.45, y0])
v22 = D.vertex(v21.xy, dx=0.4)

G1 = D.line(v22, v21, **G_style)
G2 = D.line(v21, v22, **G_style)
Beispiel #14
0
import matplotlib.pyplot as plt
from feynman import Diagram

fig = plt.figure(figsize=(8,2))
ax = fig.add_axes([0,0,1,1], frameon=False)

ax.set_xlim(0, 1)
ax.set_ylim(0,.25)

# Sigma operator
D = Diagram(ax)

v11 = D.vertex([.1, .08])
v12 = D.vertex(v11.xy, dx=.15)

Sigma = D.operator([v11, v12])
Sigma.text("$\Sigma$")

# Symbols
D.text(v12.x+.1, v12.y, "=")

# GW convolution
v21 = D.vertex(v12.xy, dxy=[0.2, -0.04])
v22 = D.vertex(v21.xy, dx=0.4)

l21 = D.line(v21, v22, style='double', arrow=True)

# Specifying the number of wiggles and the amplitude of the wiggles
l22 = D.line(v21, v22, style='double wiggly elliptic', nwiggles=5.5, amplitude=0.015)

# 't' is the coordinate along the line (from 0 to 1)
Beispiel #15
0
linlen = 0.4
opwidth = 0.3
obj_spacing = .23
tail_marker = 'o'

W_style = dict(style='double wiggly', nwiggles=2)
v_style = dict(style='simple wiggly', nwiggles=2)
G_style = dict(style='double', arrow=True, arrow_param={'width': 0.05})

D = Diagram(ax)

xy = [0.2, y0]

v01 = D.verticle(xy)
v02 = D.verticle(v01.xy, dx=opwidth)
epsilon = D.operator([v01, v02], c=1.1)
epsilon.text("$\\varepsilon$", fontsize=50)

D.text(v02.xy[0] + obj_spacing, y0, "=", fontsize=30)

v30 = D.verticle(v02.xy, dx=2 * obj_spacing)

n1 = np.array([-1., 0.])
n2 = np.array([1., 0.])

chunkdist = .03
v310 = D.verticle(v30.xy, dxy=n1 * chunkdist, marker='')
v320 = D.verticle(v30.xy, dxy=n2 * chunkdist, marker='')

chunklen = .025
v31 = D.verticle(v310.xy, dxy=n1 * chunklen, marker='')
Beispiel #16
0
linlen = 0.3
txtpad = 0.2
tail_marker = 'o'

W_style = dict(style = 'double wiggly', nwiggles=2)
v_style = dict(style = 'simple wiggly', nwiggles=2)
G_style = dict(style = 'double',  arrow=True, arrow_param={'width':0.05})

D = Diagram(ax)

# Left hand size
xy = [0.4, y0]
v11 = D.vertex(xy, dy= side/2)
v12 = D.vertex(xy, dy=-side/2)
v13 = D.vertex(xy, dx=gammalen)
gamma0 = D.operator([v11,v12,v13])
gamma0.text("$\Gamma$")

# Symbol
D.text(v13.x + txtpad, y0, "=")

# Create a three-vertex dot.
chunkdist = .03
chunklen = .03
chunkstyle=dict(arrow=False, linewidth=6.)
v20 = D.vertex([v13.x + 2 * txtpad, y0])
v210 = D.vertex(v20.xy, angle=0.,   radius=chunkdist, marker='')
v220 = D.vertex(v20.xy, angle=1./3, radius=chunkdist, marker='')
v230 = D.vertex(v20.xy, angle=2./3, radius=chunkdist, marker='')
v21  = D.vertex(v20.xy, angle=0.,   radius=chunkdist+chunklen, marker='')
v22  = D.vertex(v20.xy, angle=1./3, radius=chunkdist+chunklen, marker='')
Beispiel #17
0
linlen = 0.4
opwidth = 0.3
obj_spacing = .23
tail_marker = 'o'

W_style = dict(style='double wiggly', nwiggles=2)
v_style = dict(style='simple wiggly', nwiggles=2)
G_style = dict(style='double',  arrow=True, arrow_param={'width':0.05})

D = Diagram(ax)

xy = [0.2, y0]

v01 = D.verticle(xy)
v02 = D.verticle(v01.xy, dx=opwidth)
epsilon = D.operator([v01,v02], c=1.1)
epsilon.text("$\\varepsilon$", fontsize=50)

D.text(v02.xy[0]+obj_spacing, y0, "=", fontsize=30)

v30 = D.verticle(v02.xy, dx=2*obj_spacing)

n1 = np.array([-1.,0.])
n2 = np.array([ 1.,0.])

chunkdist = .03
v310 = D.verticle(v30.xy, dxy=n1*chunkdist, marker='')
v320 = D.verticle(v30.xy, dxy=n2*chunkdist, marker='')

chunklen = .025
v31 = D.verticle(v310.xy, dxy=n1*chunklen, marker='')
Beispiel #18
0
W = D.line(v01, v02, **W_style)

text_prop = dict(y=0.06, fontsize=22)

W.text("$W$", **text_prop)

D.text(0.75, y0, "=", fontsize=30)

xy = [0.9, y0]
v21 = D.verticle(xy, marker=tail_marker)
v22 = D.verticle(v21.xy, dx=linlen, marker=tail_marker)
v = D.line(v21, v22, **v_style)
v.text("$v$", **text_prop)

D.text(1.45, y0, "+", fontsize=30)

xy = [1.6, y0]
v11 = D.verticle(xy, marker=tail_marker)
v12 = D.verticle(v11.xy, dx=linlen)
v13 = D.verticle(v12.xy, dx=opwidth)
v14 = D.verticle(v13.xy, dx=linlen, marker=tail_marker)

D.line(v11, v12, **v_style)
D.line(v13, v14, **W_style)
O = D.operator([v12, v13], c=1.3)
O.text("$P$")

D.plot()

fig.savefig("pdf/hedin-W.pdf")
Beispiel #19
0
# First diagram
D1 = Diagram(ax)

xy = [0.2, y0]
v01 = D1.verticle(xy)

xy[0] += linlen
v02 = D1.verticle(v01.xy, dx=linlen)

W = D1.line(v01, v02, **W_style)

text_prop = dict(y=0.06, fontsize=22)

W.text("$W$", **text_prop)

D1.text(.75, y0, "=", fontsize=30)

xy = [0.9, y0]
v11 = D1.verticle(xy)
v13 = D1.verticle(v11.xy, dx=opwidth)
v14 = D1.verticle(v13.xy, dx=linlen)

O = D1.operator([v11, v13], c=1.1)
O.text("${\\varepsilon^{-1}}$", x=.0, y=.01, fontsize=35)
D1.line(v13, v14, **v_style)

D1.plot()

fig.savefig('pdf/gw-W.pdf')
Beispiel #20
0
# Positon of the first vertex
x0 = 0.2
y0 = sum(d.ax.get_ylim()) / 2

# Define line styles
G_style = dict(
    style='double elliptic',
    ellipse_excentricity=-1.2, ellipse_spread=.3,
    arrow=True, arrow_param={'width':0.05},
    )

# Draw the diagram
v01 = d.vertex([x0, y0])
v02 = d.vertex(v01.xy, dx=opwidth)
P = d.operator([v01,v02], c=1.3)
P.text("$P$")

d.text(v02.x+textpad, y0, "=", fontsize=30)

v21 = d.vertex(v02.xy, dx=.4)
v22 = d.vertex(v21.xy, dx=linlen, dy=Gamma_side/2)
v23 = d.vertex(v21.xy, dx=linlen, dy=-Gamma_side/2)
v24 = d.vertex(v21.xy, dx=linlen+Gamma_height)

l21 = d.line(v22, v21, **G_style)
l21 = d.line(v21, v23, **G_style)

Gamma = d.operator([v22,v23, v24])
Gamma.text("$\Gamma$")
Beispiel #21
0
fig = plt.figure(figsize=(8, 2))
ax = fig.add_axes([0, 0, 1, 1], frameon=False)

# It is best to keep the xlim/ylim ratio the same as the figure aspect ratio.
ax.set_xlim(0, 1)
ax.set_ylim(0, 0.25)

y0 = sum(ax.get_ylim()) / 2

# Initialize diagram with the ax
D = Diagram(ax)

# Polarizability operator
v11 = D.vertex([0.1, y0])
v12 = D.vertex(v11.xy, dx=0.15)
P = D.operator([v11, v12], c=1.3)  # c is the excentricity of the patch
P.text("$P$")

# Symbols
D.text(.35, y0, "=", fontsize=30)

# Propagator lines
G_style = dict(style='double elliptic',
               ellipse_excentricity=-1.2,
               ellipse_spread=.3,
               arrow=True,
               arrow_param={'width': 0.03})

v21 = D.vertex([0.45, y0])
v22 = D.vertex(v21.xy, dx=0.4)
Beispiel #22
0
gammalen = side * np.sqrt(3) / 2
linlen = 0.4
tail_marker = 'o'

W_style = dict(style = 'double wiggly', nwiggles=2)
v_style = dict(style = 'simple wiggly', nwiggles=2)
G_style = dict(style = 'double',  arrow=True, arrow_param={'width':0.05})

D = Diagram(ax)

xy = [0.2, y0]

v01 = D.verticle(xy, dy= side/2)
v02 = D.verticle(xy, dy=-side/2)
v03 = D.verticle(xy, dx=gammalen)
gamma0 = D.operator([v01,v02,v03])
gamma0.text("$\Gamma$")

D.text(.75, y0, "=", fontsize=30)

v30 = D.verticle([1.05, y0])

# Create a three-verticle dot.
n1 = np.array([-np.sqrt(3)/6, .5])
n2 = np.array([-np.sqrt(3)/6,-.5])
n3 = np.array([ np.sqrt(3)/3, .0])

chunkdist = .05
v310 = D.verticle(v30.xy, dxy=n1*chunkdist, marker='')
v320 = D.verticle(v30.xy, dxy=n2*chunkdist, marker='')
v330 = D.verticle(v30.xy, dxy=n3*chunkdist, marker='')
Beispiel #23
0
# Various size
opwidth = 1.
linlen = 2.
objspace = .8
wiggle_amplitude=.1

# Line styles
Ph_style = dict(style='elliptic loopy', ellipse_spread=.6, xamp=.10, yamp=-.15, nloops=15)
DW_style = dict(style='circular loopy', circle_radius=.7, xamp=.10, yamp=.15, nloops=18)
G_style = dict(style='simple', arrow=True, arrow_param={'width':0.15, 'length': .3})

# Item 1
v1 = D.verticle([D.x0, D.y0])
v2 = D.verticle(v1.xy, dx=opwidth)
Sigma = D.operator([v1,v2])
Sigma.text("$\Sigma^{ep}$")

# Item 2
D.text(v2.x + objspace, D.y0, "=", fontsize=30)

# Item 3
v1 = D.verticle([v2.x + 2 * objspace,  D.y0 - 0.3])
v2 = D.verticle(v1.xy, dx=linlen)
G = D.line(v1, v2, **G_style)
Ph = D.line(v1, v2, **Ph_style)

# Item 2
D.text(v2.x + objspace, D.y0, "+", fontsize=30)

# Item 3
"""
import matplotlib.pyplot as plt
from feynman import Diagram

fig = plt.figure(figsize=(10.,10.))
ax = fig.add_axes([0,0,1,1], frameon=False)

diagram = Diagram(ax)
in1 = diagram.vertex(xy=(.1,.6), marker='')
in2= diagram.vertex(xy=(.1,.4), marker='')
v1 = diagram.vertex(xy=(.4,.6))
v2 = diagram.vertex(xy=(.4,.4))
v3 = diagram.vertex(xy=(.6,.5))
v4 = diagram.vertex(xy=(.34,.5), marker='')
higgsout = diagram.vertex(xy=(.9,.5))
epsilon = diagram.operator([v4,v3], c=1.1)
epsilon.text("Effective \n coupling", fontsize=30)

gluon_up_style = dict(style='linear loopy', xamp=.025, yamp=.035, nloops=7)
gluon_down_style = dict(style='linear loopy', xamp=.025, yamp=-.035, nloops=7)

g1 = diagram.line(in1, v1, **gluon_up_style)
g2 = diagram.line(in2, v2, **gluon_down_style)

higgs = diagram.line(v3, higgsout, arrow=False, style='dashed')

g1.text("g",fontsize=30)
diagram.text(v4.xy[0]-.08, v4.xy[1]-.05, "g",fontsize=35)
higgs.text("H",fontsize=30)

diagram.plot()
Beispiel #25
0
x0 = 0.2
y0 = sum(d.ax.get_ylim()) / 2

# Define line styles
G_style = dict(
    style='double elliptic',
    ellipse_excentricity=-1.2,
    ellipse_spread=.3,
    arrow=True,
    arrow_param={'width': 0.05},
)

# Draw the diagram
v01 = d.vertex([x0, y0])
v02 = d.vertex(v01.xy, dx=opwidth)
P = d.operator([v01, v02], c=1.3)
P.text("$P$")

d.text(v02.x + textpad, y0, "=", fontsize=30)

v21 = d.vertex(v02.xy, dx=.4)
v22 = d.vertex(v21.xy, dx=linlen, dy=Gamma_side / 2)
v23 = d.vertex(v21.xy, dx=linlen, dy=-Gamma_side / 2)
v24 = d.vertex(v21.xy, dx=linlen + Gamma_height)

l21 = d.line(v22, v21, **G_style)
l21 = d.line(v21, v23, **G_style)

Gamma = d.operator([v22, v23, v24])
Gamma.text("$\Gamma$")
Beispiel #26
0
opwidth = 0.3
linlen = 0.8

W_style = dict(style='double wiggly elliptic', nwiggles=5)
G_style = dict(style='double', arrow=True, arrow_param={'width': 0.05})

D = Diagram(ax)

xy = [0.2, y0]
v01 = D.verticle(xy)

xy[0] += opwidth
v02 = D.verticle(xy)

Sigma = D.operator([v01, v02])
Sigma.text("$\Sigma$")

D.text(.70, y0, "=", fontsize=30)

xy[1] = y0 - 0.07

xy[0] = 0.9
v21 = D.verticle(xy)

xy[0] += linlen
v22 = D.verticle(xy)

l21 = D.line(v21, v22, **G_style)
l22 = D.line(v21, v22, **W_style)
Beispiel #27
0
W = D.line(v01, v02, **W_style)

text_prop = dict(y=0.06, fontsize=22)

W.text("$W$", **text_prop)

D.text(.75, y0, "=", fontsize=30)

xy = [0.9, y0]
v21 = D.verticle(xy, marker=tail_marker)
v22 = D.verticle(v21.xy, dx=linlen, marker=tail_marker)
v = D.line(v21, v22, **v_style)
v.text("$v$", **text_prop)

D.text(1.45, y0, "+", fontsize=30)

xy = [1.6, y0]
v11 = D.verticle(xy, marker=tail_marker)
v12 = D.verticle(v11.xy, dx=linlen)
v13 = D.verticle(v12.xy, dx=opwidth)
v14 = D.verticle(v13.xy, dx=linlen, marker=tail_marker)

D.line(v11, v12, **v_style)
D.line(v13, v14, **W_style)
O = D.operator([v12, v13], c=1.3)
O.text("$P$")

D.plot()

fig.savefig('pdf/hedin-W.pdf')