microring-dynamics/microring_dynamics_v2.ipynb
2018-12-17 09:29:53 +08:00

288 lines
91 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Ring Resonator Dynamics\n",
"The following analysis is base on the model from Yariv's PTL, \"Critical Coupling and Its Control in Optical Waveguide-Ring Resonator Systems\", in 2002. We mainly focus on the dynamic of how it reach the static state. We start from the light reach the coupler at the bus wavguide.\n",
"\n",
"P.S.: We split the time to discrete step of each round trip of light in the ring."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"\n",
"T = 0.99\n",
"K = 1 - T\n",
"Alpha = 0.99\n",
"t = np.sqrt(T) + 0.0j\n",
"k = 0.0 + 1j * np.sqrt(K)\n",
"alpha = np.sqrt(Alpha)\n",
"theta = 2.0 * np.pi"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We define a function to generate the time series of a1, a2, b1 & a2: \n",
"**a[n] => [a1(n-step), a2(n-step)]** \n",
"**b[n] => [b1(n-step), b2(n-step)]** "
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10f343780>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def propagate_in_cycle(t, k, alpha, theta, num_cycle = 1000):\n",
" a1_0 = 1.0 + 0.0j\n",
" a2_0 = 0.0 + 0.0j\n",
" a = np.zeros((num_cycle, 2), dtype=complex)\n",
" b = np.zeros((num_cycle, 2), dtype=complex)\n",
"\n",
" a[0] = [a1_0, a2_0]\n",
" \n",
" coupler = np.array([[t, k],\n",
" [-k.conjugate(), t.conjugate()]])\n",
"\n",
" for n in range(num_cycle - 1):\n",
" b[n] = coupler@a[n]\n",
" a[n+1] = np.array([a1_0, b[n][1] * alpha * np.exp(1.j * theta)])\n",
"\n",
" b[num_cycle - 1] = coupler@a[num_cycle - 1]\n",
" \n",
" return a, b\n",
"\n",
"a, b = propagate_in_cycle(t=t, k=k, alpha=alpha, theta=theta, num_cycle = 1000)\n",
"plt.figure()\n",
"plt.subplot(121)\n",
"plt.plot(abs(a[:,0])**2, label='a1')\n",
"\n",
"plt.plot(abs(b[:,0])**2, label='b1')\n",
"plt.yscale('log')\n",
"plt.title('a1 & b1 in Bus WG')\n",
"plt.legend()\n",
"plt.subplot(122)\n",
"plt.plot(abs(a[:,1])**2, label='a2')\n",
"plt.plot(abs(b[:,1])**2, label='b2')\n",
"plt.title('a2 & b2 in Resonator')\n",
"plt.yscale('linear')\n",
"plt.legend()\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can invitigate the change of bus waveguide output intensity & the ring intensity gain from the coupler by each cycle (normalized by the input intensity a1)."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x105924d68>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure()\n",
"bus_output = abs(b[:, 0]/a[:,0])**2\n",
"gain_per_cycle = (abs(b[:, 1])**2 - abs(a[:, 1])**2)/abs(a[:,0])**2\n",
"\n",
"plt.plot(bus_output, label='Bus WG Output')\n",
"plt.plot(gain_per_cycle, label='Energy gain of ring after coupler per cycle')\n",
"plt.plot(bus_output + gain_per_cycle, label=\"Sum of both\")\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can see that the bus waveguide output power: \n",
"**enegry loss from the ring via coupler + enegry from a1 does not coupled to the ring** \n",
"\n",
"is same as the enegry gain of the ring after coupler: \n",
"**enegry gain from bus waveguide + energy of the ring does not coupled out to bus waveguide** \n",
"\n",
"Therefore, when the distructive interference happened in bus output port (b1) of the coupler, the energy will transfer to the port of the ring (b2). It must be true since the coupler is lossless (coupler martrix is unitary, i.e., |t|^2 + |k|^2 = 1) \n",
"It is an interesting constructive & distructive interference porporty of wave 😉 "
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10f64a898>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure()\n",
"# plt.semilogy((abs(a[1:,1])**2 + (abs(a[1:,0])**2 - abs(b[1:,0])**2))/abs(b[:-1,1])**2 - 1)\n",
"# plt.semilogy(abs(a[1:,1])**2 * T + abs(a[1:,0])**2 * K - 2 * np.real(np.conj(a[1:,1]) * a[1:,0] * k.conjugate() * t) - abs(b[:-1,1])**2)\n",
"# plt.semilogy(abs(b[1:,1])**2 - abs(b[:-1,1])**2)\n",
"plt.plot(- 2 * np.real(np.conj(a[1:,1]) * a[1:,0] * k.conjugate() * t))\n",
"plt.plot(abs(a[1:,1])**2 * T + abs(a[1:,0])**2 * K - abs(b[:-1,1])**2)\n",
"# plt.plot(abs(a[1:,0]) * abs(b[:-1,1]) * np.sqrt(K*T*0.999))\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Play with other parameters\n",
"Enjoy~ 😊"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1cd15c2b780>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"T2 = 0.999\n",
"K2 = 1 - T2\n",
"Alpha2 = 0.999\n",
"t2 = np.sqrt(T2) + 0.0j\n",
"k2 = 0.0 + 1j * np.sqrt(K2)\n",
"alpha2 = np.sqrt(Alpha2)\n",
"theta2 = 2.0 * np.pi\n",
"a2, b2 = propagate_in_cycle(t=t2, k=k2, alpha=alpha2, theta=theta2, num_cycle = 10000)\n",
"plt.figure()\n",
"plt.subplot(121)\n",
"plt.plot(abs(a2[:,0])**2, label='a1')\n",
"\n",
"plt.plot(abs(b2[:,0])**2, label='b1')\n",
"plt.yscale('log')\n",
"plt.title('a1 & b1 in Bus WG')\n",
"plt.legend()\n",
"plt.subplot(122)\n",
"plt.plot(abs(a2[:,1])**2, label='a2')\n",
"plt.plot(abs(b2[:,1])**2, label='b2')\n",
"plt.title('a2 & b2 in Resonator')\n",
"plt.yscale('linear')\n",
"plt.legend()\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1cd15b431d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure()\n",
"bus_output = abs(b2[:, 0]/a2[:,0])**2\n",
"gain_per_cycle = (abs(b2[:, 1])**2 - abs(a2[:, 1])**2)/abs(a2[:,0])**2\n",
"\n",
"plt.plot(bus_output, label='Bus WG Output')\n",
"plt.plot(gain_per_cycle, label='Energy gain of ring after coupler per cycle')\n",
"plt.plot(bus_output + gain_per_cycle, label=\"Sum of both\")\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}