# Threshold
ax1.axhline(0.0, color="k", ls="-", alpha=0.5)

# U(r)
ax1.plot(r, U, "--k", alpha=0.5, label="Unperturbed ion")

# Laser
ax1.plot(r, laser, "-r", label="Laser")

# U(r) + laser
ax1.plot(r, Ubent, "-k", label="Effective")

# Electron
ax1.plot([0.0], [-Xe_Z0_Ip], "ob", ms=14)
ar1 = fleches.arrow("Tunnel", [0.0, -Xe_Z0_Ip], [0.9 * r[-1], -Xe_Z0_Ip])
ar1.Plot(ax1, color="g")

ax1.set_xlim((r[0], r[-1]))
ax1.set_ylim((0.95 * Umin, Umax))

ax1.set_xlabel("r [bohr]")
ax1.set_ylabel("Energy [Hartree]")

leg = ax1.legend(loc="best")
leg.get_frame().set_alpha(0.75)

for ext in ["pdf", "svg"]:
    plot.savefig("ionization_tunnel." + ext)
plot.show()
Beispiel #2
0
ax4.get_yaxis().set_visible(False)
for ax in [ax1, ax1b, ax2, ax2b]:
    ax.get_xaxis().set_visible(False)

# ********************** Before ************************
ax1.plot(r, U)
ax1.plot([-r0, r0], [-Xe_Z0_Ip, -Xe_Z0_Ip], '-m', label = '5p')
for ei in xrange(len(Xe_Z0_es_E)):
    r0e = min(abs(cs/Xe_Z0_es_E[ei]), r[-1])
    ax1.plot([-r0e, r0e], [Xe_Z0_es_E[ei], Xe_Z0_es_E[ei]],
                linestyle = colors_and_symbols.symbol(ei+5),
                color = colors_and_symbols.color(ei),
                label = Xe_Z0_es_n[ei])

# Impacting electron
ar1Ke = fleches.arrow('K_e', [0.75*r[0], 0.0], [0.75*r[0], Ke])    # Vertical (Ke)
ar2Ke = fleches.arrow('K_e', [0.75*r[0], Ke],  [0.75*r[0]+10, Ke]) # Horizontal (v)
ar1Ke.Plot(ax1, color = 'b', label = '$K_e$', horizontalalignment = 'right', bidirectional = True)
ar2Ke.Plot(ax1, color = 'b', label = '$v_e$', verticalalignment = 'top')
ax1.plot([0.75*r[0]], [Ke], 'ob', ms = 14)

# Bound electron
ax1.plot([0.0], [-Xe_Z0_Ip], 'og', ms = 14)


# ********************** During ************************
ax2.plot(r, U)
ax2.plot([-r0, r0], [-Xe_Z0_Ip, -Xe_Z0_Ip], '-m', label = '5p')
for ei in xrange(len(Xe_Z0_es_E)):
    r0e = min(abs(cs/Xe_Z0_es_E[ei]), r[-1])
    ax2.plot([-r0e, r0e], [Xe_Z0_es_E[ei], Xe_Z0_es_E[ei]],
ax1, ax1b = plot.get_axis_two_scales(fig,
                                     scale_y = cst.Eh_to_eV,
                                     ax2_ylabel = 'Energy [eV]')

# Ip
ax1.plot([-r0, r0], [-Xe_Z0_Ip, -Xe_Z0_Ip], '-m')

# U(r)
ax1.plot(r, U, '-k')

# Continuum
ax1.fill([r[0],r[-1],r[-1],r[0]],[0.0,0.0,Umax,Umax], fill=False, hatch='/', alpha = 0.5)

# Photon energy
ar1 = fleches.arrow('GammaE', [0.0, -Xe_Z0_Ip], [0.0, GammaE-Xe_Z0_Ip])
ar1.Plot(ax1, color = 'r', label = r'$E_\gamma$', horizontalalignment = 'left')
ax1.plot([0.0], [-Xe_Z0_Ip], 'ob', ms = 14, alpha = 0.6)

# New electron velocity
ar2 = fleches.arrow('N_e', [0.0, GammaE-Xe_Z0_Ip], [5.0, GammaE-Xe_Z0_Ip])
ar2.Plot(ax1, color = 'b', label = '$v_e$', horizontalalignment = 'center', verticalalignment = 'bottom')
ax1.plot([0.0], [GammaE-Xe_Z0_Ip], 'ob', ms = 14)

# Delta E
x = -1.0
ar3 = fleches.arrow('D_e', [x, 0.0], [x, GammaE-Xe_Z0_Ip])
ar3.Plot(ax1, color = 'g', label = '$\Delta E.$', horizontalalignment = 'right', bidirectional = True)

# Photon
#photon(ax1, [r[0]+lr*0.1, -Xe_Z0_Ip/2.0], [0.0, -Xe_Z0_Ip/2.0], Xe_Z0_Ip/5.0)
                                     ax2_ylabel = 'Energy [eV]',
                                     sharex = ax1, sharey = ax1,
                                     subplot = 122)
