Created
February 22, 2017 04:00
-
-
Save DanHickstein/ef3277df8901ffa2902e2ecf9e91dc0c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/javascript": [ | |
"javascript:$('.math>span').css(\"border-left-color\",\"transparent\")" | |
], | |
"text/plain": [ | |
"<IPython.core.display.Javascript object>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"%%javascript\n", | |
"javascript:$('.math>span').css(\"border-left-color\",\"transparent\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt\n", | |
"import scipy.constants as co\n", | |
"%matplotlib inline " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The soliton number, $N$ is given by \n", | |
"\n", | |
"$ N = \\sqrt{\\frac{\\gamma P_0 T_0^2}{\\beta_2}} $,\n", | |
"\n", | |
"where $\\gamma$ is the effective nonlinearity (in 1/(W m)), $P_0$ is the peak power (in W), $T_0$ is the 1/e half-width of the pulse (s), and $\\beta_2$ is the dispersion is s^2/m.\n", | |
"\n", | |
"Of course, we first need to convert our dispersion from D to $\\beta_2$. \n", | |
"\n", | |
"According to [RP Photonics](https://www.rp-photonics.com/group_velocity_dispersion.html), \n", | |
"\n", | |
"$D = -\\frac{2 \\pi c \\beta_2}{\\lambda^2} $" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Re-arranging, we get:\n", | |
"\n", | |
"$ \\beta_2 = \\frac{-D \\lambda^2}{2 \\pi c}$" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"-1.275448199494994e-25" | |
] | |
}, | |
"execution_count": 3, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"def beta2(D, wavelength):\n", | |
" # convert ps/nm/km into s/m*2\n", | |
" D = D * 1e-12 * 1e9 * 1e-3\n", | |
" return -D*wavelength**2/(2*np.pi*co.c) # in s^2/m\n", | |
"\n", | |
"def soliton_number(gamma, p0, t0, b2):\n", | |
" return np.sqrt((gamma * p0 * t0**2)/np.abs(b2))\n", | |
"\n", | |
"beta2(100, 1550e-9)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"1.6e-10\n", | |
"8e-11\n", | |
"4e-11\n", | |
"2e-11\n", | |
"1e-11\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x10ca8f210>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"\n", | |
"P0 = 1000 # peak power in Watts\n", | |
"\n", | |
"for pulse_duration in (10e-15, 20e-15, 40e-15, 80e-15, 160e-15)[::-1]:\n", | |
" D2 = np.linspace(10, 300, 200)\n", | |
"\n", | |
" wavelength = 1550e-9 # in nm!\n", | |
" Gamma = 1.0 # 1/(W m) (note, 1/(W km) is what you often see)\n", | |
"# pulse_energy = 500e-12 # J\n", | |
" T0 = pulse_duration*0.5\n", | |
" pulse_energy = pulse_duration * P0\n", | |
" print(pulse_energy)\n", | |
" \n", | |
" b2 = beta2(D2, wavelength)\n", | |
" \n", | |
" N = soliton_number(Gamma, P0, T0, b2)\n", | |
"\n", | |
" line1, = plt.plot(D2, N, label='%i fs (%i pJ)'%(T0*2e15, pulse_energy*1e12))\n", | |
" color = plt.getp(line1, 'color')\n", | |
" plt.fill_between(D2, N, alpha=1, color='w')\n", | |
" plt.fill_between(D2, N, alpha=0.1, color=color)\n", | |
"\n", | |
"\n", | |
"plt.ylim(0,20)\n", | |
"# plt.xlim(0,200)\n", | |
"plt.axhline(10, color='k', alpha=0.5, ls='dashed')\n", | |
"plt.axhline(1, color='k', alpha=0.5, ls='dashed')\n", | |
"\n", | |
"\n", | |
"plt.annotate('Incoherent', xy=(40,10), xytext=(35,10.5), va='bottom', ha='center')\n", | |
"plt.annotate('Coherent', xy=(40,10), xytext=(35,9.5), va='top', ha='center')\n", | |
"\n", | |
"plt.ylabel('Soliton number')\n", | |
"plt.xlabel('Dispersion (D, in ps/nm/km)')\n", | |
"plt.title('Soliton number for %i nm, %.1f kW, gamma=%i 1/(W km)'%(wavelength*1e9, P0*1e-3, Gamma*1e3))\n", | |
"\n", | |
"plt.legend(fontsize=10, frameon=False)\n", | |
"\n", | |
"\n", | |
"plt.savefig('Soliton number.png', dpi=200)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 2", | |
"language": "python", | |
"name": "python2" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 2 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython2", | |
"version": "2.7.11" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment