Skip to content

Instantly share code, notes, and snippets.

@DanHickstein
Created February 22, 2017 03:59
Show Gist options
  • Save DanHickstein/9e720f448e756f10715dd5a2ac621768 to your computer and use it in GitHub Desktop.
Save DanHickstein/9e720f448e756f10715dd5a2ac621768 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 4,
"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": 5,
"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": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"-1.275448199494994e-25"
]
},
"execution_count": 6,
"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": 12,
"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"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Applications/Pineapple-Pro.app/Contents/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/matplotlib/collections.py:590: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison\n",
" if self._edgecolors == str('face'):\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x111acf2b0>"
]
},
"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