ax1b.get_yaxis().set_visible(False)
ax2.get_yaxis().set_visible(False)

# ******************************************************
ax1.plot(r, U1)
ax1.plot([-r0, r0], [-Xe_Z0_Ip, -Xe_Z0_Ip], '-m', label = '5p')

# Electron
ax1.plot([0.0], [-Xe_Z0_Ip], 'og', ms = 14)

# Photon
gamma = 0.5*Xe_Z0_Ip
ar_e1 = fleches.arrow('e1', [0.0, -Xe_Z0_Ip], [0.0, gamma-Xe_Z0_Ip])
ar_e1.Plot(ax1, color = 'b', alpha = 0.5)
photon(ax1, [r[0]+lr*0.1, -Xe_Z0_Ip], [0.0, -Xe_Z0_Ip], Xe_Z0_Ip/5.0, alpha = 0.5)
ax1.plot([0.0], [gamma/2.0 - Xe_Z0_Ip], 'xr', ms = 30, markeredgewidth = 3)



# ******************************************************
Uep = -1.5*Xe_Z0_Ip
ax2.plot(r, U2)
ax2.plot([-r0, r0], [Uep, Uep], '-m', label = '5p')

# Electron
ax2.plot([0.0], [Uep], 'og', ms = 14, alpha = 0.6)
ax2.plot([0.0], [Uep+gamma], 'og', ms = 14  )
Beispiel #5
0
                                     ax2_ylabel = 'Energy [eV]')

ax1.plot(r, U)
for ei in xrange(len(Xe_Z0_es_E)):
    r0e = min(abs(cs/Xe_Z0_es_E[ei]), r[-1])
    ax1.plot([-r0e, r0e], [Xe_Z0_es_E[ei], Xe_Z0_es_E[ei]],
                linestyle = colors_and_symbols.symbol(ei+5),
                color = colors_and_symbols.color(ei),
                label = Xe_Z0_es_n[ei])

# 3 electrons
al = 0.09 # arrow length
e1_xy = [0.25*r[0],  0.8*Umax]
e2_xy = [0.20*r[-1], 0.25*Umax]
e3_xy = [0.75*r[0],  0.1*Umax]
ar_e1 = fleches.arrow('e1', e1_xy, [e1_xy[0], e1_xy[1]    +al*dU])
ar_e2 = fleches.arrow('e2', e2_xy, [e2_xy[0], e2_xy[1]-2.0*al*dU])
ar_e3 = fleches.arrow('e3', e3_xy, [e3_xy[0], e3_xy[1]    +al*dU])
ar_e1.Plot(ax1, color = 'b')
ar_e2.Plot(ax1, color = 'b')
ar_e3.Plot(ax1, color = 'b')
ax1.plot([e1_xy[0]], [e1_xy[1]], 'ob', ms = 14)
ax1.plot([e2_xy[0]], [e2_xy[1]], 'ob', ms = 14)
ax1.plot([e3_xy[0]], [e3_xy[1]], 'ob', ms = 14)

ax1.set_xlabel('r [bohr]')
ax1.set_ylabel('Energy [Hartree]')

#leg = ax1.legend(loc = "lower right")
ax1.axhline(0.0, linestyle = ':', color = 'k')
ax1b.get_yaxis().set_visible(False)
ax2.get_yaxis().set_visible(False)

# ********************** Before ************************

# Continuum
ax1.fill([r[0],r[-1],r[-1],r[0]],[0.0,0.0,Umax,Umax], fill=False, hatch='/', alpha = 0.5)

# Ip
#ax1.axhline(-Xe_Z0_Ip, linestyle = '-', color = 'm', label = '5p')
ax1.plot([-r0, r0], [-Xe_Z0_Ip, -Xe_Z0_Ip], '-m')

ax1.plot(r, U, '-k')

# Impacting electron
ar1Ke = fleches.arrow('K_e', [0.75*r[0], 0.0], [0.75*r[0], Ke])    # Vertical (Ke)
ar2Ke = fleches.arrow('K_e', [0.75*r[0], Ke],  [0.75*r[0]+10, Ke]) # Horizontal (v)
ar1Ke.Plot(ax1, color = 'b', label = '$K_e$', horizontalalignment = 'right', bidirectional = True)
ar2Ke.Plot(ax1, color = 'b', label = '$v_e$', verticalalignment = 'top')
ax1.plot([0.75*r[0]], [Ke], 'ob', ms = 14)

# Bound electron
ax1.plot([0.0], [-Xe_Z0_Ip], 'og', ms = 14)


# ********************** After ************************

# Continuum
ax2.fill([r[0],r[-1],r[-1],r[0]],[0.0,0.0,Umax,Umax], fill=False, hatch='/', alpha = 0.5)

# Ip