From 0b24055b997b806ebbdca9e444c06a1433f00743 Mon Sep 17 00:00:00 2001 From: parkeraa Date: Fri, 26 Jan 2024 20:00:09 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20BYUCamac?= =?UTF-8?q?hoLab/Photonics-Bootcamp@aa471e06a4e75a995fbebd3cce18def4da3a1d?= =?UTF-8?q?07=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...7976737891a72b8d6dd1d5fa63a47ef1945e6e.png | Bin 12636 -> 0 bytes ...c130f7f06037964f1fb326fee271a34df7c86b.png | Bin 0 -> 16734 bytes _sources/pages/mzi_layout.ipynb | 23 +++++++++--------- pages/directional_couplers.html | 4 +-- pages/mzi_layout.html | 13 +++++----- searchindex.js | 2 +- 6 files changed, 22 insertions(+), 20 deletions(-) delete mode 100644 _images/7245f55df573520437030781097976737891a72b8d6dd1d5fa63a47ef1945e6e.png create mode 100644 _images/a977c11e12e70a7fe7b42347dac130f7f06037964f1fb326fee271a34df7c86b.png diff --git a/_images/7245f55df573520437030781097976737891a72b8d6dd1d5fa63a47ef1945e6e.png b/_images/7245f55df573520437030781097976737891a72b8d6dd1d5fa63a47ef1945e6e.png deleted file mode 100644 index 14742f9733b3ee1a1c73d7078bebdaaa07fedc32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12636 zcmeHu2UJsOxAp-)WJH9KA|Mb%q$?c+siRowD!odTu7(x@35lfy??t|i^bxclk>j&efQq)-p})ZvNS)t zkLw^8008^WpEJG)0J~HGfc@$ZyTL2`KVBfZ&h- zU-v^{UN@k=!9nUu+Dd9i4_yrjxduI!0tE1;P)DR#i*3nIuh#X?#~&Vd=`^|UWcL*4;}Vo zW2ZtXI`E3uH%^<2v@)T>ubr zDwYiZ8XmQRcSkMVz-NOtpbN*bSghV>1bD5jzP6}l`@uXEyE^x)YRbz~U0JsIrTdq> zWrJPPtIl+0J;1JD0|=#W>wW=W9wC5E0pI8=2QHJ*aRFffcqqC(XreX8)W@1#9pV*{ z*nGz4I%3j*&RAdc^^xlxRPo^H=4^K^5pZtYmpZ{oX#C}iJF`8*&oR~4wW}%hc*O;K zsmUJmF|2}DV%?Roo@-mf`y!&CB^lu;c~1c7z?-}#kGlqsk6UcM&6SW?oLyO&q`+Ws zM<)FzL2^L~llqXs2E4iLi&_=qxzjy6zJ-9n@60n8Z;hr+3pz!8I`! z6F|?;Cf~Gppdi{&Y9E{FxDKaz$(+3V=ohG>3TT(*@LfT4o|pSHA-bbH?I_cknl5(w z78f}E7!R2^H{UofSG$bv?qe6)P!;gyO*z#g;pMGuw1oINMxgMm+Z+02Ba=Pwk~HhF zjpH!tn1YvnX1IEQhk8IQg)$7zN$W7rCVV3*0J1^RWWa?e<0uAcu_wADg)XM30vPEx zS|?nuz%Ab>Lnn_Tk>l02I_9N6&f9wAL`!^XcRINnP|;LW&hu6#oUnFpuX^9dj0?U9 z?(&(AZWG?q56KK3A#Gc?P0CO7UBJUVqX%L}nYwjt$7EnZnu7Zd7J@6FX-d13(EqwY zUO5jcy_@Um<5uohU*{UXS}sjl%lrR=9o+GTMl6wJOQA6KF&O*1n$pm3vA^_;Wfe>k z9nU?-n#_StwlrMUEQVF}3@%ZIcBrk~=L}a{cq%Zo_zOjKb2VS%?kHgB%#p3uQfG3)cQ2h}d# z0^P?5Ca)~vcrB&hK=>ZGP%+suvS00$#j{RyV(Om6f`KrpIoRs@sLhCD$Em+FUjCd? zCWAt!TukjOjyAN#HMR+;0f!1l;jIa>ROR4cPRicY-XOlg&Le7(UZBq#Nz&F+9)PcY zvf@>GEmjb90iA4>%KF({Q3nZdrB^T_yJbE6AYWC zq~a$IV}9d=_e)Buaoj*>(a_~`KiK)%5rHZsB*YK^APeM}D38bLtvsy#m(be4tu?bj8Z1^4S>iB@_E zI49r7t(UV34*ih0DVi7yjuts};)5VX;lGX-sF7yuHTLo?~3xg4=iAn@=eUYWewn&o+N9d*h}K+p$Pf$z8w=1&z3XhHee> zLs^@V^8>L5Fkqym*^urP!+I6!e_yC7PVb!R3qd>Er%+}roM*~%niL0GdOR!Jyi^ghD%Iv%ORNEk~)TdBMRF}5u-IQHAM2CXWyKV6WJ#fI~%6jFNaRIf1-r)XP-Zy!A zNQkv%$B15+@}84SQBtXq9Ny|1O>Drlmo988ND}At<>@1vSdj|RXyzih!NO}d(1(k7 zi3pU(*-SkxLa|d5e7T0{bTAYnE@T#I=|8?W_Gfx$t}Rx!c)4>8x~4bhO3jd*FZy#0 zzMM>|XL=^x-6IaXDSUFNv)y!{v><_OB)@s=+&72M2|f)&tv28{_+E{>u1bgl4XM7Q zD~wI4&r~f}GHING6py%df@A6eXT^w|I`HPfQ4+^$9!g)ONtliga7BWr7Vx0+#dT&Q ztcnS@Ocul_iaTebo}JhQ?CW~L?vbGOUbB*&`qY<;zAiy?^YVUeTysg zw;i7G@mq*31kJgw2&yPYhKvU&s_ewZMGvmQ?tL4z-j789J*$`Up2J&Bl;ev?A1?cV z!!DaW)}Eb2FmPpT+^Qm{;5`6<^mM%bjPusaTr4bQdL}tt1gNX-q6WOsm!P#;K47Q* zqnjJhYbF1<*Z?QCuTcY&wN7nBF|=1#@)3x+&5g5j%9Xdr(&SajnujJ5)!Aa6@5K9O zef_LYv$?l*n0EV0K}- z-Fg1bpe`?O;M$|ne^h~|<;UihLW~h@zQ}J+Vb$IKdU;PTCCS;htEUE755+Fd+!?4K zJTlt4U-wIb7r56vP`9_vv;wP^MKmMf}kd%M>TG!rUHDllna z7^*A5bJyy&m^R+P)1VtCn~^yo_jrorRKi2LLXxK``gPv)m&uHZLOfvkzK`UQvsW@v zMoF@ft`X5WG^+FDL3Z3kg2sa(-p#K1y zl~;`mC^|CIkHvy6upuukyU?+^=2+Gy=9q~xYr_pMP`>&J0GUVi$c33TnpwpSxt5Wi z1ge6O`yyg?Qd^g&i&4A86Y34M+RHbZtNEY-UNQ!~@Hd&dnps2C_mZ;sNd z4CM*5s8EXD;AYdg3KV-kLnF?EzoYz^Dp8_TcgiAdKJ(+=zPD|bFk3d z&?ufEXDzL0Xgd=+>$#H8!0s1nLXqmRu4DKrs61qR?`77>RwXKow1bGFu(!hN#ZCrou2eCz-fCXzT$mdfL;Ksf z^K`!~9jUQ&33{%!3y|%hdn_mkWi5;g=c3in=+gsJdNi^gvi~kJCz?}1n{J>&B`9ay z8s(ijI~P|!Lu^S+&!p2U6x9(b?AH>fLn;Rg%}ZF-HRPIlg#BR;r(fK-Ozrg@$CaMBlr$?lYWpmktB?lj3p`3DGN z$bReC`PUFk@O=uhK8%3dpx!|Tnw2|7N1m_$N+cvF$H%X(tViY{VL&96N+ixvTR-RE zrpbkh9GMm`(6r(NGJ9=j)AE>(z4EI(UFW&jE)BC!-co7Ff!WDCHg4V$TZ};agE65r zv}V)R=o7<*>pI%MHBTIA9Hu5Xw_m4B54}gfhsg%}=`b0Q{qsb4z8?&27rR#A!QZ)1 z$=6ThG7SiWfwf-i{r5K=gB>VuJwqpPu-0Q+;*b@3Yg}(xtDMSs2xWgar8}#lp=5Uc z>j**b4gG-(On$h8jRWuyno6cKHTt`#3#STy?zw>f%#3&!{YdXpC*;e4{*J@u2`N$6 zV5oRzPR8|h9Ihoew4lZ5(O*iPgLvI$q*+@onI?)xmnwpraC?o zyPZzbCfKWy5@^wM%-IC<9H00f3}YaVDs7(ubvL`H(`e?genGU45V}6@FqQPW7lXZx zUnX38Z~#I-Bd22F5Lo~9l*&>b%Y;ZE>#u*}Z7uXef8eo;t*^|#c;oGICAf^QD~5-7I}^;Y zeuDd5A-T}vCO?ihH#H5jc+I`lu`dyaU)7VJ`w_fq?H=8E3ga1gE$#VAWhD6V%e%+p z8fr~`#lKCzzZZw=s$jGQuQnPqCyLyXyhRvQ?u{CM5Os03O=Y9rS~55&eaWW#;9JWv zPJJQ6Wms)2xxyPV?(bB2*6-tFuJMP{vGpagpl9*Fo=iv$_JcjHF>R@rdTeSE+@1;B zBvzOOu>lR)7wLz%@ceu6@9Nd6Yfe-b*Bo`a(axVOqC42_Ck(u)ixV=I;vwv+?@8l2tFzrEakgiH7*6f$>1RLi zLCae=!1nMr!L$qmIc1=A)by-9p&YNX@%}*EZR_SH}F-C3QZoB_7-II_(tAfgK-D$kcQrzNBc_+C_(@u&M>lA zzfcFgM3v(L7?mFVeK($E4tE9eq~h9mXqRD8Y%ymYPSE9U81xy()`u*$S{vMMOw4So zsnI(Ue5#7%j2#P+b^HLG>@nN!xl@ie&cHgLck_=M5{i3eHsiB`CJiGhlH=79YimY{ zO<<)LKGPB5dkAP%$8+wLuB%~=$ZUe;Oys8}l>&5fBCDs!nV!gg(h4h*_w*4ftr1Rj zbV<**2OdhLmi$b!jXz=&#NpjjGG*hS?X{)<^(|e)-H|> zaJcLxh2&RMA>4;tU)Fb6aB?ZOzjN-MGtnX8ATdkYXDrD9l1)?sYbANk5)pw6zTZ$~!RfUzd@!GlYrv{EAuFM|Lc3Zi4aw_i&&XiodSpyi zU^R~aa~NymBao7@kVj0?&7nk?&|hEg5D%VT{rssM*)F!d3nG1{|MoIEoq#+ms0)-6JwR`v)~s#oYNTG1)P(6TmLHy z7c)8tc7Okj{eh6)rNH|?V_D7nU!B=8S>E&6na5pV@;Lcj4`OYAmehA}z>jUb{zry{ zId?Vybix0G4fq}mzyc%xk6y7IJo7&mb9UBlNoKm&Miz@ZlJ^0=(*`FN>WFJewIQxz z;UkM5l9V9}>ppl@mg8he_WWCZEW?G*PvwmK6U6=I1=|_q|LG9^|JH;4V_Cbsm>n80 z6iZC9)kg#X=S=8t!Hh=;{~gV*4U1a5Hel$H#7aFMxqbf^QkT*Ly*Gd6-*1@a{|$%0 ze|ymP%8vi+q+uh7@#yCf3&+kZdh9ZCXh=@dU5IG@hMPVo-nrelDFRIZ53hFbbL#*0 z;Rl_bj2-*VDfVAcM*O!2{qOLg|5)W%S==g?6*f^vv`&@~1^W7;L%xxh+TclCChn>? zvO>UkunK6cQ}_S%^68Iaz(kgJd56f{!CU`bh3J2^2PLxbw}+xxk_bdpLQBMyJ{z#= zUOkwmZENM`Rz{FSm{llp09QLJ1_mOw303$EG#zZEO1@WY>uUskCg8z>+rwaxI3I}Q z1}3JpPJy_qSb1wmWX^WmAz*cd;|xd_#pDFuy6M`CZPF(r^x{F%256dHzESD_M>9}x zcG5;Z_#3eMyI-xm%Q~smbmrNci=yM6AYJjM*pn<@kYbj|yD*z<$os|n#?8H#F<(I@ z_%X|{9Ir_BhTx(+^I?T>jRRxx%&1Tx#zrhVD+IeP***9O>zAKV9!shb)3)i)uHHn_B1Y^ zI_&?!MKyN65XK5X=dN_KCdXLr1 zroo+sBCcg-F5;)n(B36Z{#-!KG)|?M-48_bnol-IBW=Cabf0tW0>K0ma_#Bfv)~O` zEAJ%-r?|yBb|6`00q5)xeIBu9XDr20@NzlcH&aB*su=$S9wlVs)UI!JDpum)rD@2p z`eaYp?+i}4)7WTzdx&9}ahi6a*n7;$FybE1+Q~$9UCp(eAqytPAOmt1nD`(=7P%AL zmNU7*B0bbNrc6u%(-!gKR_;K|S^0}DhXpVNwyx%tYW=7pswg7N%|$DHDvb7 zp6kX9!F>y6kgV&{GVZnaGrr#D0=^pcAMZm%yKXpX+PEFm(ibt%UQnxkfp-zqkyEwt z0Al>b>_btVNW}FZj&^~nTl4hG#$r)=5kx#sL1sQOszX97OLCLJWK7(~Yey^13ePVm z&nIB(t-Bq!`R@E~U47ftjq2NQ7Z>m`-B6hQD=z#^vC{iT?GCD`j0z)Wh@Z!;mPOa6 z3vk%IH1#1ux^S`tFj+ly8qZHIv!`S6gKb-F?9lQWvFd1MWdl}Decy@7$wtrh0t_b- z5)-ASFAHyO=zU3V?UQy-=lqAfip9Z4*vl^MjK!rz#)N@5qiG;R*sFl8`qADy@XVyS z>kdm)q7+E$jD6{4ySCRKsU?B6)HIx?OvBdNqFt#`HuLp!eOMDRhc%~8XeFmi7EE%G zVw<@Uxen){)tEN7hj-&D_0>Tps&M%B+b4uiltA@1TnELlwk!2xkpzv}WYLkt_`(7l zKW=t__~ZESYLwxi;ot^zY1tr&p%w;LZ+G0g)vF(+=XCWc8f@t;1&a(KJwwR;@P03m2^TKL!!@;(c7tk?FRt!Q|l z%8d-N?#$W&Ml@2w>DiIx|Cr0Y-LfVYl}a8}KjnLd!M`MHkgLyJY>L|pp>mO}odqzB zk(RL_g56Je?&J=!_XZwjOI4Ih3`?xNdyi2sQR1Wrch|EYf6}T~*D5BS3%`OIMBm{= zWAfFY*NQSFEP=23{=1t-u4+ylmbGzi77!xu8oA3(jbVrSt$1xRK16Mr6k#@ggd4+j z?ESPrzHS6x)c3WMufLlaqY^jwXsZ8pIdh{=qcVO~y=Ue;$;s-GdcpLW92eM-{(*{ z!&e1XOAXoxvPoysd~|&nadU%87~2cIgTvpt690+n-|lhgRHXLrK;^6$D8kX3Tb-Jf z1@B(@#QQ{hbB)|$ao|@+W>X__*aJE63`N_F7HgSZv{?Z0>MXJVW)W&@CXtnv@tTji zHqxYm&d7|9&kdG9F07Nu@3%ex%YoH{+0hayH%$tq))C}&|6>Aom@?~*Q{&N1(?7DI z6W+3OOrbcuH#W*H;Fmdvs&QTU5=g{`yh{35D_6`ZLqmhlR4SAyfJfc9^lZUd31WS3 zf=g@Ba8MKO&V#^M(Ath7np2a39~bF8V#(2ZE9CZQ^rFt>c({&twnXE~xN1K3%^pRN z|Crt1&2S}{7|Fujnz8p@h)_3Zr}jT=cpm3LkGfv|POP-sGb+ixVd?XM5*7M-!!;=| zaZZ3KcDxQ*+NROW>0MdliAd*;S?PUnNLk-CTTVmp0=`F?dLj(w(2g{0cy~HhN9*o{ z3x z%%-lR!r@wkI&NCgf^hU0k#vQqOKsj@OzkTNB1*gRyQq??jFYKft4KG6_O~#wy7fm0 z55*&&w2r(%nCykRIy2SCn~&OXuHIrrNk(RBKEg;kFU|f&j+H&cQ5mbA9B3sj)HE#l|6n z)&m&nm?$dIB8?83Ii1W1z5lZAbJf(rk^J$-;u=%seWFP1<6$tn4;|s>|1iH=NpEXk z*6r~-g%_BsN-4ED8<#o{L$pwHkPIax)K?hDe&!gvcB4LwLddM9X5LYcrW0P>%+5MF z#aGpCX6r!Pc*Yh(ycayOwJme~Cx6H(tBNYRqxk#iLbj)g=QSUG&tyz$A zT0<3u2dOr_bA9Jo%7(L1n`;z*C5~a)$8+CaW%O_xBG>{9zZ;Omjp5@m5K!s){jC8Uf0RroHaJEVFTl?1C$9Q%&ChP2)CX3kAw?rleTEdFjI?P-W3(o!S}D z#u;PYlS4O?RF6wA0N3{eXuVX~TJC7h0iaW=KPMSoJ6tL=Iy2j<{%&X&^z*)ByjrWn z;1uLN5#%-S1UyZ`j|o*hwRZEyRvrN+X|pS#TLvoh`)9cHY`WO1x7fg4F^Uwig_K7_ z&4Xvo?=}PV8><>|vJ{_xsdGu}JRUdav`1%U)g^M!o_9wz_T&SIUq4Lx1ys01H}tbt z7ooG6_&=Suc}PjC=>*AQykj$B|PLEs|&p%2Qg}AcW+;tN~Jv~9rZxvDQ(Mh zX1f^qua83S=4E`ZXILvp>FH6H$}(scDNO3IW+2LUl$1v1s6wz@CV3S-6=P=0duo8? zI`FV&PVq;}M3!kqlwrz4wo=SwWdo^C6}a0otR`9o{DYwti_>2HYp z;VprxqIm|K`&CMFjoDvEJq>48`u zbr4>cE9-+`7ME1fckgDh%$xFr+}Kv$DU`JuzXPRr+baul;?;21L$Ti%vrbR1R?2&p zjS?Ki44-or64Dmoq)&?}%8$!bR|9nx_{?b+1il0~bnO$UgZdxGOdz75{DMzi~Ccno8ozzBf7z|T=Iw1-x<1W}Zw644nL4_D~sO1lTS z8Ij*n`==J5P?2A$th?wP9r_N}colxexK1-t^wy^d;>Kz{`0zrdhyUhq59?Eg8utDe zG(KLtf00b|j@XQD@aSFCg230AH=vE5!^}Yj(J82>_}5!J08*^9+0@3XuUk*){*nNO zr>yCSX)IgJU;!;bcBPx^^#*lLw>5N%)aD%xXuH4Qogzt%>%O5b zm&!|7v=+x80V$y2d5s!ai|G93+I?4ARE$MDh5ft{j~y4!i^8em(;?%3YTXj!g>SvW zb@rJ_Wu@0#S&cke9XU>5$*rlGC#SSpGG(S%pNyFoBF*MfqREDg<}T6{jkGPq8xGR^ zOqvgDS+8=9o8Gul0``rD5`{3XvSv$`j`W?1vZ8+O7iEF;gjajqx^N3>mBf}$B$5@K z1DHUB$uc?l8{1PibGq>tlddn>S?El}tFIV?(Zx00)HY{xx80=UaGKDPj;$Lg;VS)? zyj^@8w%Vi%>~n`C%CI7v85QSYgUF!A8^kOpP&)`|W+zJM8z!p)W{!5Rg*EFBsvk%j z?6xw_qYE_`)thuG?AhDGJUJGft$J}>s{1PT-i@c!}4gVP4yByMr;+sbiG UU7?adHXS&B+T6JOq}$K`1Nsq3B>(^b diff --git a/_images/a977c11e12e70a7fe7b42347dac130f7f06037964f1fb326fee271a34df7c86b.png b/_images/a977c11e12e70a7fe7b42347dac130f7f06037964f1fb326fee271a34df7c86b.png new file mode 100644 index 0000000000000000000000000000000000000000..c4f5e430d8933b98f2f1fee180b59d14f69c4f61 GIT binary patch literal 16734 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 literal 0 HcmV?d00001 diff --git a/_sources/pages/mzi_layout.ipynb b/_sources/pages/mzi_layout.ipynb index 5fd56e7..8a849be 100644 --- a/_sources/pages/mzi_layout.ipynb +++ b/_sources/pages/mzi_layout.ipynb @@ -18,17 +18,17 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "\u001b[32m2024-01-26 11:16:10.112\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mgdsfactory.technology.layer_views\u001b[0m:\u001b[36m__init__\u001b[0m:\u001b[36m790\u001b[0m - \u001b[1mImporting LayerViews from YAML file: '/home/parkeraa/miniconda3/envs/mp/lib/python3.11/site-packages/ubcpdk/layers.yaml'.\u001b[0m\n", - "\u001b[32m2024-01-26 11:16:11.376\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mubcpdk\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m30\u001b[0m - \u001b[1mFound UBCpdk '2.3.4' installed at PosixPath('/home/parkeraa/miniconda3/envs/mp/lib/python3.11/site-packages/ubcpdk')\u001b[0m\n", - "\u001b[32m2024-01-26 11:16:11.456\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mgdsfactory.technology.layer_views\u001b[0m:\u001b[36m__init__\u001b[0m:\u001b[36m790\u001b[0m - \u001b[1mImporting LayerViews from YAML file: '/home/parkeraa/miniconda3/envs/mp/lib/python3.11/site-packages/gdsfactory/generic_tech/layer_views.yaml'.\u001b[0m\n", - "\u001b[32m2024-01-26 11:16:11.461\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mgdsfactory.pdk\u001b[0m:\u001b[36mactivate\u001b[0m:\u001b[36m307\u001b[0m - \u001b[1m'ubcpdk' PDK is now active\u001b[0m\n" + "\u001b[32m2024-01-26 12:58:37.353\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mgdsfactory.technology.layer_views\u001b[0m:\u001b[36m__init__\u001b[0m:\u001b[36m790\u001b[0m - \u001b[1mImporting LayerViews from YAML file: '/home/parkeraa/miniconda3/envs/mp/lib/python3.11/site-packages/ubcpdk/layers.yaml'.\u001b[0m\n", + "\u001b[32m2024-01-26 12:58:38.389\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mubcpdk\u001b[0m:\u001b[36m\u001b[0m:\u001b[36m30\u001b[0m - \u001b[1mFound UBCpdk '2.3.4' installed at PosixPath('/home/parkeraa/miniconda3/envs/mp/lib/python3.11/site-packages/ubcpdk')\u001b[0m\n", + "\u001b[32m2024-01-26 12:58:38.462\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mgdsfactory.technology.layer_views\u001b[0m:\u001b[36m__init__\u001b[0m:\u001b[36m790\u001b[0m - \u001b[1mImporting LayerViews from YAML file: '/home/parkeraa/miniconda3/envs/mp/lib/python3.11/site-packages/gdsfactory/generic_tech/layer_views.yaml'.\u001b[0m\n", + "\u001b[32m2024-01-26 12:58:38.468\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mgdsfactory.pdk\u001b[0m:\u001b[36mactivate\u001b[0m:\u001b[36m307\u001b[0m - \u001b[1m'ubcpdk' PDK is now active\u001b[0m\n" ] } ], @@ -134,7 +134,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -168,7 +168,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -180,7 +180,7 @@ }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -191,6 +191,7 @@ ], "source": [ "from ubcpdk.config import CONFIG\n", + "from functools import partial\n", "\n", "CONFIG.username='MyName'\n", "print(CONFIG.username)\n", @@ -207,14 +208,14 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "\u001b[32m2024-01-26 12:38:46.077\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mgdsfactory.component\u001b[0m:\u001b[36m_write_library\u001b[0m:\u001b[36m1913\u001b[0m - \u001b[1mWrote to 'mzi.gds'\u001b[0m\n" + "\u001b[32m2024-01-26 12:59:01.346\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mgdsfactory.component\u001b[0m:\u001b[36m_write_library\u001b[0m:\u001b[36m1913\u001b[0m - \u001b[1mWrote to 'mzi.gds'\u001b[0m\n" ] }, { @@ -223,7 +224,7 @@ "PosixPath('mzi.gds')" ] }, - "execution_count": 44, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } diff --git a/pages/directional_couplers.html b/pages/directional_couplers.html index 334497d..ac9660d 100644 --- a/pages/directional_couplers.html +++ b/pages/directional_couplers.html @@ -565,8 +565,8 @@

Coupling length and the gap between waveguides\(\Delta n\) gets larger, making the cross-over length shorter.

This cross-over length \(L\), that gives 100% power transfer is found with:

-
-(2)#\[\begin{align} +
+(2)#\[\begin{align} L_{\text{cross-over}} = \frac {\lambda}{2\Delta n} \nonumber \end{align}\]

This is found from determining what length when multiplied by the propagation constants makes the phase difference \(\pi\):

diff --git a/pages/mzi_layout.html b/pages/mzi_layout.html index 25b30c9..e9a066f 100644 --- a/pages/mzi_layout.html +++ b/pages/mzi_layout.html @@ -324,10 +324,10 @@

Laying out a Mach-Zehnder Interferometer -
2024-01-26 11:16:10.112 | INFO     | gdsfactory.technology.layer_views:__init__:790 - Importing LayerViews from YAML file: '/home/parkeraa/miniconda3/envs/mp/lib/python3.11/site-packages/ubcpdk/layers.yaml'.
-2024-01-26 11:16:11.376 | INFO     | ubcpdk:<module>:30 - Found UBCpdk '2.3.4' installed at PosixPath('/home/parkeraa/miniconda3/envs/mp/lib/python3.11/site-packages/ubcpdk')
-2024-01-26 11:16:11.456 | INFO     | gdsfactory.technology.layer_views:__init__:790 - Importing LayerViews from YAML file: '/home/parkeraa/miniconda3/envs/mp/lib/python3.11/site-packages/gdsfactory/generic_tech/layer_views.yaml'.
-2024-01-26 11:16:11.461 | INFO     | gdsfactory.pdk:activate:307 - 'ubcpdk' PDK is now active
+
2024-01-26 12:58:37.353 | INFO     | gdsfactory.technology.layer_views:__init__:790 - Importing LayerViews from YAML file: '/home/parkeraa/miniconda3/envs/mp/lib/python3.11/site-packages/ubcpdk/layers.yaml'.
+2024-01-26 12:58:38.389 | INFO     | ubcpdk:<module>:30 - Found UBCpdk '2.3.4' installed at PosixPath('/home/parkeraa/miniconda3/envs/mp/lib/python3.11/site-packages/ubcpdk')
+2024-01-26 12:58:38.462 | INFO     | gdsfactory.technology.layer_views:__init__:790 - Importing LayerViews from YAML file: '/home/parkeraa/miniconda3/envs/mp/lib/python3.11/site-packages/gdsfactory/generic_tech/layer_views.yaml'.
+2024-01-26 12:58:38.468 | INFO     | gdsfactory.pdk:activate:307 - 'ubcpdk' PDK is now active
 
@@ -388,6 +388,7 @@

Laying out a Mach-Zehnder Interferometer

We can export our design using the write_gds function.

@@ -411,7 +412,7 @@

Laying out a Mach-Zehnder Interferometer -
2024-01-26 12:38:46.077 | INFO     | gdsfactory.component:_write_library:1913 - Wrote to 'mzi.gds'
+
2024-01-26 12:59:01.346 | INFO     | gdsfactory.component:_write_library:1913 - Wrote to 'mzi.gds'
 
PosixPath('mzi.gds')
diff --git a/searchindex.js b/searchindex.js
index 54492fe..f68e25d 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["index", "pages/adjoint_optimization", "pages/advanced_components", "pages/analyzing_circuits", "pages/compact_models", "pages/component_convenience", "pages/components", "pages/credits", "pages/directional_couplers", "pages/drc", "pages/edge_couplers", "pages/gds_to_meep", "pages/git_and_github", "pages/glossary", "pages/grating_couplers", "pages/introduction", "pages/klayout", "pages/laboratory_tools", "pages/layer_stack", "pages/meep_to_gds", "pages/mmis", "pages/mzi", "pages/mzi_layout", "pages/open_source", "pages/optical_io", "pages/optimization", "pages/passive_components", "pages/pdks", "pages/phase_shifters", "pages/phase_shifters_heaters", "pages/phase_shifters_pn", "pages/photonic_devices", "pages/python", "pages/ray_optic_model", "pages/ring_resonators", "pages/scattering_parameters", "pages/shape_optimization", "pages/software", "pages/vscode", "pages/waveguides", "pages/waveguides_mode_solvers", "pages/waveguides_modelling", "pages/waveguides_polarization", "pages/waveguides_tir", "pages/wsl", "pages/y_branch"], "filenames": ["index.md", "pages/adjoint_optimization.ipynb", "pages/advanced_components.ipynb", "pages/analyzing_circuits.ipynb", "pages/compact_models.ipynb", "pages/component_convenience.ipynb", "pages/components.ipynb", "pages/credits.md", "pages/directional_couplers.ipynb", "pages/drc.ipynb", "pages/edge_couplers.ipynb", "pages/gds_to_meep.ipynb", "pages/git_and_github.md", "pages/glossary.md", "pages/grating_couplers.ipynb", "pages/introduction.md", "pages/klayout.md", "pages/laboratory_tools.ipynb", "pages/layer_stack.ipynb", "pages/meep_to_gds.ipynb", "pages/mmis.ipynb", "pages/mzi.ipynb", "pages/mzi_layout.ipynb", "pages/open_source.md", "pages/optical_io.md", "pages/optimization.ipynb", "pages/passive_components.md", "pages/pdks.ipynb", "pages/phase_shifters.ipynb", "pages/phase_shifters_heaters.ipynb", "pages/phase_shifters_pn.ipynb", "pages/photonic_devices.ipynb", "pages/python.md", "pages/ray_optic_model.ipynb", "pages/ring_resonators.ipynb", "pages/scattering_parameters.ipynb", "pages/shape_optimization.ipynb", "pages/software.md", "pages/vscode.md", "pages/waveguides.ipynb", "pages/waveguides_mode_solvers.ipynb", "pages/waveguides_modelling.ipynb", "pages/waveguides_polarization.ipynb", "pages/waveguides_tir.ipynb", "pages/wsl.md", "pages/y_branch.ipynb"], "titles": ["CamachoLab Photonics Bootcamp", "Adjoint optimization", "Advanced Components", "Analyzing circuits", "Compact models", "<no title>", "Components", "Credits", "Directional couplers", "Design rule checks", "Edge couplers", "GDS to Meep", "Git (and GitHub)", "Glossary", "Grating couplers", "Introduction", "KLayout", "Laboratory Tools", "Defining the layer stack", "Meep to GDS", "Multimode Interferometers (MMIs)", "Mach-Zehnder interferometers", "Laying out a Mach-Zehnder Interferometer", "Open source software", "Optical I/O", "Optimization and inverse design", "Passive Components", "Process design kits", "Phase Shifters", "Heaters", "PN and PIN Junctions", "What are photonic devices?", "Python", "Improving the Ray-optic Model", "Ring Resonators", "Scattering parameters", "Shape optimization", "Software", "Visual Studio Code", "Waveguides", "Waveguide modes", "Modelling Wavegudies", "Polarization", "Total Internal Reflection", "WSL (Windows-only)", "Y-Branches"], "terms": {"sponsor": 0, "googl": [0, 7, 15, 23], "thi": [0, 3, 6, 8, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 40, 41, 42, 43, 44, 45], "intend": [0, 11, 23], "those": [0, 6, 21, 23, 45], "experi": [0, 21, 30, 37, 43], "electr": [0, 6, 8, 13, 14, 15, 18, 20, 21, 26, 28, 29, 30, 31, 33, 34, 39, 40, 42, 43], "engin": [0, 15, 21, 23, 31], "ar": [0, 3, 6, 8, 9, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 23, 26, 27, 28, 29, 30, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43, 44, 45], "interest": [0, 15, 21], "learn": [0, 3, 6, 22, 27, 32], "about": [0, 6, 8, 17, 21, 23, 32, 33, 34, 35, 37, 38, 41, 42], "integr": [0, 13, 15, 16, 18, 27, 31, 38], "applic": [0, 8, 13, 21, 23, 29, 30, 32, 35], "cours": [0, 8, 12, 13, 15, 23, 26, 32, 37, 38, 43], "wa": [0, 21, 35, 44], "creat": [0, 6, 8, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 31, 32, 33, 34, 35, 37, 40, 43, 44, 45], "collabor": [0, 12, 15, 23], "between": [0, 11, 13, 15, 20, 21, 28, 29, 30, 31, 33, 34, 35, 41, 43, 45], "brigham": 0, "young": 0, "univers": [0, 18], "s": [0, 3, 6, 12, 13, 14, 15, 16, 18, 22, 23, 28, 29, 30, 31, 32, 34, 38, 40, 41, 42, 43, 44, 45], "skywat": 0, "project": [0, 12, 23], "introduct": [0, 21], "credit": 0, "open": [0, 6, 8, 12, 13, 14, 15, 16, 17, 20, 27, 32, 34, 37, 38, 41, 44], "sourc": [0, 6, 11, 12, 13, 15, 16, 17, 18, 19, 20, 31, 32, 34, 37, 38], "softwar": [0, 6, 12, 13, 15, 16, 17, 18, 27, 32, 35], "what": [0, 6, 8, 11, 12, 21, 22, 23, 42, 43], "defin": [0, 3, 6, 8, 9, 11, 14, 20, 21, 34, 35, 40, 41, 43], "layer": [0, 6, 8, 13, 20, 22, 27, 35, 39, 45], "stack": [0, 13, 27, 32], "compon": [0, 8, 11, 13, 14, 15, 18, 19, 20, 22, 23, 24, 31, 33, 35, 40, 42, 45], "waveguid": [0, 6, 13, 14, 18, 20, 21, 26, 28, 29, 30, 31, 33, 34, 35, 42, 45], "optic": [0, 6, 14, 18, 20, 26, 29, 30, 31, 34, 42, 43, 45], "i": [0, 6, 8, 11, 14, 20, 21, 28, 32, 34, 35, 37, 43], "o": [0, 6], "optim": [0, 3, 14, 21, 31, 32, 35, 45], "invers": [0, 31, 43], "compact": [0, 13, 15, 27, 45], "model": [0, 3, 13, 15, 18, 27, 35, 40, 43], "rule": [0, 13, 27, 32], "check": [0, 11, 12, 13, 18, 31, 35], "process": [0, 6, 8, 11, 13, 18, 29, 32, 35, 41], "kit": [0, 13], "mach": [0, 20, 31], "zehnder": [0, 20, 31], "interferomet": [0, 6, 13, 26, 31], "lai": [0, 6, 16], "out": [0, 6, 8, 11, 13, 14, 16, 20, 21, 32, 33, 34, 35, 40, 42, 45], "advanc": 0, "phase": [0, 8, 20, 21, 31, 33, 35, 45], "shifter": [0, 21, 31], "analyz": [0, 15, 34], "glossari": 0, "repositori": [0, 12, 37], "pdk": [0, 6, 9, 13, 18, 21, 22, 27, 31], "document": [0, 15, 17, 21, 34, 35], "In": [3, 6, 8, 11, 12, 14, 15, 18, 20, 21, 22, 23, 26, 28, 29, 30, 31, 32, 34, 35, 37, 38, 40, 45], "section": [3, 6, 14, 16, 18, 24, 26, 31, 32, 33, 35, 37, 41, 42, 44], "we": [3, 6, 8, 12, 13, 14, 15, 17, 18, 21, 22, 23, 24, 26, 27, 28, 31, 32, 33, 34, 35, 37, 38, 40, 41, 42, 43, 44, 45], "how": [3, 6, 8, 11, 13, 15, 18, 20, 21, 22, 26, 32, 33, 34, 37, 40, 41, 42, 43, 44], "interpret": [3, 32], "data": [3, 13, 18, 22, 35, 42], "collect": [3, 21, 22], "from": [3, 8, 11, 12, 13, 14, 15, 16, 18, 19, 20, 22, 28, 29, 30, 31, 32, 33, 34, 35, 38, 40, 42, 44, 45], "our": [3, 6, 17, 21, 22, 27, 30, 33, 34, 35, 37, 40], "whenev": 3, "obtain": [3, 29], "import": [3, 8, 11, 14, 18, 19, 20, 21, 22, 23, 32, 33, 34, 40, 42, 43, 45], "rememb": [3, 34], "renspons": 3, "chang": [3, 6, 8, 12, 13, 14, 20, 21, 22, 23, 28, 29, 30, 31, 32, 33, 34, 35, 40, 41, 43, 45], "wavelength": [3, 8, 14, 18, 20, 21, 31, 33, 34, 35, 40, 41], "well": [3, 6, 11, 12, 16, 30, 31, 32, 33, 42], "being": [3, 8, 16, 20, 21, 23, 31, 33, 45], "test": [3, 11, 12, 15, 17, 18, 22, 32, 35, 42], "order": [3, 6, 13, 14, 26, 29, 31, 33, 35, 37, 40, 45], "properli": 3, "must": [3, 6, 8, 11, 13, 18, 21, 23, 29, 34, 45], "first": [3, 8, 11, 12, 14, 21, 22, 26, 28, 34, 35, 40, 42, 43, 44], "deemb": 3, "depend": [3, 8, 18, 21, 23, 28, 29, 32, 40, 41, 42, 43], "can": [3, 6, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45], "done": [3, 6, 19, 31, 32, 35, 38], "varieti": [3, 6, 14, 20], "wai": [3, 6, 15, 20, 21, 23, 28, 29, 31, 32, 33, 34, 35, 37, 38, 41, 43], "includ": [3, 6, 11, 12, 13, 15, 16, 17, 18, 20, 21, 23, 27, 28, 29, 30, 31, 32, 38, 40, 41, 44], "consid": [3, 8, 14, 20, 21, 30, 33, 41, 42, 45], "follow": [3, 6, 13, 14, 19, 21, 22, 26, 30, 32, 33, 34, 37, 41, 43, 44], "via": [3, 12, 17, 18, 32, 34, 39, 44], "sweep": [3, 27], "numpi": [3, 6, 8, 12, 14, 21, 32, 34, 35, 40, 43], "np": [3, 6, 8, 14, 18, 34, 40, 43], "matplotlib": [3, 6, 12, 14, 18, 21, 32, 34, 35, 40, 43, 45], "pyplot": [3, 14, 21, 34, 35, 40, 43, 45], "plt": [3, 14, 21, 34, 35, 40, 43, 45], "poly_ord": 3, "4": [3, 6, 8, 20, 21, 22, 32, 34, 35, 40], "load": [3, 11, 16, 34], "file": [3, 8, 11, 12, 13, 14, 15, 16, 18, 19, 20, 22, 23, 31, 32, 34, 35, 37, 38, 44], "oscope_data": 3, "npz": 3, "power": [3, 8, 13, 16, 20, 21, 29, 31, 34, 35], "here": [3, 6, 8, 14, 16, 18, 23, 24, 26, 32, 34, 35, 37, 38, 41, 44, 45], "raw": 3, "oscilloscop": 3, "plot": [3, 6, 8, 11, 18, 21, 22, 32, 35, 40, 43, 45], "titl": 3, "xlabel": [3, 8], "nm": [3, 14, 18, 21], "ylabel": [3, 8], "dbm": 3, "show": [3, 6, 11, 18, 20, 21, 27, 34, 35, 40, 43, 45], "The": [3, 6, 8, 11, 13, 14, 15, 18, 19, 20, 22, 23, 26, 28, 29, 30, 32, 33, 34, 35, 37, 40, 41, 42, 43, 44, 45], "parabol": 3, "shape": [3, 13, 24, 31, 35, 40, 41, 45], "graph": [3, 34, 42], "due": [3, 21, 26, 33, 45], "respons": [3, 21, 45], "which": [3, 6, 8, 11, 12, 13, 14, 20, 21, 22, 23, 29, 30, 31, 32, 33, 34, 35, 37, 39, 40, 42, 43, 44, 45], "obfusc": 3, "try": [3, 22], "remov": [3, 8, 14, 20, 29, 30, 31, 32, 34], "effect": [3, 8, 14, 29, 30, 40], "parabola": 3, "subtract": [3, 6], "function": [3, 6, 8, 11, 14, 19, 20, 21, 22, 27, 32, 34, 35, 40, 41, 43], "want": [3, 6, 11, 12, 19, 20, 21, 22, 23, 32, 34, 35, 41, 44, 45], "case": [3, 8, 14, 16, 18, 21, 22, 28, 32, 43, 45], "def": [3, 6, 43, 45], "model_parabola": 3, "x": [3, 6, 8, 11, 20, 35, 40, 42, 43, 45], "b": [3, 6, 8, 43], "c": [3, 6, 8, 11, 21, 22, 32], "d": [3, 7, 15, 32, 35, 41, 42, 43, 44], "e": [3, 6, 8, 11, 12, 18, 21, 28, 31, 34, 35, 37, 40, 41, 45], "return": [3, 6, 11, 19, 21, 35, 40, 43, 45], "3": [3, 8, 11, 14, 15, 18, 19, 20, 21, 22, 23, 27, 32, 34, 39, 40, 43, 45], "2": [3, 6, 8, 11, 14, 15, 18, 19, 20, 21, 22, 27, 32, 33, 34, 40, 43, 45], "now": [3, 6, 21, 22, 24, 32, 33, 34, 35, 38, 40, 45], "just": [3, 6, 8, 11, 13, 14, 15, 17, 21, 22, 28, 32, 35, 40, 45], "need": [3, 6, 11, 12, 21, 22, 23, 32, 35, 37, 41, 42, 44, 45], "paramet": [3, 6, 8, 20, 21, 22, 31, 34], "do": [3, 6, 15, 18, 19, 22, 23, 35, 37, 38, 42], "curve_fit": 3, "scipi": [3, 12, 32], "take": [3, 6, 8, 11, 13, 19, 21, 22, 29, 31, 34, 35, 42, 43, 44], "y": [3, 6, 8, 11, 20, 21, 22, 26, 28, 35, 40, 42, 43], "an": [3, 6, 8, 9, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 23, 29, 30, 31, 32, 33, 34, 40, 41, 42, 43, 45], "initi": [3, 6, 8, 21], "guess": 3, "It": [3, 6, 8, 11, 13, 14, 15, 16, 18, 19, 21, 23, 30, 32, 33, 34, 35, 38, 40, 41, 42, 44], "covari": 3, "matrix": [3, 21, 35], "start": [3, 6, 21, 32, 33, 34, 35, 44], "end": [3, 8, 13, 14, 21, 23, 32, 35, 41, 43, 45], "argmax": 3, "1560": 3, "1580": 3, "help": [3, 6, 9, 12, 13, 16, 18, 21, 22, 27, 30, 33], "term": [3, 8, 13, 21, 35], "speed": [3, 8, 29, 30, 31, 41], "accuraci": 3, "add": [3, 6, 8, 18, 19, 20, 22, 32, 35, 41, 43], "especi": [3, 11, 23, 29, 30, 32], "true": [3, 8, 11, 14, 18, 20, 21, 34, 35, 40, 41, 43, 45], "more": [3, 6, 8, 11, 15, 16, 17, 18, 20, 21, 23, 28, 30, 31, 32, 33, 34, 35, 38, 40, 41, 42, 45], "complic": [3, 6, 33, 34, 41, 45], "initial_guess": 3, "1": [3, 6, 8, 11, 14, 15, 18, 19, 20, 21, 23, 27, 32, 33, 34, 39, 40, 41, 43, 45], "optimal_paramet": 3, "covariance_matrix": 3, "label": [3, 11, 18, 21, 22, 43], "legend": [3, 43], "simpli": [3, 6, 14, 21, 32, 33, 34, 35], "offset": [3, 30], "make": [3, 6, 8, 13, 19, 20, 21, 22, 23, 24, 27, 30, 31, 32, 35, 38, 45], "easier": [3, 6, 38, 45], "see": [3, 8, 11, 13, 14, 18, 20, 21, 22, 23, 27, 28, 30, 34, 35, 40, 42, 45], "power_correct": 3, "max": [3, 35], "correct": [3, 11], "ones": [3, 6, 32], "len": [3, 40], "averag": [3, 14, 41], "gdsfactori": [6, 8, 11, 13, 15, 19, 20, 21, 22, 32, 34, 35, 40, 45], "them": [6, 8, 11, 15, 20, 21, 22, 23, 26, 30, 31, 32, 35, 37], "togeth": [6, 8, 12, 18, 31, 32, 33], "larger": [6, 8, 13, 15, 21, 31, 45], "design": [6, 13, 14, 15, 16, 18, 19, 20, 22, 23, 24, 26, 34, 35], "simpl": [6, 15, 18, 21, 22, 29, 31, 32, 39, 41, 43], "complex": [6, 30, 31, 32, 35], "construct": [6, 13, 14, 20, 21, 28, 31, 33, 34, 35, 45], "exampl": [6, 11, 12, 13, 15, 18, 19, 20, 21, 23, 26, 27, 28, 31, 32, 35, 40, 41], "contain": [6, 11, 13, 18, 19, 21, 31, 32, 33, 40], "other": [6, 11, 12, 13, 17, 18, 20, 21, 23, 28, 29, 30, 31, 32, 33, 34, 38, 40, 41, 42, 45], "thei": [6, 9, 11, 12, 13, 15, 18, 20, 21, 23, 31, 32, 33, 35, 41, 44, 45], "usual": [6, 9, 13, 15, 18, 31], "have": [6, 8, 11, 12, 13, 14, 15, 18, 20, 21, 23, 27, 28, 30, 31, 32, 33, 34, 35, 37, 38, 40, 41, 42, 44, 45], "allow": [6, 8, 11, 12, 13, 15, 16, 21, 23, 31, 35, 38], "you": [6, 8, 9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 27, 31, 32, 34, 35, 37, 38, 40, 43, 44, 45], "factori": [6, 27], "when": [6, 8, 11, 14, 16, 18, 21, 23, 28, 30, 31, 32, 34, 35, 40, 41, 42, 43, 45], "align": [6, 8], "each": [6, 8, 11, 13, 14, 16, 17, 18, 20, 21, 29, 31, 32, 34, 40, 41, 43, 45], "taken": [6, 18, 35], "care": [6, 35, 41, 42], "automat": [6, 16, 17, 18], "made": [6, 13, 23, 24, 39, 40, 41], "up": [6, 8, 11, 12, 13, 14, 18, 20, 21, 23, 29, 31, 32, 34, 35, 38, 41, 44, 45], "option": [6, 11, 15, 38], "most": [6, 8, 11, 12, 14, 16, 18, 19, 23, 29, 32, 33, 34, 35, 37, 39, 41, 42, 45], "basic": [6, 14, 16, 20, 21, 22, 32, 35, 43], "build": [6, 13, 21, 26, 31, 33, 34, 44], "object": [6, 8, 18, 19, 21, 33, 35, 40], "gf": [6, 11, 20, 21, 22, 45], "seri": [6, 15, 32], "conveni": [6, 21, 27], "visual": [6, 13, 14, 18, 19, 21, 33, 37, 40], "jupyt": [6, 15, 35, 38], "notebook": [6, 11, 15, 34], "For": [6, 11, 13, 17, 18, 20, 21, 22, 27, 28, 29, 30, 31, 32, 34, 35, 37, 41, 43], "plot_holoview": 6, "plot_jupyt": 6, "plot_klayout": 6, "plot_matplotlib": 6, "plot_netlist": 6, "plot_netlist_flat": 6, "plot_widget": 6, "some": [6, 8, 11, 13, 14, 16, 17, 18, 21, 23, 26, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 40, 42, 45], "alias": 6, "default": [6, 21, 22, 35, 37, 38, 44, 45], "could": [6, 11, 13, 18, 20, 21, 33, 35, 42], "keyword": [6, 11, 21], "argument": [6, 11, 21, 22, 43], "below": [6, 8, 11, 14, 18, 19, 20, 21, 22, 23, 28, 33, 34, 35, 40, 42, 43], "format": [6, 8, 14, 15, 16, 17, 20, 21, 34, 35], "ll": [6, 12, 15, 21, 22, 23, 32, 34, 35, 37, 40, 41, 42, 44], "explicit": [6, 21, 23], "But": [6, 23, 35], "recommend": [6, 8, 12, 17, 32, 37, 38, 44], "displai": [6, 16, 34, 43], "interact": [6, 8, 14, 26, 32, 33, 35, 37, 41], "klayout": [6, 18, 22, 27, 31, 35, 37, 44], "widget": 6, "lowest": [6, 13], "block": [6, 8, 13, 14, 19, 21, 26, 31, 34, 35, 44, 45], "list": [6, 11, 13, 19, 21, 22, 31, 32, 35, 41], "vertic": [6, 19, 22, 31, 40, 43], "adjac": 6, "pair": [6, 18], "line": [6, 8, 12, 13, 14, 17, 20, 31, 32, 33, 34, 35, 40, 42, 43, 44], "doe": [6, 8, 21, 23, 33, 42], "cross": [6, 8, 14, 15, 16, 18, 40, 41], "ani": [6, 8, 11, 13, 14, 18, 22, 23, 27, 30, 32, 33, 35, 37, 38, 40, 43, 45], "within": [6, 11, 13, 16, 20, 21, 28, 29, 30, 31, 33, 34, 35, 40, 41], "although": [6, 13, 18, 31, 37], "overlap": [6, 8, 34], "parallel": [6, 8, 11, 40, 42], "lie": 6, "upon": [6, 33, 43], "point": [6, 13, 33, 40], "exist": [6, 8, 13, 18, 23, 31, 32, 35, 40], "geometri": [6, 8, 11, 13, 14, 18, 19, 20, 22, 33, 34, 40, 41, 45], "instead": [6, 11, 13, 14, 20, 21, 23, 30, 31, 32, 35, 41], "new": [6, 13, 15, 16, 18, 28, 31, 32, 44], "one": [6, 8, 11, 13, 14, 15, 18, 20, 21, 22, 23, 28, 29, 30, 31, 32, 34, 37, 40, 41, 42, 45], "That": [6, 23, 42], "parameter": [6, 21, 31, 41], "call": [6, 8, 18, 20, 21, 29, 30, 31, 32, 33, 34, 35, 40, 42, 43], "even": [6, 8, 31, 32, 41], "hierarch": [6, 13], "nest": 6, "save": [6, 8, 11, 13, 14, 19, 20, 32, 34], "memori": [6, 13, 31], "becaus": [6, 8, 12, 14, 18, 20, 21, 23, 29, 30, 31, 34, 35, 41, 42, 43, 45], "core": [6, 8, 11, 18, 33, 39, 40, 41, 43], "onli": [6, 11, 12, 13, 15, 17, 20, 21, 23, 26, 32, 33, 34, 35, 37, 41, 42, 45], "onc": [6, 16, 31, 32, 35, 42], "referenc": 6, "mani": [6, 8, 11, 12, 13, 15, 17, 21, 22, 23, 27, 29, 31, 32, 34, 41, 45], "time": [6, 8, 11, 12, 13, 14, 16, 20, 21, 23, 28, 29, 30, 31, 32, 33, 34, 35, 41, 43, 44, 45], "These": [6, 8, 11, 12, 13, 18, 21, 23, 31, 33, 35, 42, 43], "place": [6, 8, 13, 20, 29, 31, 37], "anywher": [6, 32], "independ": [6, 29], "all": [6, 8, 12, 13, 14, 15, 17, 18, 20, 21, 22, 23, 27, 31, 32, 33, 34, 35, 37, 38, 41, 42, 43, 45], "appli": [6, 16, 18, 30, 35], "base": [6, 8, 12, 17, 20, 23, 29, 30, 31, 32, 35, 43, 45], "instanc": [6, 11, 18, 21, 31, 32], "had": [6, 11, 21, 31], "same": [6, 8, 11, 14, 15, 17, 18, 20, 21, 23, 29, 30, 31, 32, 34, 45], "taper": [6, 14, 20, 33], "its": [6, 8, 11, 17, 18, 21, 22, 23, 29, 31, 32, 34, 35, 41, 42], "input": [6, 8, 13, 20, 21, 22, 31, 34, 35, 45], "output": [6, 8, 11, 13, 14, 20, 21, 31, 34, 35, 43, 45], "repeatedli": 6, "would": [6, 11, 13, 14, 18, 20, 21, 23, 31, 33, 35, 44], "good": [6, 21, 35], "requir": [6, 8, 18, 21, 23, 27, 29, 30, 31, 32], "higher": [6, 18, 28, 29, 30, 33, 34, 35, 40, 41, 45], "level": [6, 14, 21, 32], "By": [6, 11, 14, 21, 30], "draw": [6, 22], "bank": 6, "without": [6, 13, 21, 23, 27, 29, 30, 31, 32, 33], "much": [6, 8, 11, 21, 33, 34, 35, 38], "pattern": [6, 14, 18, 21, 31, 33], "where": [6, 8, 11, 14, 20, 21, 23, 29, 32, 34, 35, 42, 45], "across": [6, 13, 21], "compos": [6, 31], "interconnect": [6, 13], "compound": 6, "intermedi": 6, "specifi": [6, 8, 11, 13, 14, 19, 32, 35, 41], "direct": [6, 13, 14, 19, 20, 26, 31, 33, 34, 35, 40, 42, 43, 45], "face": [6, 13], "either": [6, 11, 13, 31, 42, 45], "also": [6, 8, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 28, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 42, 43, 44, 45], "width": [6, 8, 13, 14, 18, 19, 20, 21, 30, 31, 34, 40, 41], "attach": [6, 11, 13], "your": [6, 8, 9, 11, 12, 13, 14, 16, 18, 19, 21, 23, 27, 31, 32, 34, 35, 37, 38, 42, 44], "convei": 6, "inform": [6, 13, 15, 17, 18, 21, 23, 27, 28, 30, 31, 35, 38], "otherwis": [6, 21, 34], "seen": [6, 8, 11, 23, 34], "A": [6, 8, 13, 14, 18, 20, 21, 23, 27, 29, 30, 31, 32, 34, 37, 38, 39, 40, 41, 42, 45], "add_label": 6, "pass": [6, 11, 21, 28, 31, 32, 35], "text": [6, 8, 18, 21, 23, 27, 32, 34, 38], "locat": [6, 14, 19, 44], "should": [6, 8, 11, 15, 18, 21, 27, 35, 38, 45], "shown": [6, 8, 19, 34, 35], "posit": [6, 18, 21, 31, 34, 35, 40, 42], "center": [6, 8, 14, 19, 20, 21, 30, 34, 35, 45], "passiv": [6, 24], "sever": [6, 8, 11, 16, 28, 29, 30, 32, 38, 41], "than": [6, 8, 14, 18, 20, 23, 28, 30, 31, 33, 43, 45], "mai": [6, 8, 11, 12, 13, 18, 20, 21, 23, 28, 29, 30, 31, 35], "part": [6, 8, 9, 11, 21, 22, 23, 27, 35, 39, 40, 42, 45], "track": [6, 12, 32, 35], "number": [6, 8, 11, 13, 18, 20, 23, 32, 34, 35, 40], "As": [6, 8, 11, 14, 15, 18, 21, 23, 29, 30, 35, 42], "let": [6, 13, 21, 22, 28, 33, 34, 35, 40, 41, 42, 43], "tupl": [6, 18, 21], "coordin": 6, "circular": 6, "fashion": [6, 13], "repeat": 6, "last": [6, 22], "infer": 6, "close": [6, 8, 34], "script": [6, 8, 18, 20, 31, 32, 34, 44], "complet": [6, 8, 12, 13, 15, 18, 29, 34, 35, 37, 45], "run": [6, 8, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 27, 29, 32, 34, 40, 44, 45], "final": [6, 21, 22, 35], "t_length": 6, "10": [6, 8, 18, 19, 21, 22, 32, 34, 35, 40, 43, 45], "t_width_in": 6, "0": [6, 8, 11, 14, 18, 19, 20, 21, 22, 32, 33, 34, 35, 40, 42, 43, 45], "5": [6, 8, 11, 14, 19, 20, 21, 22, 34, 35, 40, 43, 45], "t_width_out": 6, "add_polygon": 6, "int": [6, 40], "assum": [6, 8, 14, 20, 21, 34, 37, 44, 45], "ve": [6, 15, 31, 32, 35], "provid": [6, 12, 21, 23, 32, 37, 38], "datatyp": [6, 18], "poli": 6, "45": [6, 8, 14, 18, 19, 20, 34, 45], "move": [6, 12, 34, 35, 44], "come": [6, 8, 11, 23, 30, 33, 35, 41, 45], "manipul": [6, 19, 31], "easili": [6, 11, 22, 32, 44, 45], "differ": [6, 8, 11, 13, 14, 15, 19, 20, 21, 22, 23, 24, 28, 31, 32, 34, 39, 40, 41, 42, 43, 44, 45], "combin": [6, 8, 13, 20, 21, 28, 34], "mean": [6, 8, 11, 21, 22, 23, 26, 31, 32, 34, 35, 42, 45], "merg": [6, 12], "xor": 6, "To": [6, 8, 11, 12, 14, 15, 20, 24, 29, 32, 34, 35, 38, 42, 44], "two": [6, 8, 11, 13, 18, 20, 21, 23, 28, 29, 30, 31, 33, 34, 39, 42, 43, 45], "group": [6, 18, 40], "piec": [6, 13], "involv": [6, 31], "itself": [6, 21, 23, 29, 32, 34, 35, 40, 41], "target": [6, 21], "result": [6, 8, 11, 13, 14, 15, 20, 21, 30, 31, 34, 43], "components_a": 6, "components_b": 6, "accept": 6, "equival": [6, 8], "t": [6, 8, 14, 15, 17, 18, 20, 21, 22, 29, 31, 32, 34, 35, 37, 38, 40, 41, 42, 43, 44, 45], "linspac": [6, 21], "pi": [6, 8, 20, 21, 34], "100": [6, 8, 35], "co": [6, 21, 43], "sin": [6, 8, 14, 43], "circl": [6, 34], "triangl": 6, "pacman": 6, "precis": [6, 13, 20, 21, 29], "1e": 6, "6": [6, 8, 21, 35], "origin": [6, 23, 32, 34], "boolean_subtract": 6, "add_ref": [6, 21, 45], "talk": [6, 34, 41], "later": [6, 21, 33], "dimens": [6, 13, 42], "redefin": 6, "everi": [6, 11, 21, 35, 45], "write": [6, 11, 23, 32, 38], "addit": [6, 11, 28], "calcul": [6, 21, 34, 35, 40, 41, 43], "cach": 6, "correspond": [6, 11, 18, 21, 29, 31, 33, 41, 43], "so": [6, 8, 11, 13, 18, 20, 21, 22, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 41, 43, 45], "subsequ": 6, "rebuild": 6, "enabl": [6, 8, 17, 23, 28, 35], "decor": 6, "If": [6, 8, 12, 14, 19, 20, 21, 23, 27, 31, 32, 34, 35, 37, 38, 42, 43, 44, 45], "re": [6, 13, 15, 18, 21, 23, 32, 35, 37, 38], "develop": [6, 12, 13, 23, 31, 38], "modifi": [6, 11, 21, 23, 31, 35], "content": [6, 23], "again": [6, 30, 32, 35], "code": [6, 11, 12, 13, 15, 16, 18, 19, 21, 22, 23, 32, 34, 35, 37, 43, 44], "won": [6, 15, 18, 21, 32, 35], "clear": [6, 33], "clear_cach": 6, "librari": [6, 21, 23, 27, 32, 41, 45], "reusabl": 6, "circuit": [6, 8, 13, 14, 15, 16, 17, 19, 20, 21, 26, 27, 34, 37, 39, 41, 45], "anoth": [6, 8, 11, 18, 20, 21, 23, 28, 30, 35, 42], "fantast": 6, "benefit": [6, 37], "type": [6, 18, 29, 30, 32, 35, 45], "hint": 6, "valid": [6, 9, 13, 35], "name": [6, 11, 18, 19, 21, 22, 23, 30, 32, 35, 43], "abl": [6, 8, 12, 20, 31, 32], "taper_compon": 6, "length": [6, 13, 14, 20, 21, 22, 28, 29, 31, 34, 45], "float": [6, 21], "width_in": 6, "width_out": 6, "like": [6, 8, 11, 13, 14, 15, 17, 18, 19, 21, 23, 28, 29, 30, 32, 35, 37, 38, 39, 40, 41, 43, 45], "quickli": 6, "rectangl": [6, 40], "ellips": [6, 14], "ring": [6, 13, 22, 26, 27], "bend_circular": 6, "bend_eul": 6, "know": [6, 15, 34, 35, 37, 42], "outward": 6, "awai": [6, 8, 29], "match": [6, 8, 11, 20, 34, 35], "respect": [6, 8, 34, 41, 42, 43], "expand": [6, 28, 29], "earlier": 6, "note": [6, 8, 14, 20, 21, 22, 23, 34, 35, 44], "common": [6, 13, 16, 18, 20, 21, 26, 29, 30, 32, 41, 45], "toward": [6, 35], "o1": [6, 11, 20, 21, 45], "orient": [6, 22, 42], "180": [6, 8], "port_typ": 6, "o2": [6, 11, 20, 21, 45], "add_port": [6, 19], "And": [6, 15, 21], "convent": [6, 13, 21, 30, 31, 42], "clock": 6, "wise": 6, "bottom": [6, 38], "left": [6, 8, 14, 18, 34, 35, 38, 43, 45], "corner": [6, 38], "prefix": 6, "index": [6, 8, 14, 18, 19, 20, 21, 26, 28, 29, 30, 32, 33, 34, 35, 37, 39, 40, 43, 45], "previous": [6, 18], "essenti": [6, 9, 16, 22], "pointer": [6, 32], "There": [6, 8, 11, 13, 18, 21, 22, 29, 32, 34, 35, 38, 41, 45], "limit": [6, 20], "gdsii": [6, 35], "specif": [6, 8, 11, 14, 17, 18, 23, 32, 35, 38, 43], "built": [6, 23, 27, 32, 33, 40], "around": [6, 12, 22, 32, 34, 35], "previou": [6, 21, 32], "2x2": [6, 11, 20, 35], "multimod": [6, 26, 45], "mmi": [6, 11, 13, 19, 26, 35], "wide": [6, 13], "therefor": [6, 21, 23, 29, 31, 32, 37, 45], "side": [6, 30, 34, 41, 45], "four": [6, 34, 35], "redraw": 6, "individu": [6, 44], "right": [6, 8, 14, 23, 34, 35, 43, 44, 45], "off": [6, 20, 31, 32, 35, 43, 45], "bat": 6, "mmi2x2": [6, 11, 20, 35], "gap": [6, 22, 34, 45], "125": 6, "determin": [6, 8, 14, 20, 40, 41, 43, 45], "taper_length": [6, 19], "taper_width_in": 6, "taper_width_out": 6, "taper_c": 6, "bodi": [6, 20], "rect": 6, "size": [6, 8, 13, 14, 19, 20, 23, 31, 33, 34, 35, 45], "none": [6, 40, 43, 45], "port_width": 6, "port_cent": 6, "o3": [6, 11, 20, 45], "o4": [6, 11, 20], "mmi_ref": 6, "shift": [6, 21, 29], "shorthand": [6, 21], "taper_ref": 6, "_": 6, "rang": [6, 13, 14, 18, 29, 35], "enumer": [6, 43], "destin": [6, 45], "alon": [6, 21, 40], "expos": [6, 21, 31], "ref": 6, "f": [6, 8, 15, 35, 40, 43], "auto_rename_port": 6, "consist": [6, 18, 21, 34, 39], "simpler": 6, "find": [6, 8, 13, 20, 22, 27, 34, 38], "math": [6, 35], "fit": [6, 31], "yourself": 6, "often": [6, 11, 23, 31, 32, 34, 35, 41, 45], "swap": [6, 21, 33], "redo": 6, "inlin": [6, 15], "rect_ref": 6, "figur": [6, 28, 30, 35, 39, 43, 45], "put": [6, 8, 15, 19, 20, 33], "manufactur": [6, 9, 11, 13, 15, 20, 21, 29, 35, 39, 41, 45], "share": [6, 8, 14, 34], "tool": [6, 12, 13, 15, 16, 18, 27, 31, 32, 35, 37, 40, 44], "potenti": [6, 23, 31], "lumer": 6, "fix": [6, 22, 23, 32], "write_gd": [6, 19, 22], "suppli": [6, 29], "path": [6, 8, 12, 14, 16, 18, 21, 31, 34, 44], "current": [6, 29, 33], "directori": [6, 8, 14, 20, 34], "sometim": [6, 8, 11, 14, 32], "necessari": [6, 11, 13, 32, 33, 35, 40], "perhap": [6, 23], "meep": [6, 8, 13, 14, 15, 20, 32, 34, 40, 45], "Or": [6, 34], "were": [6, 11, 14, 31, 32, 33, 34, 42], "given": [6, 8, 11, 14, 21, 32, 35, 41, 43], "fab": [6, 18, 31, 45], "while": [6, 8, 12, 16, 18, 21, 23, 26, 30, 31, 32, 33, 34, 35, 37, 38, 42, 43, 45], "ha": [6, 8, 11, 14, 16, 18, 21, 22, 23, 31, 32, 33, 34, 35, 39, 40, 42], "convert": [6, 11, 13, 31, 43], "step": [6, 8, 11, 15, 18, 22, 24, 27, 31, 34, 44], "after": [6, 19, 21, 32, 35], "convers": 6, "get": [6, 8, 11, 12, 18, 19, 20, 21, 22, 31, 34, 35, 43, 44, 45], "branch": [6, 21, 26], "siepic": [6, 21, 22, 27], "ebeam": [6, 21, 27], "ebeam_y_1550": [6, 22], "github": [6, 15, 17, 21, 34], "import_gd": 6, "filenam": [6, 45], "splitter": [6, 11, 21, 22, 31, 45], "read": [6, 8, 16, 18, 21, 23, 31, 32, 35], "manual": [6, 31, 41, 44], "hover": 6, "mous": 6, "examin": [6, 34], "themselv": 6, "midpoint": 6, "7": [6, 8, 32, 35], "75": [6, 8, 21, 40], "separ": [6, 21], "straight": [6, 33, 35, 42, 45], "bend": [6, 22, 31], "radiu": [6, 22, 34], "recal": [6, 21], "canva": 6, "straight_ref": 6, "bend_ref": 6, "pick": 6, "recreat": [6, 32], "racetrack": [6, 34], "coupler": [6, 11, 13, 18, 20, 21, 22, 24, 26, 31, 33, 34, 45], "camacholab": [7, 15], "sequoia": [7, 15, 18], "ploeg": [7, 15], "ph": 7, "candid": 7, "ryan": [7, 15], "camacho": [7, 15], "associ": [7, 13], "professor": 7, "elis": 7, "bangert": 7, "undergradu": 7, "research": 7, "joel": 7, "kartchner": 7, "chandler": 7, "parkin": 7, "noah": 7, "bailei": 7, "kevin": 7, "richin": 7, "small": [8, 13, 16, 29, 30, 38], "transfer": [8, 29, 31, 34], "light": [8, 11, 13, 14, 20, 21, 26, 28, 29, 31, 33, 34, 35, 39, 40, 41, 42], "multipl": [8, 11, 13, 15, 18, 34, 42], "eigenmod": [8, 20, 34], "mode": [8, 13, 20, 21, 31, 34, 35, 41, 42, 45], "field": [8, 11, 14, 20, 21, 31, 33, 35, 40, 42, 44, 45], "outsid": [8, 23, 26, 35, 40, 43], "evanesc": [8, 33, 40], "second": [8, 11, 14, 21, 28, 29, 32, 40, 43, 45], "propag": [8, 21, 28, 33, 34, 35, 40, 42], "us": [8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43, 44, 45], "photon": [8, 11, 13, 14, 15, 16, 17, 18, 20, 21, 26, 27, 30, 32, 33, 34, 35, 39, 41, 42, 44, 45], "amount": [8, 14, 21, 29, 32, 35], "thing": [8, 15, 18, 32, 35, 37, 38, 40, 45], "region": [8, 18, 20, 28, 30, 31, 35, 45], "enough": [8, 31, 37, 43], "incid": [8, 11, 43], "distanc": [8, 20, 34, 39], "materi": [8, 14, 15, 18, 19, 20, 23, 26, 28, 29, 30, 31, 33, 34, 35, 39, 40, 41, 43, 45], "layout": [8, 11, 15, 16, 21, 31, 32, 34, 37], "produc": [8, 21], "g": [8, 12, 15, 18, 31, 41, 43, 45], "50": [8, 13, 21, 45], "25": [8, 14, 18, 19, 21, 35, 43], "fraction": [8, 20, 45], "geometr": [8, 13, 14, 20, 27, 31, 34], "describ": [8, 14, 21, 28, 30, 31, 33, 34, 35, 37, 42], "kappa": [8, 34], "frac": [8, 14, 21, 34, 41, 43], "p_": 8, "p_0": 8, "cl": 8, "coeffici": [8, 21, 43], "l": [8, 21, 34], "found": [8, 22, 38, 40, 41], "analysi": [8, 13, 14], "system": [8, 12, 13, 14, 15, 18, 20, 27, 32, 34, 37, 38], "odd": 8, "antisymmetr": 8, "occur": [8, 20, 21, 34, 43], "circ": 8, "similarli": 8, "symmetr": [8, 11, 35, 45], "user": [8, 12, 23, 32, 44], "permitt": [8, 26], "clad": [8, 14, 18, 31, 33, 35, 39, 40, 41, 43, 45], "refract": [8, 14, 18, 21, 26, 28, 29, 30, 33, 39, 40, 41], "indic": [8, 14, 28, 34, 35, 41, 43], "valu": [8, 11, 18, 21, 22, 32, 33, 35, 40, 43], "rel": [8, 19, 21, 27, 28, 29, 31, 32, 45], "increas": [8, 14, 29, 30, 41], "decreas": [8, 14, 41], "notic": [8, 21, 23, 28, 33, 40, 41, 43], "intens": [8, 14, 20, 21, 34, 35, 45], "insid": [8, 34, 40], "gplugin": [8, 32, 40], "gm": [8, 11, 40], "find_modes_coupl": 8, "core_width": [8, 40], "core_materi": [8, 40], "clad_materi": [8, 40], "core_thick": [8, 40], "22": [8, 35, 44], "resolut": [8, 11, 14, 19, 20, 34, 35, 40, 45], "40": [8, 18, 35, 40, 45], "sz": [8, 40], "nmode": [8, 40], "m1": [8, 18, 40], "m2": [8, 34, 40], "look": [8, 11, 22, 23, 26, 32, 35, 38, 42, 45], "big": 8, "print": [8, 11, 13, 21, 22, 35, 40], "neff": [8, 40], "dielectr": [8, 40, 45], "sidebar": 8, "plot_ep": 8, "plot_ei": [8, 40], "abov": [8, 11, 14, 18, 21, 29, 31, 34, 35, 40, 42, 43, 45], "happen": 8, "desir": [8, 12, 14, 28, 31, 35], "delta": [8, 21], "n": [8, 17, 18, 20, 21, 30, 31, 32, 34, 35, 43], "lambda": [8, 14, 21, 34, 41], "n_": [8, 14, 34, 41, 43], "eff": [8, 14, 34, 41], "find_coupling_vs_gap": 8, "crossov": 8, "tabl": 8, "detail": [8, 14, 21, 35, 38], "ne": 8, "unit": [8, 28, 29, 35], "mu": [8, 21], "m": [8, 15, 20, 21, 32, 34], "lc": 8, "dn": 8, "exponenti": [8, 40], "relationship": [8, 11, 21, 29, 30, 35], "cdot": 8, "variou": [8, 21, 22, 31, 35, 37], "oper": [8, 18, 20, 21, 29, 30, 31, 32, 33, 34, 35, 37], "mp": [8, 11, 14, 19, 20, 22, 34, 35, 40, 45], "gap1": 8, "gap2": 8, "11": [8, 18, 21, 22, 32, 40], "55": [8, 14, 19, 20, 21, 34, 35, 45], "pariti": [8, 40], "even_i": [8, 35], "463631": 8, "409798": 8, "14": 8, "396530": 8, "053832": 8, "460647": 8, "410682": 8, "15": [8, 11, 21, 34, 43], "510925": 8, "049965": 8, "12": [8, 14, 18, 22, 35], "459734": 8, "411797": 8, "16": [8, 18, 22, 40], "166968": 8, "047937": 8, "13": [8, 35], "452682": 8, "411449": 8, "18": [8, 18], "795515": 8, "041233": 8, "448745": 8, "412270": 8, "21": [8, 43], "247526": 8, "036475": 8, "447691": 8, "414688": 8, "23": [8, 15], "482841": 8, "033003": 8, "447658": 8, "416929": 8, "220085": 8, "030729": 8, "17": [8, 43], "447685": 8, "418000": 8, "26": [8, 22, 43], "107513": 8, "029685": 8, "8": [8, 11, 21, 35, 45], "442283": 8, "416295": 8, "29": 8, "821729": 8, "025988": 8, "9": [8, 35, 43, 45], "19": [8, 18], "439496": 8, "416231": 8, "33": 8, "311196": 8, "023265": 8, "20": [8, 11, 19, 20, 21, 22, 34, 43], "438256": 8, "417123": 8, "36": 8, "672851": 8, "021133": 8, "own": [8, 15, 17, 18, 21, 23, 31, 32, 37], "normal": [8, 14, 35, 44], "constant": [8, 21, 30, 34], "beta": [8, 20, 21, 34, 45], "travel": [8, 14, 21, 28, 30, 34, 40, 41, 43], "down": [8, 21, 32, 35, 40], "oscil": [8, 28, 42], "beat": [8, 20], "One": [8, 23, 27, 31, 33, 39], "over": [8, 12, 14, 20, 31, 34, 39], "smaller": [8, 33], "faster": [8, 30], "sinc": [8, 11, 13, 21, 32, 34, 35, 37, 38, 40, 45], "shorter": [8, 21, 29, 41], "give": [8, 11, 14, 15, 21, 22, 32, 35, 37], "begin": [8, 20, 21, 41, 43], "l_": [8, 20, 21], "nonumb": 8, "multipli": 8, "_1": [8, 20], "l_x": 8, "_2": 8, "n_1": 8, "n_2": 8, "Of": [8, 23, 43], "don": [8, 17, 21, 29, 32, 37, 41, 44, 45], "oftentim": 8, "60": 8, "receiv": 8, "equat": [8, 13, 14, 20, 21, 29, 31, 34, 40, 41], "further": [8, 11, 21, 33, 35], "explor": [8, 33, 42, 44], "send": [8, 16, 33], "affect": [8, 14, 20, 21, 29, 34, 41, 42, 45], "minut": 8, "setup": [8, 13, 31, 32, 37, 38, 44], "gif": [8, 14, 20, 34], "typic": [8, 13, 14, 23, 27, 29, 30, 31, 39, 41], "practic": [8, 15, 21, 32], "si": [8, 14, 19, 20, 34, 40], "medium": [8, 14, 19, 20, 34, 35, 45], "sio2": [8, 14, 18, 19, 20, 34, 35, 40], "um": [8, 14, 20, 21, 35], "wvl": [8, 14, 19, 20, 34], "cell": [8, 14, 20, 31, 34, 35], "wg_width": [8, 34], "dpml": [8, 20, 35], "pad": [8, 20, 34], "07": 8, "lx": 8, "30": [8, 14, 43, 45], "sx": [8, 19, 20, 34, 45], "sy": [8, 19, 20, 34, 40, 45], "wg_center_i": 8, "pml": [8, 14, 19, 20, 34, 35, 45], "perfectli": [8, 20, 21, 34, 35], "infinit": 8, "long": [8, 21, 32, 34, 35, 39, 44], "vector3": [8, 14, 19, 20, 34, 35, 45], "puls": [8, 14, 20, 34], "fcen": [8, 14, 19, 20, 34, 35], "fwidth": [8, 14, 19, 20, 34, 35], "src": [8, 19, 20, 34, 35], "gaussiansourc": [8, 14, 19, 20, 34, 35], "frequenc": [8, 11, 13, 14, 19, 20, 21, 28, 29, 30, 33, 34, 43, 45], "eigenmodesourc": [8, 19, 20, 34, 35, 45], "eig_band": [8, 19, 20, 34, 35, 45], "eig_kpoint": [8, 19, 20, 34, 35], "sim": [8, 11, 14, 19, 20, 34, 35, 45], "cell_siz": [8, 11, 14, 19, 20, 34, 35, 45], "boundary_lay": [8, 14, 19, 34, 35, 45], "default_materi": [8, 19, 34, 45], "set": [8, 11, 13, 14, 15, 18, 20, 21, 22, 31, 32, 34, 35, 38, 40, 43, 44], "plot2d": [8, 11, 14, 19, 20, 34, 35, 45], "warn": [8, 43], "grid": 8, "volum": [8, 35, 41, 45], "integ": [8, 18, 34], "pixel": [8, 35], "round": [8, 31, 34], "nearest": 8, "ax": [8, 21, 40, 43], "pil": [8, 14, 20, 34], "imag": [8, 14, 21, 34, 35, 45], "glob": [8, 14, 20, 34], "os": [8, 14, 20, 34, 37], "reset_meep": [8, 35], "captur": [8, 14, 20, 34], "at_begin": [8, 14, 20, 34], "output_epsilon": [8, 14, 20, 34], "to_append": [8, 14, 20, 34], "ez": [8, 14, 20, 34, 45], "at_everi": [8, 14, 20, 34], "output_efield_z": [8, 14, 20, 34], "until": [8, 11, 14, 20, 34, 35, 45], "200": [8, 11, 14, 20, 22, 35], "gener": [8, 11, 13, 14, 18, 20, 21, 23, 28, 29, 31, 32, 34, 40, 42], "png": [8, 14, 20, 21, 34], "colormap": [8, 14, 20, 34], "work": [8, 20, 23, 32, 34, 35, 42], "h5py": [8, 14, 20, 34], "instal": [8, 12, 13, 14, 16, 20, 22, 27, 32, 34, 37, 38, 40, 44], "problem": [8, 14, 15, 20, 29, 34], "h5util": [8, 14, 20, 34], "h5topng": [8, 14, 20, 34], "99": [8, 14], "r": [8, 14, 20, 32, 34, 43], "zc": [8, 14, 20, 34], "rdbu": [8, 14, 20, 34, 35, 45], "ep": [8, 14, 20, 34], "000000": [8, 14, 20, 34], "00": [8, 14, 20, 34, 43], "h5": [8, 14, 20, 34], "grai": [8, 14, 20, 34, 40], "frame": [8, 14, 20, 34], "img": [8, 14, 20, 34], "sort": [8, 14, 20, 31, 34], "new_fram": [8, 14, 20, 34], "append": [8, 14, 20, 34, 35], "loop": [8, 14, 20, 34, 35], "forev": [8, 14, 20, 34], "append_imag": [8, 14, 20, 34], "save_al": [8, 14, 20, 34], "clean": [8, 14, 20, 34], "workspac": [8, 14, 20, 34], "delet": [8, 14, 20, 32, 34], "invalid": [8, 14, 43], "circumv": [8, 14], "issu": [8, 14], "chosen": [8, 14, 41, 43], "sensit": [8, 14, 20, 31], "fabric": [8, 9, 13, 15, 18, 22, 27, 29, 31, 35], "variat": [8, 20, 34], "robust": [8, 20, 32], "element": [8, 13, 21, 29, 35, 41], "principl": [8, 13, 14, 15, 18, 20, 35, 43], "behind": [8, 21, 31], "interfer": [8, 13, 14, 20, 21, 28, 33, 34, 45], "nearbi": 8, "chip": [8, 13, 14, 16, 17, 18, 21, 26, 31, 32], "parasit": 8, "too": [8, 13, 18, 21, 32, 34, 37, 42], "lead": [8, 33, 34, 41], "leak": [8, 45], "far": [8, 11, 33, 34], "apart": 8, "silicon": [8, 13, 14, 21, 30, 31, 35, 39, 40, 43, 45], "answer": [8, 21, 32, 43], "approxim": [8, 13, 18, 29], "135": 8, "micron": [8, 14, 18, 21, 40], "luka": [8, 14, 45], "chrostowski": [8, 14, 45], "stefan": 8, "prebl": 8, "facil": [9, 15, 31], "simul": [11, 13, 14, 15, 18, 19, 22, 24, 27, 31, 40, 43, 45], "devic": [11, 13, 15, 16, 18, 20, 21, 22, 26, 27, 28, 30, 34, 45], "befor": [11, 21, 23, 27, 31, 32, 35], "idea": [11, 22, 32], "perform": [11, 13, 15, 31, 32, 35], "plugin": 11, "finit": [11, 13, 31, 32, 40], "domain": [11, 13, 32, 43], "algorithm": [11, 32], "fdtd": [11, 13, 15, 32], "turn": [11, 21, 29, 35, 40], "component_from_gd": 11, "py": [11, 21, 43], "func": 11, "get_simul": [11, 20], "get_meep_geometry_from_compon": [11, 20], "grate": [11, 13, 18, 21, 22, 24, 31], "fiber": [11, 13, 14, 18, 21, 31, 33], "connect": [11, 15, 18, 21, 31, 45], "howev": [11, 15, 21, 23, 27, 33, 34, 35, 37, 45], "suffic": 11, "tutori": [11, 21, 22, 35], "tidy3d": [11, 20, 41], "implement": [11, 29, 34], "tpml": [11, 20], "port_source_offset": [11, 20], "port_monitor_offset": [11, 20], "distance_source_to_monitor": [11, 20], "32": 11, "scatter": [11, 21, 42], "tell": [11, 13, 22, 32, 34, 35, 42], "port": [11, 13, 18, 19, 20, 21, 22, 34, 45], "purpos": [11, 17, 23, 28, 41], "write_sparameters_meep": 11, "3d": [11, 18, 33, 35], "margin": 11, "account": [11, 12, 34, 44], "kwarg": 11, "fals": [11, 18, 35, 40, 43], "wast": 11, "incorrectli": 11, "2d": [11, 14, 19, 33, 35], "comprehens": [11, 35, 42], "dictionari": [11, 18, 20, 21], "kei": [11, 14, 21, 33], "form": [11, 21, 29], "refer": [11, 13, 15, 31, 34, 41, 42], "go": [11, 15, 16, 20, 22, 23, 24, 27, 28, 34, 35, 37, 44, 45], "symmetri": 11, "port_symmetri": 11, "assign": [11, 31], "1x2": [11, 13, 20], "comput": [11, 13, 15, 21, 32, 34, 35, 38, 44], "written": [11, 15], "thu": [11, 34, 45], "write_sparamters_meep_mpi": 11, "write_sparameters_meep_batch": 11, "per": [11, 13, 28], "total": [11, 18, 33, 35, 40], "write_sparameters_gr": 11, "batch": 11, "write_sparameters_grating_mpi": 11, "write_sparameters_grating_batch": 11, "adequ": 11, "xmargin_left": 11, "xmargin_right": 11, "sp": 11, "plot_sparamet": 11, "reflect": [11, 14, 18, 20, 26, 33, 35, 40, 45], "wave": [11, 13, 14, 20, 21, 28, 34, 35, 40, 41, 42, 43], "why": [11, 33, 42], "program": [12, 13, 16, 32, 38], "environ": [12, 15, 17, 22, 23, 37, 38], "uncommon": 12, "roll": [12, 23], "back": [12, 14, 31, 34, 43, 45], "break": [12, 32], "someth": [12, 32], "product": [12, 43], "version": [12, 21, 23, 44], "control": [12, 17, 21, 23], "vc": 12, "extrem": [12, 23], "who": [12, 23], "simultan": [12, 42], "edit": [12, 31, 44], "rather": [12, 31, 34], "painlessli": 12, "predomin": 12, "programm": [12, 23], "todai": 12, "command": [12, 13, 17, 21, 32, 35, 40, 44], "entir": [12, 13, 15, 33, 35], "ecosystem": 12, "host": [12, 15, 32], "servic": 12, "gui": [12, 35, 37], "id": [12, 38], "sprung": 12, "alreadi": [12, 21, 27, 31, 34, 35], "linux": [12, 13, 16, 32, 37, 38, 44], "temin": 12, "enter": [12, 21, 34, 35], "machin": [12, 13, 32, 37, 44], "window": [12, 13, 16, 27, 32, 37, 43], "packag": [12, 15, 16, 17, 18, 21, 22, 27, 37, 40], "mac": [12, 16, 32, 37], "forc": [12, 23], "wsl": [12, 13, 32, 37], "still": [12, 30, 32, 33, 35, 45], "download": [12, 15, 16, 32, 38, 44], "link": [12, 30, 32], "maco": [12, 13, 32, 37, 38], "xcode": 12, "termin": [12, 32, 37, 38, 44], "select": [12, 16, 18, 44], "through": [12, 15, 21, 22, 24, 26, 27, 28, 29, 30, 31, 33, 35, 37, 38, 40, 41, 42, 44], "debian": 12, "distribut": [12, 13, 23, 32, 40], "ubuntu": [12, 32, 37, 44], "sudo": 12, "apt": 12, "rpm": 12, "fedora": 12, "rhel": 12, "cento": 12, "dnf": 12, "known": [12, 14, 21, 23, 32, 38, 39, 40, 42, 43], "free": [12, 13, 14, 15, 16, 23, 29, 31, 32, 41], "privat": 12, "bootcamp": [12, 15, 18, 34, 35], "along": [12, 14, 34, 40, 42, 43], "popular": [12, 23, 32, 38, 39], "python": [12, 13, 15, 16, 18, 31, 35, 37, 38, 43], "keep": [12, 15, 32, 35], "definit": [13, 23], "throughout": [13, 21], "mathemat": [13, 21, 31, 34], "descript": 13, "behavior": [13, 21, 31, 33, 34, 42, 43, 45], "cutback": 13, "techniqu": 13, "measur": [13, 14, 20, 21, 29, 34, 41], "attenu": [13, 31, 34], "transmiss": [13, 21, 28, 34, 35, 43], "delai": [13, 31], "count": 13, "etc": [13, 18, 31, 32, 41], "drc": [13, 16, 18, 31], "verifi": [13, 32, 35], "ensur": [13, 21, 31, 32, 35, 45], "error": [13, 18, 20, 27, 40], "caus": [13, 21, 30], "fail": [13, 35], "short": [13, 14, 16, 21, 23, 30], "featur": [13, 16, 22, 31, 32, 38, 40, 41], "resolv": [13, 43], "drastic": 13, "foundri": 13, "minimum": [13, 20, 31], "space": [13, 14, 29, 31, 34, 41], "numer": [13, 40], "electrodynam": 13, "solut": 13, "differenti": [13, 29, 40], "method": [13, 15, 17, 19, 21, 23, 31, 32, 35, 37], "cover": [13, 15], "singl": [13, 15, 20, 21, 22, 31, 34, 37, 45], "primari": 13, "avail": [13, 15, 16, 18, 22, 23, 31, 32, 37], "platform": [13, 15, 32], "yaml": [13, 22], "flow": [13, 27], "gd": [13, 14, 15, 16, 18, 22, 27, 31, 32, 35, 37, 45], "graphic": 13, "coupl": [13, 14, 21, 22, 23, 31, 45], "reson": [13, 26, 27], "instrument": [13, 17, 20], "util": [13, 14, 18, 20, 21, 23], "beam": [13, 14, 20, 21, 33], "multi": 13, "split": [13, 20, 21, 35], "ideal": [13, 14, 21, 33], "nearli": 13, "imposs": 13, "polygon": [13, 31], "electron": [13, 27, 33, 35], "digit": [13, 27], "dry": 13, "modif": 13, "replic": 13, "insul": [13, 39], "soi": [13, 18, 31, 39, 43], "technolog": [13, 22, 31], "substrat": [13, 14, 18, 31, 39, 40], "semiconductor": 13, "wafer": [13, 31, 39], "vscode": [13, 32], "studio": [13, 37], "commonli": [13, 23, 32, 41], "vs": [13, 38], "editor": [13, 15, 37, 38], "microsoft": [13, 37, 38], "support": [13, 15, 17, 18, 20, 30, 41, 42], "debug": [13, 32], "syntax": [13, 17, 32, 40], "highlight": 13, "intellig": 13, "snippet": 13, "refactor": [13, 32], "embed": [13, 15], "git": [13, 18], "wikipedia": 13, "subsystem": [13, 37], "bash": [13, 32, 44], "directli": [13, 15, 18, 19, 35], "unmodifi": 13, "overhead": 13, "tradit": [13, 39], "virtual": [13, 17, 37], "dual": 13, "boot": 13, "diffract": 14, "cabl": [14, 31], "edg": [14, 24], "teeth": 14, "drawn": [14, 33], "onto": [14, 24, 31, 39, 44], "altern": [14, 44], "structur": 14, "propog": [14, 21, 31], "hyugen": 14, "fresnel": [14, 43], "bragg": 14, "law": [14, 40, 43], "depict": [14, 33, 41], "orthogon": [14, 33, 42], "arrai": [14, 21, 22, 35, 43], "might": [14, 18, 21, 32, 45], "imagin": [14, 21], "hold": [14, 23, 35], "catch": 14, "cell_x": 14, "cell_i": 14, "x_offset": 14, "nanomet": 14, "num_teeth": 14, "waveguide_depth": 14, "220": [14, 18, 21], "etch_depth": 14, "068": 14, "grating_period": 14, "659": 14, "fill_factor": 14, "524": 14, "verbos": [14, 45], "inf": [14, 19], "epsilon": [14, 35], "cladding_depth": 14, "box_depth": 14, "box": [14, 18, 27, 35, 38, 43], "substrate_depth": 14, "700": 14, "df": [14, 35], "pml_layer": [14, 19], "500": [14, 21], "savefig": 14, "grating_coupler_plot": 14, "encount": [14, 23, 43], "recogn": 14, "discuss": [14, 33], "page": [14, 18, 22, 32, 33, 34, 35, 40, 44, 45], "demonstr": [14, 43], "been": [14, 31, 32, 33, 35], "1550": 14, "appropri": [14, 21, 32, 33], "three": [14, 18, 20, 21, 35, 42], "understand": [14, 22, 34, 35, 42, 43], "simplifi": [14, 21, 33], "view": [14, 16, 18, 35, 37], "denot": [14, 20], "effici": [14, 21], "relat": [14, 18, 33, 40], "angl": [14, 21, 33], "condit": [14, 21, 23, 40], "theta_": 14, "air": [14, 43], "compar": [14, 30, 41], "surfac": 14, "choos": [14, 19, 33, 40], "exactli": [14, 21, 35], "90": [14, 21, 45], "degre": [14, 21, 29, 43], "byproduct": [14, 30], "larg": [14, 32, 45], "indcu": 14, "twice": 14, "avoid": [14, 32], "slightli": [14, 20, 21, 30, 35, 41, 45], "less": [14, 23, 31, 33, 34, 45], "area": [14, 31, 32, 43], "overal": 14, "weight": [14, 45], "unetch": 14, "ratio": [14, 20, 34, 35, 43, 45], "ff": 14, "w": 14, "welcom": 15, "present": [15, 18, 20, 33], "onlin": [15, 23], "freeli": [15, 23, 32], "resourc": [15, 30], "teach": 15, "student": 15, "curriculum": 15, "background": [15, 16, 21, 23], "motiv": 15, "full": [15, 23, 31, 32, 33, 34, 40], "learner": 15, "guid": [15, 31, 37, 39, 41, 43], "submit": [15, 23, 27], "wish": [15, 23], "simphoni": [15, 21, 22, 27, 32], "submiss": [15, 31], "pic": 15, "post": 15, "instruct": [15, 22, 27, 32, 37, 38, 44], "contribut": [15, 23], "subject": 15, "matter": [15, 35], "expert": 15, "futur": [15, 32], "expans": 15, "fork": 15, "parti": 15, "custom": [15, 23], "train": 15, "websit": [15, 23], "explanatori": 15, "webpag": 15, "launch": [15, 35], "colab": 15, "local": [15, 17, 37], "immedi": [15, 32], "alwai": [15, 21, 22, 32, 45], "workflow": 15, "approach": 15, "introduc": [15, 21, 23, 29, 32, 34, 45], "bother": 15, "mention": [15, 18, 23], "possibl": [15, 42], "configur": [15, 18, 37], "ahead": 15, "standard": [15, 37, 45], "ardavan": 15, "oskooi": 15, "david": 15, "roundi": 15, "mihai": 15, "ibanescu": 15, "peter": 15, "bermel": 15, "john": 15, "joannopoulo": 15, "steven": 15, "johnson": 15, "flexibl": [15, 31], "electromagnet": [15, 40, 42, 45], "physic": [15, 24, 30, 41], "commun": [15, 23, 32], "181": 15, "687": 15, "702": 15, "2010": 15, "hyrum": 15, "gunther": 15, "framework": [15, 17], "scienc": 15, "65": 15, "74": 15, "2020": 15, "joaquin": 15, "matr": 15, "2023": 15, "url": [15, 23], "http": [15, 21, 23, 33, 44], "io": 15, "verif": [16, 27], "viewer": [16, 37], "trace": [16, 39], "net": 16, "detect": [16, 31], "scriptabl": 16, "languag": [16, 32], "rubi": 16, "extens": [16, 38], "extern": [16, 21], "json": 16, "request": 16, "server": [16, 17], "hot": 16, "reload": 16, "rerun": 16, "manag": [16, 37], "Then": [16, 22, 35, 44, 45], "search": 16, "doubl": [16, 21, 27, 34], "click": [16, 24, 27, 38, 44], "pyro5": 17, "remot": 17, "access": [17, 18, 23, 32, 34], "equip": 17, "lab": 17, "favor": [17, 39], "usb": 17, "proprietari": [17, 23], "brand": 17, "unifi": 17, "intrument": 17, "easi": [17, 21, 27, 29, 32, 35], "pip": [17, 22, 32, 37], "conda": [17, 22, 37, 44], "environment_nam": 17, "activ": [17, 22, 23, 26, 28, 32, 44], "updat": [17, 21], "pypi": [17, 32, 37], "upgrad": [17, 22, 32], "visit": 17, "interrog": 17, "station": 17, "interfac": [17, 32, 37, 40, 42], "fore": 17, "whether": [18, 23, 31], "etch": [18, 31, 39, 41], "deposit": [18, 31, 39], "dope": [18, 30, 31], "metal": [18, 29, 31], "p": [18, 30, 31], "translat": [18, 31], "mask": [18, 31], "formal": 18, "state": [18, 23, 35], "255": 18, "modern": [18, 32, 37], "almost": [18, 35, 45], "dedic": [18, 23], "nitrid": 18, "lithium": [18, 43], "niobat": [18, 43], "whichev": 18, "decid": 18, "thin": 18, "top": [18, 21], "dioxid": [18, 39, 43], "thick": [18, 21, 34, 35, 40], "buri": 18, "oxid": [18, 35], "main": [18, 26, 31, 32], "intern": [18, 33, 40], "48": [18, 21], "excel": [18, 30, 32], "refractiveindex": 18, "info": [18, 21], "color": [18, 38, 41, 43], "fill": 18, "map": [18, 21], "human": [18, 21], "readabl": [18, 21, 35], "properti": [18, 28, 30, 31, 40, 41, 44], "lyp": 18, "migrat": 18, "few": [18, 22, 23, 32, 37, 38, 41], "devrec": 18, "recognit": 18, "show_port": 18, "marker": 18, "label_inst": 18, "netlist": 18, "te": [18, 21, 33, 35, 40, 42, 43], "polar": [18, 20, 21, 22, 28, 31, 33, 40], "tm": [18, 21, 42, 43], "pydant": 18, "class": [18, 23, 27], "partial": [18, 30, 33, 42], "germanium": 18, "photodiod": 18, "vari": [18, 21], "concentr": 18, "pn": 18, "junction": 18, "capacitor": [18, 31, 41], "depth": 18, "exclud": 18, "dice": 18, "lane": 18, "reserv": 18, "violat": 18, "reader": 18, "basemodel": 18, "wg": 18, "slab150": 18, "68": 18, "201": 18, "206": 18, "203": 18, "204": 18, "66": 18, "41": 18, "43": 18, "config": [18, 21, 22, 32], "frozen": 18, "extra": [18, 32, 41], "forbid": 18, "32m2023": 18, "06": 18, "227": 18, "0m": [18, 21, 22, 40], "1minfo": [18, 22, 40], "36mgdsfactori": [18, 22], "36m__init__": [18, 22], "36m204": 18, "1mloglevel": 18, "visibl": 18, "export": [18, 19, 22], "hatch_pattern": 18, "dot": 18, "ff9d9d": 18, "layer_in_nam": 18, "coars": 18, "transpar": 18, "cyan": 18, "01ff6b": 18, "bright": 18, "hollow": 18, "cc4c00": 18, "label_optical_io": 18, "blue": [18, 33, 35, 40, 42, 43], "label_set": 18, "202": 18, "magenta": 18, "red": [18, 33, 35, 42, 43], "lightli": 18, "hatch": 18, "004080": 18, "pinrec": 18, "404040": 18, "xsection": 18, "group_memb": 18, "xs_box": 18, "300": [18, 35], "f3ff80": 18, "solid": 18, "xs_si": 18, "301": 18, "black": [18, 35, 43], "xs_si_slab": 18, "313": 18, "80a8ff": 18, "xs_overlai": 18, "311": 18, "xs_ox_si": 18, "302": 18, "xs_via": 18, "303": 18, "grei": 18, "xs_m1": 18, "304": 18, "green": [18, 43], "xs_oxide_m1": 18, "305": 18, "308": 18, "ff80a8": 18, "wg_pin": 18, "klayout_lyp": 18, "posixpath": [18, 22], "home": [18, 22, 34, 35, 40], "env": [18, 21, 22, 32, 34, 40], "lib": [18, 21, 22, 40], "python3": [18, 21, 22, 40], "site": [18, 21, 22, 23, 40], "generic_tech": [18, 22], "tech": 18, "npp": 18, "pp": 18, "ppp": 18, "Be": [18, 21], "sure": [18, 19, 23, 27, 35], "gmeep": [19, 20, 40], "meep_adjoint_optim": 19, "straightforward": 19, "get_component_from_sim": 19, "continu": [19, 32, 35, 40], "variabl": [19, 21, 30, 31, 35, 45], "waveguide_width": 19, "arm_separ": 19, "mmi_length": 19, "mmi_width": 19, "taper_width": 19, "pml_size": 19, "taper_x1": 19, "taper_x2": 19, "taper_y1": 19, "taper_y2": 19, "taper_y3": 19, "taper_y4": 19, "prism": 19, "height": [19, 21, 41], "source_center_x": 19, "source_s": 19, "kpoint": 19, "no_direct": [19, 35], "geometry_cent": 19, "gdspath": 19, "2x2mmi": 19, "predict": [20, 21, 31, 42], "certain": [20, 23, 33, 34, 42], "k": [20, 26, 43], "wider": 20, "gradual": 20, "widen": 20, "nxm": 20, "replica": 20, "period": [20, 21, 29], "_0": 20, "wall": [20, 32], "interf": 20, "destruct": [20, 21, 28, 33, 45], "forward": [20, 23, 30, 35], "backward": [20, 32, 35], "word": [20, 23, 28, 33, 45], "excit": 20, "goe": [20, 34, 35, 43, 45], "THE": 20, "TO": 20, "length_mmi": 20, "extend": [20, 23], "extend_port": 20, "port_nam": [20, 21], "299": [20, 34], "evenli": [20, 45], "advantag": [20, 23, 31], "veri": [20, 21, 23, 30, 32, 35, 37, 39, 45], "suscept": [20, 31], "fact": [20, 23, 35], "optimum": 20, "contrast": 20, "mimic": 20, "disadvantag": 20, "switch": [20, 21, 34, 35], "wdm": 20, "divis": 20, "multiplex": 20, "hybrid": 20, "divers": 20, "photodetector": [20, 26, 31], "extract": [21, 40], "doc": [21, 22, 38, 40], "zender": 21, "concept": [21, 31, 32, 33, 34], "recombin": [21, 45], "accumul": 21, "quantum": 21, "piezo": 21, "transduc": 21, "sax": 21, "jax": 21, "nice": [21, 32, 37], "speedup": 21, "gpu": 21, "fine": 21, "cpu": 21, "awar": 21, "jax_enable_x64": 21, "drop": 21, "replac": 21, "jnp": 21, "broken": 21, "constitu": 21, "diagram": [21, 34, 42], "carri": [21, 23], "identifi": 21, "explain": [21, 30, 34, 35, 44], "formul": 21, "s_": 21, "ij": 21, "repres": [21, 33, 35, 41, 42, 43], "j": [21, 34, 35], "stimuli": 21, "signatur": 21, "grating_coupl": 21, "31msignatur": 21, "0msiepic": 21, "34m": 21, "0mgrating_coupl": 21, "0mwl": 21, "0munion": 21, "0mfloat": 21, "0mjax": 21, "0marrai": 21, "36m1": 21, "0mpol": 21, "0mliter": 21, "0mthick": 21, "36m220": 21, "0mdwidth": 21, "36m0": 21, "0mdict": 21, "0mtupl": 21, "0mstr": 21, "0mjaxtyp": 21, "0mcomplex": 21, "31mdocstr": 21, "1550nm": 21, "citat": 21, "_static": 21, "ebeam_gc_te1550": 21, "alt": 21, "ebeam_bdc_te1550": 21, "wl": 21, "evalu": 21, "pol": 21, "210": 21, "230": 21, "dwidth": 21, "nomin": 21, "rais": 21, "valueerror": 21, "com": [21, 23, 33], "siepic_ebeam_pdk": 21, "blob": 21, "master": 21, "20compon": 21, "20with": 21, "20model": 21, "docx": 21, "31mfile": 21, "miniconda3": [21, 22, 34, 40], "31mtype": 21, "inspect": [21, 23], "o0": 21, "0307378": 21, "00345908j": 21, "dtype": 21, "complex128": 21, "75686856": 21, "02082852j": 21, "74360676": 21, "09760613j": 21, "0750638": 21, "02585451j": 21, "get_port": 21, "y_branch": 21, "strictli": 21, "enforc": 21, "rewrit": 21, "string": [21, 40], "instance_nam": 21, "whitespac": 21, "delimit": 21, "comma": 21, "composit": 21, "gc_in": 21, "gc": 21, "ybranch": [21, 45], "long_wg": 21, "short_wg": 21, "gc_out": 21, "act": 21, "whatev": 21, "invok": [21, 32], "gave": 21, "becom": [21, 23, 32, 35, 42], "instanti": 21, "unsur": 21, "get_set": 21, "loss": [21, 29, 30, 34, 35, 45], "overkil": 21, "everyth": [21, 35, 44], "els": [21, 32, 35], "stai": 21, "global": 21, "toplevel": 21, "trickl": 21, "1000": 21, "150": 21, "transmit": [21, 34, 39, 42, 43], "magnitud": [21, 35, 40, 43], "squar": [21, 34], "renam": 21, "unconnect": 21, "realli": [21, 23, 35, 43], "meaning": 21, "both": [21, 29, 30, 32, 34, 35, 40, 45], "linear": [21, 29, 35, 45], "log": [21, 35], "scale": [21, 31, 45], "mag": 21, "ab": [21, 35], "fig": [21, 40, 43], "subplot": [21, 40, 43], "sharex": [21, 40], "set_ylabel": 21, "log10": [21, 35], "db": [21, 35], "set_xlabel": [21, 43], "suptitl": 21, "dip": 21, "opposit": 21, "peak": [21, 33, 34], "maximum": [21, 34], "better": [21, 41, 42], "think": [21, 31, 32], "equal": [21, 28, 34, 41, 43, 45], "my_compon": 21, "delta_length": [21, 22], "relev": 21, "amplitud": [21, 28, 29, 30, 31, 33, 45], "i_": 21, "e_": [21, 34], "sqrt": 21, "hspace": 21, "2mm": 21, "whose": 21, "undergon": 21, "mw": [21, 29], "lossless": 21, "plane": [21, 42], "e_0": 21, "omega": 21, "z": [21, 35, 40, 42], "beta_": 21, "alpha_": 21, "\u03b1": 21, "appear": 21, "expon": 21, "zero": [21, 40], "lvert": 21, "express": [21, 29], "1450": 21, "longer": [21, 29, 41], "102": 21, "491": 21, "phasa": 21, "heat": [21, 26, 29], "static": 21, "\u03b2": 21, "100\u00b5m": 21, "1500nm": 21, "ouptput": 21, "9mw": 21, "heater": 21, "walk": [22, 24, 40], "mzi": 22, "prepar": 22, "ubcpdk": 22, "forg": [22, 32], "gdstk": 22, "plai": 22, "uc": 22, "conf": 22, "display_typ": 22, "32m2024": [22, 40], "01": [22, 40, 45], "112": 22, "layer_view": 22, "36m790": 22, "1mimport": 22, "layerview": 22, "parkeraa": [22, 40], "376": 22, "36mubcpdk": 22, "36m": [22, 40], "modul": [22, 26, 28, 29, 30, 31, 40], "36m30": 22, "1mfound": 22, "456": 22, "461": 22, "36mactiv": 22, "36m307": 22, "1m": 22, "pretti": [22, 32], "doesn": [22, 38, 40, 42], "adjust": [22, 28, 29, 43, 45], "length_x": 22, "length_i": 22, "ring_singl": 22, "littl": 22, "bit": [22, 42], "ascii": 22, "rotat": 22, "though": [22, 32], "ad": [22, 30, 35], "mark": 22, "autom": [22, 31], "openebl": [22, 27], "tester": 22, "usig": 22, "usernam": [22, 44], "mynam": 22, "component_fiber_arrai": 22, "add_fiber_arrai": 22, "my_cool_mzi": 22, "38": 22, "46": 22, "077": 22, "36m_write_librari": 22, "36m1913": 22, "1mwrote": 22, "constitut": [23, 30], "legal": 23, "advic": 23, "date": 23, "corpor": 23, "contact": 23, "attornei": 23, "absolut": 23, "implic": 23, "organ": [23, 35, 40], "particularli": 23, "question": 23, "compani": 23, "incorpor": 23, "inherit": 23, "foss": 23, "availbl": 23, "portion": [23, 33, 43], "anyon": [23, 32], "enhanc": 23, "methodolog": 23, "creation": 23, "peopl": 23, "skill": 23, "context": [23, 33], "monetarili": 23, "under": 23, "restrict": [23, 31], "freedom": 23, "copi": [23, 43, 44], "studi": 23, "improv": 23, "hood": 23, "actual": [23, 35, 45], "strong": 23, "focus": 23, "downsid": 23, "thanklessli": 23, "maintain": [23, 28], "spend": 23, "driven": 23, "psiquantum": 23, "natur": [23, 42], "mainten": 23, "bug": [23, 32], "slower": 23, "commerci": 23, "On": [23, 26, 42, 44], "hand": [23, 34, 38, 42], "garner": 23, "friendli": 23, "copor": 23, "scheme": 23, "confirm": 23, "team": 23, "abil": 23, "plan": 23, "releas": [23, 32], "permiss": 23, "162": 23, "copyright": 23, "remain": [23, 34], "stricter": 23, "deriv": [23, 41, 43], "warranti": 23, "world": [23, 32, 41], "statement": 23, "signific": [23, 45], "attribut": 23, "similar": [23, 34, 40], "rereleas": 23, "grant": 23, "patent": 23, "contributor": 23, "claim": 23, "codebas": 23, "cannot": [23, 43], "liabl": 23, "reason": [23, 33], "trademark": 23, "licensor": 23, "belong": 23, "copyleft": 23, "mandat": 23, "gpl": 23, "v3": 23, "unpopular": 23, "prohibit": 23, "inclus": 23, "prevent": 23, "contamin": 23, "witih": 23, "technic": 23, "offend": 23, "liabil": 23, "binari": [23, 31, 35, 45], "attempt": 23, "pai": [23, 33], "attitud": 23, "necessarili": [23, 32], "impress": 23, "gnu": 23, "notepad": 23, "wordpress": 23, "mysql": 23, "unabl": 23, "sale": 23, "fossa": 23, "editori": 23, "101": 23, "jan": 23, "2021": 23, "blog": 23, "feb": 23, "mar": 23, "skip": [24, 27, 44], "explan": 24, "tune": [26, 28, 34], "scope": [26, 30], "thermo": [26, 29], "slow": 26, "stabl": 26, "electro": [26, 31], "fast": [26, 30], "laser": [26, 31], "buit": 27, "readi": [27, 35, 44], "meet": [27, 31], "button": 27, "sai": [27, 28, 34, 38, 42], "bu": [27, 34], "signal": [28, 29, 30, 31, 32, 35, 39, 41, 42], "characterist": [28, 35, 41], "ac": 28, "encod": [28, 31], "categor": 28, "tuner": [28, 30], "dure": 28, "bridg": 28, "todo": [28, 30, 41], "insert": [28, 29, 30, 34, 35], "illustr": [28, 41], "compress": 28, "accord": [28, 35], "lower": [28, 33, 35, 40, 41, 45], "fewer": 28, "temperatur": [29, 41], "molecul": [29, 42], "At": 29, "low": [29, 30, 31, 34, 39], "proport": 29, "compris": 29, "proxim": [29, 34], "resistor": [29, 31, 41], "dissip": 29, "besid": 29, "govern": [29, 40], "mostli": [29, 33, 40, 42], "unlik": [29, 30], "pin": [29, 32], "eas": [29, 39], "offer": [29, 30, 41], "tradeoff": [29, 30], "capac": 29, "applciat": 29, "constantli": 29, "360": 29, "fsr": 29, "spectral": 29, "maxima": 29, "achiev": [29, 33, 43], "consum": 29, "closer": 29, "rate": 29, "plasma": 30, "dispers": 30, "charg": 30, "carrier": 30, "inject": [30, 35], "refrac": 30, "voltag": 30, "revers": [30, 45], "bias": 30, "respond": 30, "induc": 30, "mechan": [30, 32], "quit": 30, "beyond": [30, 41], "resist": [30, 41], "capacit": [30, 41], "intrins": 30, "high": [30, 32, 33, 39], "cutoff": 30, "ten": 30, "ghz": 30, "suit": 30, "neglig": 30, "clariti": 30, "thermal": 30, "undop": 30, "copmris": 30, "experienc": [30, 37, 41], "cost": [30, 31, 32], "qualiti": 30, "deplet": 30, "moder": 30, "bia": 30, "analog": 31, "macro": 31, "lens": 31, "mirror": 31, "beamsplitt": 31, "analogu": 31, "micro": 31, "nano": 31, "discret": [31, 33], "inductor": 31, "cmo": 31, "classifi": 31, "mismatch": 31, "anisotropi": 31, "voa": 31, "photolithographi": 31, "photomask": 31, "photosensit": 31, "chemic": 31, "photoresist": 31, "lamp": 31, "ultraviolet": 31, "regim": 31, "stencil": 31, "alter": 31, "leav": 31, "underli": 31, "constraint": 31, "densiti": 31, "pcb": 31, "familiar": [31, 32, 34], "reject": 31, "didn": 31, "undergo": 31, "compat": [31, 32, 37], "hous": 31, "matur": 31, "store": [31, 35, 37, 44], "concret": 31, "conta": 31, "latter": 31, "regener": 31, "regress": 31, "mzm": 31, "least": 31, "arm": [31, 45], "rout": 31, "briefli": [31, 35], "touch": 31, "solv": [31, 34, 40, 41], "maxwel": [31, 40], "computation": [31, 35], "expens": 31, "volumetr": 31, "mesh": 31, "voxel": 31, "magnet": [31, 33, 40, 42, 43], "lot": [31, 42], "hour": 31, "pertin": 31, "abstract": [31, 33], "sequenc": 31, "yet": 31, "embrac": 32, "scientif": 32, "session": 32, "recompil": 32, "prototyp": 32, "rapidli": 32, "miniconda": [32, 37, 44], "bundl": 32, "frill": 32, "strip": 32, "anaconda": 32, "tend": 32, "latest": 32, "execut": 32, "easiest": [32, 38], "quick": 32, "best": [32, 34], "isol": [32, 34], "sandbox": 32, "destroi": 32, "mess": 32, "never": [32, 35], "worri": 32, "someon": 32, "venv": 32, "older": 32, "intel_env": 32, "subdir": 32, "osx": 32, "64": 32, "establish": 32, "hasn": 32, "promin": 32, "fundament": [32, 33, 35, 40, 45], "counterpart": 32, "matlab": 32, "defacto": 32, "databas": 32, "solver": [32, 40, 41], "pymeep": 32, "grab": 32, "nlopt": 32, "aren": 32, "increment": 32, "api": 32, "contract": 32, "task": 32, "evolv": 32, "accomplish": 32, "old": 32, "immatur": 32, "frequent": 32, "guarante": 32, "reproduc": 32, "semant": 32, "major": 32, "minor": 32, "patch": [32, 40], "incompat": 32, "manner": 32, "txt": 32, "24": [32, 43], "great": 33, "intuit": [33, 34, 43, 45], "surround": [33, 39, 40], "flaw": 33, "assumpt": 33, "misconcept": 33, "compen": 33, "challeng": 33, "slab": [33, 41], "implicit": 33, "fulli": [33, 34], "crucial": 33, "addition": 33, "impli": 33, "greater": [33, 43], "critic": 33, "except": 33, "anim": 33, "white": 33, "sent": 33, "orthogan": 33, "wavefront": 33, "interv": 33, "trough": 33, "special": [33, 38], "attent": 33, "clarifi": 33, "incremental": 33, "With": [33, 34], "backdrop": 33, "consider": [33, 41], "lost": [33, 35, 43, 45], "interferr": 33, "minim": 33, "emerg": 33, "obvious": 33, "mit": 33, "s3": 33, "amazonaw": 33, "fip": 33, "html": [33, 44], "theori": 34, "trip": 34, "particular": 34, "Such": 34, "circumfer": 34, "alpha": [34, 35, 43, 45], "cm": 34, "plug": 34, "b1": 34, "te_": 34, "a1": 34, "a2": 34, "b2": 34, "quantiti": 34, "opd": 34, "roundtrip": 34, "imped": [34, 35], "approx": 34, "half": [34, 40], "fwhm": 34, "aka": 34, "bandwidth": 34, "finess": 34, "narrow": 34, "sharp": 34, "q": 34, "sharper": 34, "filter": [34, 42], "whisper": 34, "galleri": 34, "feel": 34, "ipython": 34, "video": 34, "10um": 34, "d_pml": 34, "d_pad": 34, "r_in": 34, "r_out": 34, "wg_length": 34, "cylind": 34, "600": 34, "ebang4": 34, "book": [34, 35], "decai": [34, 40], "despit": 34, "wg_center": 34, "radio": 35, "rf": 35, "exit": 35, "nxn": 35, "ofen": 35, "notat": 35, "character": 35, "bechavior": 35, "metric": 35, "param": 35, "mind": 35, "accur": [35, 41], "life": 35, "detector": 35, "adapt": [35, 37], "pictur": [35, 43], "purpl": 35, "my": 35, "next": [35, 37, 40, 42, 44], "whole": 35, "bunch": 35, "three_d": 35, "reduc": 35, "gds_file": 35, "jkart": 35, "geometry_l": 35, "cell_l": 35, "port1_l": 35, "port2_l": 35, "port3_l": 35, "port4_l": 35, "source1_l": 35, "source2_l": 35, "source3_l": 35, "source4_l": 35, "lcen": 35, "diamet": 35, "t_oxid": 35, "t_si": 35, "t_air": 35, "78": 35, "cell_thick": 35, "min": 35, "cell_zmax": 35, "cell_zmin": 35, "si_zmax": 35, "si_zmin": 35, "numport": 35, "s_param": 35, "input_param": 35, "kernel": 35, "usabl": 35, "tab": 35, "href": 35, "viewoutput": 35, "gdsii_prism": 35, "zmax": 35, "zmin": 35, "gdsii_vol": 35, "fname": 35, "gdsii_prim": 35, "port1": 35, "port2": 35, "port3": 35, "port4": 35, "source1": 35, "source2": 35, "source3": 35, "source4": 35, "Not": 35, "oxide_cent": 35, "oxide_s": 35, "oxide_lay": 35, "eig_par": 35, "eig_match_freq": 35, "contructor": 35, "no_par": [35, 40], "odd_z": 35, "monitor": 35, "energi": 35, "modemonitor": 35, "add_mode_monitor": 35, "moderegion": 35, "No": 35, "correctli": [35, 44], "until_after_sourc": 35, "get_eigenmode_coeffici": 35, "nfreq": 35, "neg": [35, 40], "third": [35, 40], "spot": 35, "sour": 35, "5th": 35, "input_coeff": 35, "port1_coeff": 35, "port2_coeff": 35, "port3_coeff": 35, "port4_coeff": 35, "s11": 35, "6f": 35, "upper": [35, 40, 45], "s12": 35, "s13": 35, "s14": 35, "fun": 35, "transmitt": 35, "exercis": 35, "terribl": 35, "isn": [35, 43], "fortun": 35, "meant": 35, "port1_tran": 35, "port2_tran": 35, "port3_tran": 35, "port4_tran": 35, "percent": 35, "insertionloss": 35, "insertionloss_db": 35, "steadi": 35, "reset": 35, "visula": 35, "continuoussourc": [35, 45], "reach": 35, "eps_data": [35, 45], "get_epsilon": 35, "ez_data": 35, "real": 35, "get_efield_z": 35, "screen": 35, "dpi": 35, "imshow": [35, 45], "transpos": [35, 45], "interpol": [35, 45], "spline36": [35, 45], "cmap": [35, 40, 45], "flipud": 35, "axi": [35, 40, 42, 43, 45], "hopefulli": 35, "sens": 35, "sake": 35, "rest": [35, 43], "devi": 35, "ts": 35, "s1": 35, "ts2": 35, "ts3": 35, "ts4": 35, "input_pow": 35, "trans1": 35, "trans2": 35, "trans3": 35, "trans4": 35, "expect": [35, 45], "entri": 35, "breviti": 35, "paramt": 35, "mathwork": 35, "luceda": 35, "microwaves101": 35, "youtub": 35, "opinion": 37, "newcom": 37, "troubleshoot": 37, "disagre": 37, "primarili": 37, "nervou": 37, "navig": 37, "precompil": 37, "desig": 38, "boast": 38, "healthi": 38, "capabl": 38, "lighter": 38, "pylanc": 38, "tree": 38, "icon": 38, "ey": [38, 40], "candi": 38, "theme": 38, "menu": [38, 44], "pop": 38, "conduct": 39, "copper": 39, "47": [39, 40, 43], "44": [39, 40, 43], "confin": [40, 41], "newton": 40, "motion": [40, 42], "vibrat": 40, "violin": 40, "pipe": 40, "stationari": 40, "mpb": 40, "05": 40, "51": 40, "512": 40, "36mgplugin": 40, "36m39": 40, "1mmeep": 40, "28": 40, "glass": 40, "find_modes_waveguid": 40, "core_w": 40, "core_t": 40, "m3": 40, "m4": 40, "elecgtr": 40, "wg1": 40, "linewidth": 40, "edgecolor": 40, "facecolor": 40, "wg4": 40, "ax1": 40, "ax2": 40, "islic": 40, "add_patch": 40, "tight_layout": 40, "0th": [40, 45], "1st": [40, 45], "spatial": 40, "sinusoid": 40, "non": [40, 41, 42], "slice": [40, 42], "discontinu": 40, "boundari": [40, 43], "perpindicular": 40, "discontin": 40, "contin": 40, "horizont": 40, "domin": 40, "transvers": [40, 42, 43], "wg2": 40, "wg3": 40, "plot_ez": 40, "slight": 40, "aris": 40, "mm": 40, "find_mode_dispers": 40, "mode_numb": 40, "ng": 40, "3f": 40, "106": 40, "892": 40, "ignor": [41, 45], "mass": 41, "induct": 41, "exhaust": 41, "400nm": 41, "950nm": 41, "220nm": 41, "rib": 41, "rectangular": 41, "resembl": 41, "ridg": 41, "difficult": 41, "veloc": 41, "somewhat": 41, "tediou": 41, "streamlin": 41, "wavelegnth": 41, "atom": 41, "gather": [41, 43], "n_g": 41, "dn_": 41, "lambda_0": 41, "minu": 41, "band": 41, "behav": 42, "vector": [42, 43], "pure": 42, "perpendicular": 42, "tricki": 42, "dimension": 42, "arrow": 42, "bield": 42, "sun": 42, "unpolar": 42, "atmospher": 42, "sunlight": 42, "uniform": 42, "permit": 42, "unpredict": 42, "strike": 43, "snell": 43, "theta_i": 43, "theta_r": 43, "n_1sin": 43, "n_2sin": 43, "theta_t": 43, "gamma_": 43, "n_1co": 43, "n_2co": 43, "tau_": 43, "2n_1co": 43, "obliqu": 43, "observ": 43, "n1": 43, "n2": 43, "transmission_angl": 43, "arcsin": 43, "theta_i_deg": 43, "deg2rad": 43, "set_aspect": 43, "zip": 43, "p0": 43, "i1": 43, "rad2deg": 43, "0f": 43, "r1": 43, "t1": 43, "xlim": 43, "ylim": 43, "axvlin": 43, "axhlin": 43, "linestyl": 43, "xtick": 43, "ytick": 43, "tmp": 43, "ipykernel_19546": 43, "1351043342": 43, "runtimewarn": 43, "AND": 43, "simulate_reflect": 43, "radian": 43, "incident_angle_radian": 43, "reflected_angl": 43, "transmitted_angl": 43, "incident_wav": 43, "tan": 43, "reflected_wav": 43, "transmitted_wav": 43, "display_transmit": 43, "barrier": 43, "set_xlim": 43, "set_ylim": 43, "str": 43, "set_titl": 43, "var": 43, "folder": [43, 44], "9n": 43, "_g8r69x957zb59c09f92zznh0000gn": 43, "ipykernel_69883": 43, "921879874": 43, "runtim": 43, "sine": 43, "theta_c": 43, "critical_angl": 43, "crit_angl": 43, "51840906945382": 43, "progag": 43, "profit": 43, "understood": 43, "prompt": 44, "administr": 44, "restart": 44, "password": 44, "sh": 44, "git_and_github": 44, "wslpath": 44, "04": 44, "www": 44, "de": 44, "chapter": 44, "what_is_a_photonic_devic": 44, "arbitrari": 45, "focu": 45, "i_i": 45, "i_1": 45, "i_2": 45, "perfect": 45, "70": 45, "media": 45, "vice": 45, "versa": 45, "exact": 45, "perspect": 45, "inwg": 45, "outwg": 45, "mmi1x2_with_sbend": 45, "inwg_ref": 45, "splitter_ref": 45, "outwg_top_ref": 45, "outwg_bot_ref": 45, "make_geometry_from_gds_compon": 45, "core_mat": 45, "cladding_mat": 45, "component_point": 45, "to_np": 45, "1e3": 45, "pad_width": 45, "nx": 45, "ny": 45, "matgrid": 45, "materialgrid": 45, "do_averag": 45, "damp": 45, "dft": 45, "add_dft_field": 45, "get_arrai": 45, "e_data": 45, "choic": 45, "significantli": 45, "varianc": 45}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"camacholab": 0, "photon": [0, 28, 31], "bootcamp": 0, "tabl": 0, "content": 0, "front": 0, "matter": 0, "develop": 0, "environ": [0, 32], "passiv": [0, 26, 31], "devic": [0, 31, 35], "design": [0, 8, 9, 25, 27, 31, 45], "simul": [0, 8, 20, 21, 34, 35], "circuit": [0, 3, 28, 31, 35], "activ": [0, 31], "test": 0, "refer": [0, 3, 6, 23, 35], "adjoint": 1, "optim": [1, 25, 36], "advanc": 2, "compon": [2, 6, 21, 26], "cross": 2, "section": 2, "creat": 2, "us": [2, 3, 6, 21, 35], "componentspec": 2, "analyz": 3, "account": 3, "grate": [3, 14], "coupler": [3, 8, 10, 14], "curv": 3, "fit": 3, "extract": 3, "index": [3, 41], "refract": [3, 43], "compact": [4, 31], "model": [4, 21, 31, 33, 41], "element": 6, "polygon": 6, "port": [6, 35], "label": 6, "from": [6, 21], "translat": 6, "rotat": 6, "boolean": 6, "oper": 6, "parametr": 6, "cell": 6, "shape": [6, 36], "gener": 6, "ad": 6, "export": 6, "gd": [6, 11, 19], "file": 6, "import": [6, 35], "connect": [6, 38], "exercis": [6, 8, 18], "credit": 7, "sponsor": 7, "contributor": 7, "direct": 8, "supermod": 8, "visual": [8, 38], "coupl": [8, 34], "length": 8, "gap": 8, "between": 8, "waveguid": [8, 39, 40, 41, 43], "other": [8, 35], "split": [8, 45], "ratio": 8, "show": 8, "across": [8, 35], "dc": 8, "consider": [8, 42, 45], "sourc": [8, 14, 23, 35, 45], "rule": [9, 31], "check": [9, 21, 43], "edg": 10, "meep": [11, 19, 35], "find": [11, 35], "s": [11, 21, 35], "paramet": [11, 14, 35, 41], "through": [11, 43], "gmeep": 11, "git": 12, "github": 12, "glossari": 13, "how": [14, 28, 35], "doe": [14, 28], "work": [14, 28], "essenti": 14, "period": 14, "etch": 14, "depth": 14, "fill": 14, "factor": [14, 34], "introduct": 15, "klayout": 16, "klive": 16, "laboratori": 17, "tool": 17, "pyrolab": 17, "instal": 17, "autog": 17, "defin": [18, 31], "layer": [18, 31], "stack": [18, 31], "silicon": 18, "insul": 18, "gdsfactori": 18, "layermap": 18, "layerview": 18, "layerstack": 18, "multimod": 20, "interferomet": [20, 21, 22], "mmi": 20, "self": 20, "imag": 20, "applic": [20, 28, 34], "mach": [21, 22], "zehnder": [21, 22], "The": [21, 31], "mzi": 21, "write": 21, "netlist": 21, "callabl": 21, "analysi": 21, "balanc": 21, "quick": [21, 43], "definit": 21, "imblanc": 21, "thermo": 21, "optic": [21, 24, 33], "effect": [21, 41], "lai": 22, "out": 22, "open": 23, "softwar": [23, 37], "common": 23, "licens": 23, "mit": 23, "apach": 23, "2": [23, 35], "0": 23, "gplv3": 23, "agpl": 23, "i": 24, "o": 24, "invers": 25, "process": [27, 31], "kit": 27, "phase": [28, 29, 30], "shifter": [28, 29, 30], "what": [28, 31, 35, 39], "shift": 28, "A": 28, "simpl": 28, "heater": 29, "advantag": [29, 30], "thermal": 29, "disadvantag": [29, 30], "tune": 29, "effici": 29, "pn": 30, "pin": 30, "junction": 30, "ar": [31, 35], "compar": 31, "electron": 31, "vs": 31, "manufactur": 31, "geometri": [31, 35], "digit": 31, "python": 32, "conda": 32, "virtual": 32, "packag": 32, "manag": 32, "version": 32, "improv": 33, "rai": 33, "support": 33, "mode": [33, 40], "ring": 34, "reson": 34, "critic": [34, 43], "fsr": 34, "free": 34, "spectral": 34, "rang": 34, "qualiti": 34, "field": 34, "scatter": 35, "todo": 35, "why": 35, "demonstr": 35, "simphoni": 35, "quickli": 35, "an": 35, "arbitrari": 35, "step": 35, "1": 35, "run": 35, "singl": 35, "3": 35, "same": 35, "each": 35, "differ": 35, "frequenc": 35, "studio": 38, "code": 38, "configur": 38, "vscode": 38, "wsl": [38, 44], "window": [38, 44], "machin": 38, "wavegudi": 41, "spatial": 41, "dimens": 41, "group": 41, "polar": 42, "total": 43, "intern": 43, "reflect": 43, "kei": 43, "equat": 43, "demo": 43, "angl": 43, "propag": 43, "light": [43, 45], "onli": 44, "y": 45, "branch": 45, "combin": 45}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinxcontrib.bibtex": 9, "sphinx": 56}})
\ No newline at end of file
+Search.setIndex({"docnames": ["index", "pages/adjoint_optimization", "pages/advanced_components", "pages/analyzing_circuits", "pages/compact_models", "pages/component_convenience", "pages/components", "pages/credits", "pages/directional_couplers", "pages/drc", "pages/edge_couplers", "pages/gds_to_meep", "pages/git_and_github", "pages/glossary", "pages/grating_couplers", "pages/introduction", "pages/klayout", "pages/laboratory_tools", "pages/layer_stack", "pages/meep_to_gds", "pages/mmis", "pages/mzi", "pages/mzi_layout", "pages/open_source", "pages/optical_io", "pages/optimization", "pages/passive_components", "pages/pdks", "pages/phase_shifters", "pages/phase_shifters_heaters", "pages/phase_shifters_pn", "pages/photonic_devices", "pages/python", "pages/ray_optic_model", "pages/ring_resonators", "pages/scattering_parameters", "pages/shape_optimization", "pages/software", "pages/vscode", "pages/waveguides", "pages/waveguides_mode_solvers", "pages/waveguides_modelling", "pages/waveguides_polarization", "pages/waveguides_tir", "pages/wsl", "pages/y_branch"], "filenames": ["index.md", "pages/adjoint_optimization.ipynb", "pages/advanced_components.ipynb", "pages/analyzing_circuits.ipynb", "pages/compact_models.ipynb", "pages/component_convenience.ipynb", "pages/components.ipynb", "pages/credits.md", "pages/directional_couplers.ipynb", "pages/drc.ipynb", "pages/edge_couplers.ipynb", "pages/gds_to_meep.ipynb", "pages/git_and_github.md", "pages/glossary.md", "pages/grating_couplers.ipynb", "pages/introduction.md", "pages/klayout.md", "pages/laboratory_tools.ipynb", "pages/layer_stack.ipynb", "pages/meep_to_gds.ipynb", "pages/mmis.ipynb", "pages/mzi.ipynb", "pages/mzi_layout.ipynb", "pages/open_source.md", "pages/optical_io.md", "pages/optimization.ipynb", "pages/passive_components.md", "pages/pdks.ipynb", "pages/phase_shifters.ipynb", "pages/phase_shifters_heaters.ipynb", "pages/phase_shifters_pn.ipynb", "pages/photonic_devices.ipynb", "pages/python.md", "pages/ray_optic_model.ipynb", "pages/ring_resonators.ipynb", "pages/scattering_parameters.ipynb", "pages/shape_optimization.ipynb", "pages/software.md", "pages/vscode.md", "pages/waveguides.ipynb", "pages/waveguides_mode_solvers.ipynb", "pages/waveguides_modelling.ipynb", "pages/waveguides_polarization.ipynb", "pages/waveguides_tir.ipynb", "pages/wsl.md", "pages/y_branch.ipynb"], "titles": ["CamachoLab Photonics Bootcamp", "Adjoint optimization", "Advanced Components", "Analyzing circuits", "Compact models", "<no title>", "Components", "Credits", "Directional couplers", "Design rule checks", "Edge couplers", "GDS to Meep", "Git (and GitHub)", "Glossary", "Grating couplers", "Introduction", "KLayout", "Laboratory Tools", "Defining the layer stack", "Meep to GDS", "Multimode Interferometers (MMIs)", "Mach-Zehnder interferometers", "Laying out a Mach-Zehnder Interferometer", "Open source software", "Optical I/O", "Optimization and inverse design", "Passive Components", "Process design kits", "Phase Shifters", "Heaters", "PN and PIN Junctions", "What are photonic devices?", "Python", "Improving the Ray-optic Model", "Ring Resonators", "Scattering parameters", "Shape optimization", "Software", "Visual Studio Code", "Waveguides", "Waveguide modes", "Modelling Wavegudies", "Polarization", "Total Internal Reflection", "WSL (Windows-only)", "Y-Branches"], "terms": {"sponsor": 0, "googl": [0, 7, 15, 23], "thi": [0, 3, 6, 8, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 40, 41, 42, 43, 44, 45], "intend": [0, 11, 23], "those": [0, 6, 21, 23, 45], "experi": [0, 21, 30, 37, 43], "electr": [0, 6, 8, 13, 14, 15, 18, 20, 21, 26, 28, 29, 30, 31, 33, 34, 39, 40, 42, 43], "engin": [0, 15, 21, 23, 31], "ar": [0, 3, 6, 8, 9, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 23, 26, 27, 28, 29, 30, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43, 44, 45], "interest": [0, 15, 21], "learn": [0, 3, 6, 22, 27, 32], "about": [0, 6, 8, 17, 21, 23, 32, 33, 34, 35, 37, 38, 41, 42], "integr": [0, 13, 15, 16, 18, 27, 31, 38], "applic": [0, 8, 13, 21, 23, 29, 30, 32, 35], "cours": [0, 8, 12, 13, 15, 23, 26, 32, 37, 38, 43], "wa": [0, 21, 35, 44], "creat": [0, 6, 8, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 31, 32, 33, 34, 35, 37, 40, 43, 44, 45], "collabor": [0, 12, 15, 23], "between": [0, 11, 13, 15, 20, 21, 28, 29, 30, 31, 33, 34, 35, 41, 43, 45], "brigham": 0, "young": 0, "univers": [0, 18], "s": [0, 3, 6, 12, 13, 14, 15, 16, 18, 22, 23, 28, 29, 30, 31, 32, 34, 38, 40, 41, 42, 43, 44, 45], "skywat": 0, "project": [0, 12, 23], "introduct": [0, 21], "credit": 0, "open": [0, 6, 8, 12, 13, 14, 15, 16, 17, 20, 27, 32, 34, 37, 38, 41, 44], "sourc": [0, 6, 11, 12, 13, 15, 16, 17, 18, 19, 20, 31, 32, 34, 37, 38], "softwar": [0, 6, 12, 13, 15, 16, 17, 18, 27, 32, 35], "what": [0, 6, 8, 11, 12, 21, 22, 23, 42, 43], "defin": [0, 3, 6, 8, 9, 11, 14, 20, 21, 34, 35, 40, 41, 43], "layer": [0, 6, 8, 13, 20, 22, 27, 35, 39, 45], "stack": [0, 13, 27, 32], "compon": [0, 8, 11, 13, 14, 15, 18, 19, 20, 22, 23, 24, 31, 33, 35, 40, 42, 45], "waveguid": [0, 6, 13, 14, 18, 20, 21, 26, 28, 29, 30, 31, 33, 34, 35, 42, 45], "optic": [0, 6, 14, 18, 20, 26, 29, 30, 31, 34, 42, 43, 45], "i": [0, 6, 8, 11, 14, 20, 21, 28, 32, 34, 35, 37, 43], "o": [0, 6], "optim": [0, 3, 14, 21, 31, 32, 35, 45], "invers": [0, 31, 43], "compact": [0, 13, 15, 27, 45], "model": [0, 3, 13, 15, 18, 27, 35, 40, 43], "rule": [0, 13, 27, 32], "check": [0, 11, 12, 13, 18, 31, 35], "process": [0, 6, 8, 11, 13, 18, 29, 32, 35, 41], "kit": [0, 13], "mach": [0, 20, 31], "zehnder": [0, 20, 31], "interferomet": [0, 6, 13, 26, 31], "lai": [0, 6, 16], "out": [0, 6, 8, 11, 13, 14, 16, 20, 21, 32, 33, 34, 35, 40, 42, 45], "advanc": 0, "phase": [0, 8, 20, 21, 31, 33, 35, 45], "shifter": [0, 21, 31], "analyz": [0, 15, 34], "glossari": 0, "repositori": [0, 12, 37], "pdk": [0, 6, 9, 13, 18, 21, 22, 27, 31], "document": [0, 15, 17, 21, 34, 35], "In": [3, 6, 8, 11, 12, 14, 15, 18, 20, 21, 22, 23, 26, 28, 29, 30, 31, 32, 34, 35, 37, 38, 40, 45], "section": [3, 6, 14, 16, 18, 24, 26, 31, 32, 33, 35, 37, 41, 42, 44], "we": [3, 6, 8, 12, 13, 14, 15, 17, 18, 21, 22, 23, 24, 26, 27, 28, 31, 32, 33, 34, 35, 37, 38, 40, 41, 42, 43, 44, 45], "how": [3, 6, 8, 11, 13, 15, 18, 20, 21, 22, 26, 32, 33, 34, 37, 40, 41, 42, 43, 44], "interpret": [3, 32], "data": [3, 13, 18, 22, 35, 42], "collect": [3, 21, 22], "from": [3, 8, 11, 12, 13, 14, 15, 16, 18, 19, 20, 22, 28, 29, 30, 31, 32, 33, 34, 35, 38, 40, 42, 44, 45], "our": [3, 6, 17, 21, 22, 27, 30, 33, 34, 35, 37, 40], "whenev": 3, "obtain": [3, 29], "import": [3, 8, 11, 14, 18, 19, 20, 21, 22, 23, 32, 33, 34, 40, 42, 43, 45], "rememb": [3, 34], "renspons": 3, "chang": [3, 6, 8, 12, 13, 14, 20, 21, 22, 23, 28, 29, 30, 31, 32, 33, 34, 35, 40, 41, 43, 45], "wavelength": [3, 8, 14, 18, 20, 21, 31, 33, 34, 35, 40, 41], "well": [3, 6, 11, 12, 16, 30, 31, 32, 33, 42], "being": [3, 8, 16, 20, 21, 23, 31, 33, 45], "test": [3, 11, 12, 15, 17, 18, 22, 32, 35, 42], "order": [3, 6, 13, 14, 26, 29, 31, 33, 35, 37, 40, 45], "properli": 3, "must": [3, 6, 8, 11, 13, 18, 21, 23, 29, 34, 45], "first": [3, 8, 11, 12, 14, 21, 22, 26, 28, 34, 35, 40, 42, 43, 44], "deemb": 3, "depend": [3, 8, 18, 21, 23, 28, 29, 32, 40, 41, 42, 43], "can": [3, 6, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45], "done": [3, 6, 19, 31, 32, 35, 38], "varieti": [3, 6, 14, 20], "wai": [3, 6, 15, 20, 21, 23, 28, 29, 31, 32, 33, 34, 35, 37, 38, 41, 43], "includ": [3, 6, 11, 12, 13, 15, 16, 17, 18, 20, 21, 23, 27, 28, 29, 30, 31, 32, 38, 40, 41, 44], "consid": [3, 8, 14, 20, 21, 30, 33, 41, 42, 45], "follow": [3, 6, 13, 14, 19, 21, 22, 26, 30, 32, 33, 34, 37, 41, 43, 44], "via": [3, 12, 17, 18, 32, 34, 39, 44], "sweep": [3, 27], "numpi": [3, 6, 8, 12, 14, 21, 32, 34, 35, 40, 43], "np": [3, 6, 8, 14, 18, 34, 40, 43], "matplotlib": [3, 6, 12, 14, 18, 21, 32, 34, 35, 40, 43, 45], "pyplot": [3, 14, 21, 34, 35, 40, 43, 45], "plt": [3, 14, 21, 34, 35, 40, 43, 45], "poly_ord": 3, "4": [3, 6, 8, 20, 21, 22, 32, 34, 35, 40], "load": [3, 11, 16, 34], "file": [3, 8, 11, 12, 13, 14, 15, 16, 18, 19, 20, 22, 23, 31, 32, 34, 35, 37, 38, 44], "oscope_data": 3, "npz": 3, "power": [3, 8, 13, 16, 20, 21, 29, 31, 34, 35], "here": [3, 6, 8, 14, 16, 18, 23, 24, 26, 32, 34, 35, 37, 38, 41, 44, 45], "raw": 3, "oscilloscop": 3, "plot": [3, 6, 8, 11, 18, 21, 22, 32, 35, 40, 43, 45], "titl": 3, "xlabel": [3, 8], "nm": [3, 14, 18, 21], "ylabel": [3, 8], "dbm": 3, "show": [3, 6, 11, 18, 20, 21, 27, 34, 35, 40, 43, 45], "The": [3, 6, 8, 11, 13, 14, 15, 18, 19, 20, 22, 23, 26, 28, 29, 30, 32, 33, 34, 35, 37, 40, 41, 42, 43, 44, 45], "parabol": 3, "shape": [3, 13, 24, 31, 35, 40, 41, 45], "graph": [3, 34, 42], "due": [3, 21, 26, 33, 45], "respons": [3, 21, 45], "which": [3, 6, 8, 11, 12, 13, 14, 20, 21, 22, 23, 29, 30, 31, 32, 33, 34, 35, 37, 39, 40, 42, 43, 44, 45], "obfusc": 3, "try": [3, 22], "remov": [3, 8, 14, 20, 29, 30, 31, 32, 34], "effect": [3, 8, 14, 29, 30, 40], "parabola": 3, "subtract": [3, 6], "function": [3, 6, 8, 11, 14, 19, 20, 21, 22, 27, 32, 34, 35, 40, 41, 43], "want": [3, 6, 11, 12, 19, 20, 21, 22, 23, 32, 34, 35, 41, 44, 45], "case": [3, 8, 14, 16, 18, 21, 22, 28, 32, 43, 45], "def": [3, 6, 43, 45], "model_parabola": 3, "x": [3, 6, 8, 11, 20, 35, 40, 42, 43, 45], "b": [3, 6, 8, 43], "c": [3, 6, 8, 11, 21, 22, 32], "d": [3, 7, 15, 32, 35, 41, 42, 43, 44], "e": [3, 6, 8, 11, 12, 18, 21, 28, 31, 34, 35, 37, 40, 41, 45], "return": [3, 6, 11, 19, 21, 35, 40, 43, 45], "3": [3, 8, 11, 14, 15, 18, 19, 20, 21, 22, 23, 27, 32, 34, 39, 40, 43, 45], "2": [3, 6, 8, 11, 14, 15, 18, 19, 20, 21, 22, 27, 32, 33, 34, 40, 43, 45], "now": [3, 6, 21, 22, 24, 32, 33, 34, 35, 38, 40, 45], "just": [3, 6, 8, 11, 13, 14, 15, 17, 21, 22, 28, 32, 35, 40, 45], "need": [3, 6, 11, 12, 21, 22, 23, 32, 35, 37, 41, 42, 44, 45], "paramet": [3, 6, 8, 20, 21, 22, 31, 34], "do": [3, 6, 15, 18, 19, 22, 23, 35, 37, 38, 42], "curve_fit": 3, "scipi": [3, 12, 32], "take": [3, 6, 8, 11, 13, 19, 21, 22, 29, 31, 34, 35, 42, 43, 44], "y": [3, 6, 8, 11, 20, 21, 22, 26, 28, 35, 40, 42, 43], "an": [3, 6, 8, 9, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 23, 29, 30, 31, 32, 33, 34, 40, 41, 42, 43, 45], "initi": [3, 6, 8, 21], "guess": 3, "It": [3, 6, 8, 11, 13, 14, 15, 16, 18, 19, 21, 23, 30, 32, 33, 34, 35, 38, 40, 41, 42, 44], "covari": 3, "matrix": [3, 21, 35], "start": [3, 6, 21, 32, 33, 34, 35, 44], "end": [3, 8, 13, 14, 21, 23, 32, 35, 41, 43, 45], "argmax": 3, "1560": 3, "1580": 3, "help": [3, 6, 9, 12, 13, 16, 18, 21, 22, 27, 30, 33], "term": [3, 8, 13, 21, 35], "speed": [3, 8, 29, 30, 31, 41], "accuraci": 3, "add": [3, 6, 8, 18, 19, 20, 22, 32, 35, 41, 43], "especi": [3, 11, 23, 29, 30, 32], "true": [3, 8, 11, 14, 18, 20, 21, 34, 35, 40, 41, 43, 45], "more": [3, 6, 8, 11, 15, 16, 17, 18, 20, 21, 23, 28, 30, 31, 32, 33, 34, 35, 38, 40, 41, 42, 45], "complic": [3, 6, 33, 34, 41, 45], "initial_guess": 3, "1": [3, 6, 8, 11, 14, 15, 18, 19, 20, 21, 23, 27, 32, 33, 34, 39, 40, 41, 43, 45], "optimal_paramet": 3, "covariance_matrix": 3, "label": [3, 11, 18, 21, 22, 43], "legend": [3, 43], "simpli": [3, 6, 14, 21, 32, 33, 34, 35], "offset": [3, 30], "make": [3, 6, 8, 13, 19, 20, 21, 22, 23, 24, 27, 30, 31, 32, 35, 38, 45], "easier": [3, 6, 38, 45], "see": [3, 8, 11, 13, 14, 18, 20, 21, 22, 23, 27, 28, 30, 34, 35, 40, 42, 45], "power_correct": 3, "max": [3, 35], "correct": [3, 11], "ones": [3, 6, 32], "len": [3, 40], "averag": [3, 14, 41], "gdsfactori": [6, 8, 11, 13, 15, 19, 20, 21, 22, 32, 34, 35, 40, 45], "them": [6, 8, 11, 15, 20, 21, 22, 23, 26, 30, 31, 32, 35, 37], "togeth": [6, 8, 12, 18, 31, 32, 33], "larger": [6, 8, 13, 15, 21, 31, 45], "design": [6, 13, 14, 15, 16, 18, 19, 20, 22, 23, 24, 26, 34, 35], "simpl": [6, 15, 18, 21, 22, 29, 31, 32, 39, 41, 43], "complex": [6, 30, 31, 32, 35], "construct": [6, 13, 14, 20, 21, 28, 31, 33, 34, 35, 45], "exampl": [6, 11, 12, 13, 15, 18, 19, 20, 21, 23, 26, 27, 28, 31, 32, 35, 40, 41], "contain": [6, 11, 13, 18, 19, 21, 31, 32, 33, 40], "other": [6, 11, 12, 13, 17, 18, 20, 21, 23, 28, 29, 30, 31, 32, 33, 34, 38, 40, 41, 42, 45], "thei": [6, 9, 11, 12, 13, 15, 18, 20, 21, 23, 31, 32, 33, 35, 41, 44, 45], "usual": [6, 9, 13, 15, 18, 31], "have": [6, 8, 11, 12, 13, 14, 15, 18, 20, 21, 23, 27, 28, 30, 31, 32, 33, 34, 35, 37, 38, 40, 41, 42, 44, 45], "allow": [6, 8, 11, 12, 13, 15, 16, 21, 23, 31, 35, 38], "you": [6, 8, 9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 27, 31, 32, 34, 35, 37, 38, 40, 43, 44, 45], "factori": [6, 27], "when": [6, 8, 11, 14, 16, 18, 21, 23, 28, 30, 31, 32, 34, 35, 40, 41, 42, 43, 45], "align": [6, 8], "each": [6, 8, 11, 13, 14, 16, 17, 18, 20, 21, 29, 31, 32, 34, 40, 41, 43, 45], "taken": [6, 18, 35], "care": [6, 35, 41, 42], "automat": [6, 16, 17, 18], "made": [6, 13, 23, 24, 39, 40, 41], "up": [6, 8, 11, 12, 13, 14, 18, 20, 21, 23, 29, 31, 32, 34, 35, 38, 41, 44, 45], "option": [6, 11, 15, 38], "most": [6, 8, 11, 12, 14, 16, 18, 19, 23, 29, 32, 33, 34, 35, 37, 39, 41, 42, 45], "basic": [6, 14, 16, 20, 21, 22, 32, 35, 43], "build": [6, 13, 21, 26, 31, 33, 34, 44], "object": [6, 8, 18, 19, 21, 33, 35, 40], "gf": [6, 11, 20, 21, 22, 45], "seri": [6, 15, 32], "conveni": [6, 21, 27], "visual": [6, 13, 14, 18, 19, 21, 33, 37, 40], "jupyt": [6, 15, 35, 38], "notebook": [6, 11, 15, 34], "For": [6, 11, 13, 17, 18, 20, 21, 22, 27, 28, 29, 30, 31, 32, 34, 35, 37, 41, 43], "plot_holoview": 6, "plot_jupyt": 6, "plot_klayout": 6, "plot_matplotlib": 6, "plot_netlist": 6, "plot_netlist_flat": 6, "plot_widget": 6, "some": [6, 8, 11, 13, 14, 16, 17, 18, 21, 23, 26, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 40, 42, 45], "alias": 6, "default": [6, 21, 22, 35, 37, 38, 44, 45], "could": [6, 11, 13, 18, 20, 21, 33, 35, 42], "keyword": [6, 11, 21], "argument": [6, 11, 21, 22, 43], "below": [6, 8, 11, 14, 18, 19, 20, 21, 22, 23, 28, 33, 34, 35, 40, 42, 43], "format": [6, 8, 14, 15, 16, 17, 20, 21, 34, 35], "ll": [6, 12, 15, 21, 22, 23, 32, 34, 35, 37, 40, 41, 42, 44], "explicit": [6, 21, 23], "But": [6, 23, 35], "recommend": [6, 8, 12, 17, 32, 37, 38, 44], "displai": [6, 16, 34, 43], "interact": [6, 8, 14, 26, 32, 33, 35, 37, 41], "klayout": [6, 18, 22, 27, 31, 35, 37, 44], "widget": 6, "lowest": [6, 13], "block": [6, 8, 13, 14, 19, 21, 26, 31, 34, 35, 44, 45], "list": [6, 11, 13, 19, 21, 22, 31, 32, 35, 41], "vertic": [6, 19, 22, 31, 40, 43], "adjac": 6, "pair": [6, 18], "line": [6, 8, 12, 13, 14, 17, 20, 31, 32, 33, 34, 35, 40, 42, 43, 44], "doe": [6, 8, 21, 23, 33, 42], "cross": [6, 8, 14, 15, 16, 18, 40, 41], "ani": [6, 8, 11, 13, 14, 18, 22, 23, 27, 30, 32, 33, 35, 37, 38, 40, 43, 45], "within": [6, 11, 13, 16, 20, 21, 28, 29, 30, 31, 33, 34, 35, 40, 41], "although": [6, 13, 18, 31, 37], "overlap": [6, 8, 34], "parallel": [6, 8, 11, 40, 42], "lie": 6, "upon": [6, 33, 43], "point": [6, 13, 33, 40], "exist": [6, 8, 13, 18, 23, 31, 32, 35, 40], "geometri": [6, 8, 11, 13, 14, 18, 19, 20, 22, 33, 34, 40, 41, 45], "instead": [6, 11, 13, 14, 20, 21, 23, 30, 31, 32, 35, 41], "new": [6, 13, 15, 16, 18, 28, 31, 32, 44], "one": [6, 8, 11, 13, 14, 15, 18, 20, 21, 22, 23, 28, 29, 30, 31, 32, 34, 37, 40, 41, 42, 45], "That": [6, 23, 42], "parameter": [6, 21, 31, 41], "call": [6, 8, 18, 20, 21, 29, 30, 31, 32, 33, 34, 35, 40, 42, 43], "even": [6, 8, 31, 32, 41], "hierarch": [6, 13], "nest": 6, "save": [6, 8, 11, 13, 14, 19, 20, 32, 34], "memori": [6, 13, 31], "becaus": [6, 8, 12, 14, 18, 20, 21, 23, 29, 30, 31, 34, 35, 41, 42, 43, 45], "core": [6, 8, 11, 18, 33, 39, 40, 41, 43], "onli": [6, 11, 12, 13, 15, 17, 20, 21, 23, 26, 32, 33, 34, 35, 37, 41, 42, 45], "onc": [6, 16, 31, 32, 35, 42], "referenc": 6, "mani": [6, 8, 11, 12, 13, 15, 17, 21, 22, 23, 27, 29, 31, 32, 34, 41, 45], "time": [6, 8, 11, 12, 13, 14, 16, 20, 21, 23, 28, 29, 30, 31, 32, 33, 34, 35, 41, 43, 44, 45], "These": [6, 8, 11, 12, 13, 18, 21, 23, 31, 33, 35, 42, 43], "place": [6, 8, 13, 20, 29, 31, 37], "anywher": [6, 32], "independ": [6, 29], "all": [6, 8, 12, 13, 14, 15, 17, 18, 20, 21, 22, 23, 27, 31, 32, 33, 34, 35, 37, 38, 41, 42, 43, 45], "appli": [6, 16, 18, 30, 35], "base": [6, 8, 12, 17, 20, 23, 29, 30, 31, 32, 35, 43, 45], "instanc": [6, 11, 18, 21, 31, 32], "had": [6, 11, 21, 31], "same": [6, 8, 11, 14, 15, 17, 18, 20, 21, 23, 29, 30, 31, 32, 34, 45], "taper": [6, 14, 20, 33], "its": [6, 8, 11, 17, 18, 21, 22, 23, 29, 31, 32, 34, 35, 41, 42], "input": [6, 8, 13, 20, 21, 22, 31, 34, 35, 45], "output": [6, 8, 11, 13, 14, 20, 21, 31, 34, 35, 43, 45], "repeatedli": 6, "would": [6, 11, 13, 14, 18, 20, 21, 23, 31, 33, 35, 44], "good": [6, 21, 35], "requir": [6, 8, 18, 21, 23, 27, 29, 30, 31, 32], "higher": [6, 18, 28, 29, 30, 33, 34, 35, 40, 41, 45], "level": [6, 14, 21, 32], "By": [6, 11, 14, 21, 30], "draw": [6, 22], "bank": 6, "without": [6, 13, 21, 23, 27, 29, 30, 31, 32, 33], "much": [6, 8, 11, 21, 33, 34, 35, 38], "pattern": [6, 14, 18, 21, 31, 33], "where": [6, 8, 11, 14, 20, 21, 23, 29, 32, 34, 35, 42, 45], "across": [6, 13, 21], "compos": [6, 31], "interconnect": [6, 13], "compound": 6, "intermedi": 6, "specifi": [6, 8, 11, 13, 14, 19, 32, 35, 41], "direct": [6, 13, 14, 19, 20, 26, 31, 33, 34, 35, 40, 42, 43, 45], "face": [6, 13], "either": [6, 11, 13, 31, 42, 45], "also": [6, 8, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 28, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 42, 43, 44, 45], "width": [6, 8, 13, 14, 18, 19, 20, 21, 30, 31, 34, 40, 41], "attach": [6, 11, 13], "your": [6, 8, 9, 11, 12, 13, 14, 16, 18, 19, 21, 23, 27, 31, 32, 34, 35, 37, 38, 42, 44], "convei": 6, "inform": [6, 13, 15, 17, 18, 21, 23, 27, 28, 30, 31, 35, 38], "otherwis": [6, 21, 34], "seen": [6, 8, 11, 23, 34], "A": [6, 8, 13, 14, 18, 20, 21, 23, 27, 29, 30, 31, 32, 34, 37, 38, 39, 40, 41, 42, 45], "add_label": 6, "pass": [6, 11, 21, 28, 31, 32, 35], "text": [6, 8, 18, 21, 23, 27, 32, 34, 38], "locat": [6, 14, 19, 44], "should": [6, 8, 11, 15, 18, 21, 27, 35, 38, 45], "shown": [6, 8, 19, 34, 35], "posit": [6, 18, 21, 31, 34, 35, 40, 42], "center": [6, 8, 14, 19, 20, 21, 30, 34, 35, 45], "passiv": [6, 24], "sever": [6, 8, 11, 16, 28, 29, 30, 32, 38, 41], "than": [6, 8, 14, 18, 20, 23, 28, 30, 31, 33, 43, 45], "mai": [6, 8, 11, 12, 13, 18, 20, 21, 23, 28, 29, 30, 31, 35], "part": [6, 8, 9, 11, 21, 22, 23, 27, 35, 39, 40, 42, 45], "track": [6, 12, 32, 35], "number": [6, 8, 11, 13, 18, 20, 23, 32, 34, 35, 40], "As": [6, 8, 11, 14, 15, 18, 21, 23, 29, 30, 35, 42], "let": [6, 13, 21, 22, 28, 33, 34, 35, 40, 41, 42, 43], "tupl": [6, 18, 21], "coordin": 6, "circular": 6, "fashion": [6, 13], "repeat": 6, "last": [6, 22], "infer": 6, "close": [6, 8, 34], "script": [6, 8, 18, 20, 31, 32, 34, 44], "complet": [6, 8, 12, 13, 15, 18, 29, 34, 35, 37, 45], "run": [6, 8, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 27, 29, 32, 34, 40, 44, 45], "final": [6, 21, 22, 35], "t_length": 6, "10": [6, 8, 18, 19, 21, 22, 32, 34, 35, 40, 43, 45], "t_width_in": 6, "0": [6, 8, 11, 14, 18, 19, 20, 21, 22, 32, 33, 34, 35, 40, 42, 43, 45], "5": [6, 8, 11, 14, 19, 20, 21, 22, 34, 35, 40, 43, 45], "t_width_out": 6, "add_polygon": 6, "int": [6, 40], "assum": [6, 8, 14, 20, 21, 34, 37, 44, 45], "ve": [6, 15, 31, 32, 35], "provid": [6, 12, 21, 23, 32, 37, 38], "datatyp": [6, 18], "poli": 6, "45": [6, 8, 14, 18, 19, 20, 34, 45], "move": [6, 12, 34, 35, 44], "come": [6, 8, 11, 23, 30, 33, 35, 41, 45], "manipul": [6, 19, 31], "easili": [6, 11, 22, 32, 44, 45], "differ": [6, 8, 11, 13, 14, 15, 19, 20, 21, 22, 23, 24, 28, 31, 32, 34, 39, 40, 41, 42, 43, 44, 45], "combin": [6, 8, 13, 20, 21, 28, 34], "mean": [6, 8, 11, 21, 22, 23, 26, 31, 32, 34, 35, 42, 45], "merg": [6, 12], "xor": 6, "To": [6, 8, 11, 12, 14, 15, 20, 24, 29, 32, 34, 35, 38, 42, 44], "two": [6, 8, 11, 13, 18, 20, 21, 23, 28, 29, 30, 31, 33, 34, 39, 42, 43, 45], "group": [6, 18, 40], "piec": [6, 13], "involv": [6, 31], "itself": [6, 21, 23, 29, 32, 34, 35, 40, 41], "target": [6, 21], "result": [6, 8, 11, 13, 14, 15, 20, 21, 30, 31, 34, 43], "components_a": 6, "components_b": 6, "accept": 6, "equival": [6, 8], "t": [6, 8, 14, 15, 17, 18, 20, 21, 22, 29, 31, 32, 34, 35, 37, 38, 40, 41, 42, 43, 44, 45], "linspac": [6, 21], "pi": [6, 8, 20, 21, 34], "100": [6, 8, 35], "co": [6, 21, 43], "sin": [6, 8, 14, 43], "circl": [6, 34], "triangl": 6, "pacman": 6, "precis": [6, 13, 20, 21, 29], "1e": 6, "6": [6, 8, 21, 35], "origin": [6, 23, 32, 34], "boolean_subtract": 6, "add_ref": [6, 21, 45], "talk": [6, 34, 41], "later": [6, 21, 33], "dimens": [6, 13, 42], "redefin": 6, "everi": [6, 11, 21, 35, 45], "write": [6, 11, 23, 32, 38], "addit": [6, 11, 28], "calcul": [6, 21, 34, 35, 40, 41, 43], "cach": 6, "correspond": [6, 11, 18, 21, 29, 31, 33, 41, 43], "so": [6, 8, 11, 13, 18, 20, 21, 22, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 41, 43, 45], "subsequ": 6, "rebuild": 6, "enabl": [6, 8, 17, 23, 28, 35], "decor": 6, "If": [6, 8, 12, 14, 19, 20, 21, 23, 27, 31, 32, 34, 35, 37, 38, 42, 43, 44, 45], "re": [6, 13, 15, 18, 21, 23, 32, 35, 37, 38], "develop": [6, 12, 13, 23, 31, 38], "modifi": [6, 11, 21, 23, 31, 35], "content": [6, 23], "again": [6, 30, 32, 35], "code": [6, 11, 12, 13, 15, 16, 18, 19, 21, 22, 23, 32, 34, 35, 37, 43, 44], "won": [6, 15, 18, 21, 32, 35], "clear": [6, 33], "clear_cach": 6, "librari": [6, 21, 23, 27, 32, 41, 45], "reusabl": 6, "circuit": [6, 8, 13, 14, 15, 16, 17, 19, 20, 21, 26, 27, 34, 37, 39, 41, 45], "anoth": [6, 8, 11, 18, 20, 21, 23, 28, 30, 35, 42], "fantast": 6, "benefit": [6, 37], "type": [6, 18, 29, 30, 32, 35, 45], "hint": 6, "valid": [6, 9, 13, 35], "name": [6, 11, 18, 19, 21, 22, 23, 30, 32, 35, 43], "abl": [6, 8, 12, 20, 31, 32], "taper_compon": 6, "length": [6, 13, 14, 20, 21, 22, 28, 29, 31, 34, 45], "float": [6, 21], "width_in": 6, "width_out": 6, "like": [6, 8, 11, 13, 14, 15, 17, 18, 19, 21, 23, 28, 29, 30, 32, 35, 37, 38, 39, 40, 41, 43, 45], "quickli": 6, "rectangl": [6, 40], "ellips": [6, 14], "ring": [6, 13, 22, 26, 27], "bend_circular": 6, "bend_eul": 6, "know": [6, 15, 34, 35, 37, 42], "outward": 6, "awai": [6, 8, 29], "match": [6, 8, 11, 20, 34, 35], "respect": [6, 8, 34, 41, 42, 43], "expand": [6, 28, 29], "earlier": 6, "note": [6, 8, 14, 20, 21, 22, 23, 34, 35, 44], "common": [6, 13, 16, 18, 20, 21, 26, 29, 30, 32, 41, 45], "toward": [6, 35], "o1": [6, 11, 20, 21, 45], "orient": [6, 22, 42], "180": [6, 8], "port_typ": 6, "o2": [6, 11, 20, 21, 45], "add_port": [6, 19], "And": [6, 15, 21], "convent": [6, 13, 21, 30, 31, 42], "clock": 6, "wise": 6, "bottom": [6, 38], "left": [6, 8, 14, 18, 34, 35, 38, 43, 45], "corner": [6, 38], "prefix": 6, "index": [6, 8, 14, 18, 19, 20, 21, 26, 28, 29, 30, 32, 33, 34, 35, 37, 39, 40, 43, 45], "previous": [6, 18], "essenti": [6, 9, 16, 22], "pointer": [6, 32], "There": [6, 8, 11, 13, 18, 21, 22, 29, 32, 34, 35, 38, 41, 45], "limit": [6, 20], "gdsii": [6, 35], "specif": [6, 8, 11, 14, 17, 18, 23, 32, 35, 38, 43], "built": [6, 23, 27, 32, 33, 40], "around": [6, 12, 22, 32, 34, 35], "previou": [6, 21, 32], "2x2": [6, 11, 20, 35], "multimod": [6, 26, 45], "mmi": [6, 11, 13, 19, 26, 35], "wide": [6, 13], "therefor": [6, 21, 23, 29, 31, 32, 37, 45], "side": [6, 30, 34, 41, 45], "four": [6, 34, 35], "redraw": 6, "individu": [6, 44], "right": [6, 8, 14, 23, 34, 35, 43, 44, 45], "off": [6, 20, 31, 32, 35, 43, 45], "bat": 6, "mmi2x2": [6, 11, 20, 35], "gap": [6, 22, 34, 45], "125": 6, "determin": [6, 8, 14, 20, 40, 41, 43, 45], "taper_length": [6, 19], "taper_width_in": 6, "taper_width_out": 6, "taper_c": 6, "bodi": [6, 20], "rect": 6, "size": [6, 8, 13, 14, 19, 20, 23, 31, 33, 34, 35, 45], "none": [6, 40, 43, 45], "port_width": 6, "port_cent": 6, "o3": [6, 11, 20, 45], "o4": [6, 11, 20], "mmi_ref": 6, "shift": [6, 21, 29], "shorthand": [6, 21], "taper_ref": 6, "_": 6, "rang": [6, 13, 14, 18, 29, 35], "enumer": [6, 43], "destin": [6, 45], "alon": [6, 21, 40], "expos": [6, 21, 31], "ref": 6, "f": [6, 8, 15, 35, 40, 43], "auto_rename_port": 6, "consist": [6, 18, 21, 34, 39], "simpler": 6, "find": [6, 8, 13, 20, 22, 27, 34, 38], "math": [6, 35], "fit": [6, 31], "yourself": 6, "often": [6, 11, 23, 31, 32, 34, 35, 41, 45], "swap": [6, 21, 33], "redo": 6, "inlin": [6, 15], "rect_ref": 6, "figur": [6, 28, 30, 35, 39, 43, 45], "put": [6, 8, 15, 19, 20, 33], "manufactur": [6, 9, 11, 13, 15, 20, 21, 29, 35, 39, 41, 45], "share": [6, 8, 14, 34], "tool": [6, 12, 13, 15, 16, 18, 27, 31, 32, 35, 37, 40, 44], "potenti": [6, 23, 31], "lumer": 6, "fix": [6, 22, 23, 32], "write_gd": [6, 19, 22], "suppli": [6, 29], "path": [6, 8, 12, 14, 16, 18, 21, 31, 34, 44], "current": [6, 29, 33], "directori": [6, 8, 14, 20, 34], "sometim": [6, 8, 11, 14, 32], "necessari": [6, 11, 13, 32, 33, 35, 40], "perhap": [6, 23], "meep": [6, 8, 13, 14, 15, 20, 32, 34, 40, 45], "Or": [6, 34], "were": [6, 11, 14, 31, 32, 33, 34, 42], "given": [6, 8, 11, 14, 21, 32, 35, 41, 43], "fab": [6, 18, 31, 45], "while": [6, 8, 12, 16, 18, 21, 23, 26, 30, 31, 32, 33, 34, 35, 37, 38, 42, 43, 45], "ha": [6, 8, 11, 14, 16, 18, 21, 22, 23, 31, 32, 33, 34, 35, 39, 40, 42], "convert": [6, 11, 13, 31, 43], "step": [6, 8, 11, 15, 18, 22, 24, 27, 31, 34, 44], "after": [6, 19, 21, 32, 35], "convers": 6, "get": [6, 8, 11, 12, 18, 19, 20, 21, 22, 31, 34, 35, 43, 44, 45], "branch": [6, 21, 26], "siepic": [6, 21, 22, 27], "ebeam": [6, 21, 27], "ebeam_y_1550": [6, 22], "github": [6, 15, 17, 21, 34], "import_gd": 6, "filenam": [6, 45], "splitter": [6, 11, 21, 22, 31, 45], "read": [6, 8, 16, 18, 21, 23, 31, 32, 35], "manual": [6, 31, 41, 44], "hover": 6, "mous": 6, "examin": [6, 34], "themselv": 6, "midpoint": 6, "7": [6, 8, 32, 35], "75": [6, 8, 21, 40], "separ": [6, 21], "straight": [6, 33, 35, 42, 45], "bend": [6, 22, 31], "radiu": [6, 22, 34], "recal": [6, 21], "canva": 6, "straight_ref": 6, "bend_ref": 6, "pick": 6, "recreat": [6, 32], "racetrack": [6, 34], "coupler": [6, 11, 13, 18, 20, 21, 22, 24, 26, 31, 33, 34, 45], "camacholab": [7, 15], "sequoia": [7, 15, 18], "ploeg": [7, 15], "ph": 7, "candid": 7, "ryan": [7, 15], "camacho": [7, 15], "associ": [7, 13], "professor": 7, "elis": 7, "bangert": 7, "undergradu": 7, "research": 7, "joel": 7, "kartchner": 7, "chandler": 7, "parkin": 7, "noah": 7, "bailei": 7, "kevin": 7, "richin": 7, "small": [8, 13, 16, 29, 30, 38], "transfer": [8, 29, 31, 34], "light": [8, 11, 13, 14, 20, 21, 26, 28, 29, 31, 33, 34, 35, 39, 40, 41, 42], "multipl": [8, 11, 13, 15, 18, 34, 42], "eigenmod": [8, 20, 34], "mode": [8, 13, 20, 21, 31, 34, 35, 41, 42, 45], "field": [8, 11, 14, 20, 21, 31, 33, 35, 40, 42, 44, 45], "outsid": [8, 23, 26, 35, 40, 43], "evanesc": [8, 33, 40], "second": [8, 11, 14, 21, 28, 29, 32, 40, 43, 45], "propag": [8, 21, 28, 33, 34, 35, 40, 42], "us": [8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43, 44, 45], "photon": [8, 11, 13, 14, 15, 16, 17, 18, 20, 21, 26, 27, 30, 32, 33, 34, 35, 39, 41, 42, 44, 45], "amount": [8, 14, 21, 29, 32, 35], "thing": [8, 15, 18, 32, 35, 37, 38, 40, 45], "region": [8, 18, 20, 28, 30, 31, 35, 45], "enough": [8, 31, 37, 43], "incid": [8, 11, 43], "distanc": [8, 20, 34, 39], "materi": [8, 14, 15, 18, 19, 20, 23, 26, 28, 29, 30, 31, 33, 34, 35, 39, 40, 41, 43, 45], "layout": [8, 11, 15, 16, 21, 31, 32, 34, 37], "produc": [8, 21], "g": [8, 12, 15, 18, 31, 41, 43, 45], "50": [8, 13, 21, 45], "25": [8, 14, 18, 19, 21, 35, 43], "fraction": [8, 20, 45], "geometr": [8, 13, 14, 20, 27, 31, 34], "describ": [8, 14, 21, 28, 30, 31, 33, 34, 35, 37, 42], "kappa": [8, 34], "frac": [8, 14, 21, 34, 41, 43], "p_": 8, "p_0": 8, "cl": 8, "coeffici": [8, 21, 43], "l": [8, 21, 34], "found": [8, 22, 38, 40, 41], "analysi": [8, 13, 14], "system": [8, 12, 13, 14, 15, 18, 20, 27, 32, 34, 37, 38], "odd": 8, "antisymmetr": 8, "occur": [8, 20, 21, 34, 43], "circ": 8, "similarli": 8, "symmetr": [8, 11, 35, 45], "user": [8, 12, 23, 32, 44], "permitt": [8, 26], "clad": [8, 14, 18, 31, 33, 35, 39, 40, 41, 43, 45], "refract": [8, 14, 18, 21, 26, 28, 29, 30, 33, 39, 40, 41], "indic": [8, 14, 28, 34, 35, 41, 43], "valu": [8, 11, 18, 21, 22, 32, 33, 35, 40, 43], "rel": [8, 19, 21, 27, 28, 29, 31, 32, 45], "increas": [8, 14, 29, 30, 41], "decreas": [8, 14, 41], "notic": [8, 21, 23, 28, 33, 40, 41, 43], "intens": [8, 14, 20, 21, 34, 35, 45], "insid": [8, 34, 40], "gplugin": [8, 32, 40], "gm": [8, 11, 40], "find_modes_coupl": 8, "core_width": [8, 40], "core_materi": [8, 40], "clad_materi": [8, 40], "core_thick": [8, 40], "22": [8, 35, 44], "resolut": [8, 11, 14, 19, 20, 34, 35, 40, 45], "40": [8, 18, 35, 40, 45], "sz": [8, 40], "nmode": [8, 40], "m1": [8, 18, 40], "m2": [8, 34, 40], "look": [8, 11, 22, 23, 26, 32, 35, 38, 42, 45], "big": 8, "print": [8, 11, 13, 21, 22, 35, 40], "neff": [8, 40], "dielectr": [8, 40, 45], "sidebar": 8, "plot_ep": 8, "plot_ei": [8, 40], "abov": [8, 11, 14, 18, 21, 29, 31, 34, 35, 40, 42, 43, 45], "happen": 8, "desir": [8, 12, 14, 28, 31, 35], "delta": [8, 21], "n": [8, 17, 18, 20, 21, 30, 31, 32, 34, 35, 43], "lambda": [8, 14, 21, 34, 41], "n_": [8, 14, 34, 41, 43], "eff": [8, 14, 34, 41], "find_coupling_vs_gap": 8, "crossov": 8, "tabl": 8, "detail": [8, 14, 21, 35, 38], "ne": 8, "unit": [8, 28, 29, 35], "mu": [8, 21], "m": [8, 15, 20, 21, 32, 34], "lc": 8, "dn": 8, "exponenti": [8, 40], "relationship": [8, 11, 21, 29, 30, 35], "cdot": 8, "variou": [8, 21, 22, 31, 35, 37], "oper": [8, 18, 20, 21, 29, 30, 31, 32, 33, 34, 35, 37], "mp": [8, 11, 14, 19, 20, 22, 34, 35, 40, 45], "gap1": 8, "gap2": 8, "11": [8, 18, 21, 22, 32, 40], "55": [8, 14, 19, 20, 21, 34, 35, 45], "pariti": [8, 40], "even_i": [8, 35], "463631": 8, "409798": 8, "14": 8, "396530": 8, "053832": 8, "460647": 8, "410682": 8, "15": [8, 11, 21, 34, 43], "510925": 8, "049965": 8, "12": [8, 14, 18, 22, 35], "459734": 8, "411797": 8, "16": [8, 18, 40], "166968": 8, "047937": 8, "13": [8, 35], "452682": 8, "411449": 8, "18": [8, 18], "795515": 8, "041233": 8, "448745": 8, "412270": 8, "21": [8, 43], "247526": 8, "036475": 8, "447691": 8, "414688": 8, "23": [8, 15], "482841": 8, "033003": 8, "447658": 8, "416929": 8, "220085": 8, "030729": 8, "17": [8, 43], "447685": 8, "418000": 8, "26": [8, 22, 43], "107513": 8, "029685": 8, "8": [8, 11, 21, 35, 45], "442283": 8, "416295": 8, "29": 8, "821729": 8, "025988": 8, "9": [8, 35, 43, 45], "19": [8, 18], "439496": 8, "416231": 8, "33": 8, "311196": 8, "023265": 8, "20": [8, 11, 19, 20, 21, 22, 34, 43], "438256": 8, "417123": 8, "36": 8, "672851": 8, "021133": 8, "own": [8, 15, 17, 18, 21, 23, 31, 32, 37], "normal": [8, 14, 35, 44], "constant": [8, 21, 30, 34], "beta": [8, 20, 21, 34, 45], "travel": [8, 14, 21, 28, 30, 34, 40, 41, 43], "down": [8, 21, 32, 35, 40], "oscil": [8, 28, 42], "beat": [8, 20], "One": [8, 23, 27, 31, 33, 39], "over": [8, 12, 14, 20, 31, 34, 39], "smaller": [8, 33], "faster": [8, 30], "sinc": [8, 11, 13, 21, 32, 34, 35, 37, 38, 40, 45], "shorter": [8, 21, 29, 41], "give": [8, 11, 14, 15, 21, 22, 32, 35, 37], "begin": [8, 20, 21, 41, 43], "l_": [8, 20, 21], "nonumb": 8, "multipli": 8, "_1": [8, 20], "l_x": 8, "_2": 8, "n_1": 8, "n_2": 8, "Of": [8, 23, 43], "don": [8, 17, 21, 29, 32, 37, 41, 44, 45], "oftentim": 8, "60": 8, "receiv": 8, "equat": [8, 13, 14, 20, 21, 29, 31, 34, 40, 41], "further": [8, 11, 21, 33, 35], "explor": [8, 33, 42, 44], "send": [8, 16, 33], "affect": [8, 14, 20, 21, 29, 34, 41, 42, 45], "minut": 8, "setup": [8, 13, 31, 32, 37, 38, 44], "gif": [8, 14, 20, 34], "typic": [8, 13, 14, 23, 27, 29, 30, 31, 39, 41], "practic": [8, 15, 21, 32], "si": [8, 14, 19, 20, 34, 40], "medium": [8, 14, 19, 20, 34, 35, 45], "sio2": [8, 14, 18, 19, 20, 34, 35, 40], "um": [8, 14, 20, 21, 35], "wvl": [8, 14, 19, 20, 34], "cell": [8, 14, 20, 31, 34, 35], "wg_width": [8, 34], "dpml": [8, 20, 35], "pad": [8, 20, 34], "07": 8, "lx": 8, "30": [8, 14, 43, 45], "sx": [8, 19, 20, 34, 45], "sy": [8, 19, 20, 34, 40, 45], "wg_center_i": 8, "pml": [8, 14, 19, 20, 34, 35, 45], "perfectli": [8, 20, 21, 34, 35], "infinit": 8, "long": [8, 21, 32, 34, 35, 39, 44], "vector3": [8, 14, 19, 20, 34, 35, 45], "puls": [8, 14, 20, 34], "fcen": [8, 14, 19, 20, 34, 35], "fwidth": [8, 14, 19, 20, 34, 35], "src": [8, 19, 20, 34, 35], "gaussiansourc": [8, 14, 19, 20, 34, 35], "frequenc": [8, 11, 13, 14, 19, 20, 21, 28, 29, 30, 33, 34, 43, 45], "eigenmodesourc": [8, 19, 20, 34, 35, 45], "eig_band": [8, 19, 20, 34, 35, 45], "eig_kpoint": [8, 19, 20, 34, 35], "sim": [8, 11, 14, 19, 20, 34, 35, 45], "cell_siz": [8, 11, 14, 19, 20, 34, 35, 45], "boundary_lay": [8, 14, 19, 34, 35, 45], "default_materi": [8, 19, 34, 45], "set": [8, 11, 13, 14, 15, 18, 20, 21, 22, 31, 32, 34, 35, 38, 40, 43, 44], "plot2d": [8, 11, 14, 19, 20, 34, 35, 45], "warn": [8, 43], "grid": 8, "volum": [8, 35, 41, 45], "integ": [8, 18, 34], "pixel": [8, 35], "round": [8, 31, 34], "nearest": 8, "ax": [8, 21, 40, 43], "pil": [8, 14, 20, 34], "imag": [8, 14, 21, 34, 35, 45], "glob": [8, 14, 20, 34], "os": [8, 14, 20, 34, 37], "reset_meep": [8, 35], "captur": [8, 14, 20, 34], "at_begin": [8, 14, 20, 34], "output_epsilon": [8, 14, 20, 34], "to_append": [8, 14, 20, 34], "ez": [8, 14, 20, 34, 45], "at_everi": [8, 14, 20, 34], "output_efield_z": [8, 14, 20, 34], "until": [8, 11, 14, 20, 34, 35, 45], "200": [8, 11, 14, 20, 22, 35], "gener": [8, 11, 13, 14, 18, 20, 21, 23, 28, 29, 31, 32, 34, 40, 42], "png": [8, 14, 20, 21, 34], "colormap": [8, 14, 20, 34], "work": [8, 20, 23, 32, 34, 35, 42], "h5py": [8, 14, 20, 34], "instal": [8, 12, 13, 14, 16, 20, 22, 27, 32, 34, 37, 38, 40, 44], "problem": [8, 14, 15, 20, 29, 34], "h5util": [8, 14, 20, 34], "h5topng": [8, 14, 20, 34], "99": [8, 14], "r": [8, 14, 20, 32, 34, 43], "zc": [8, 14, 20, 34], "rdbu": [8, 14, 20, 34, 35, 45], "ep": [8, 14, 20, 34], "000000": [8, 14, 20, 34], "00": [8, 14, 20, 34, 43], "h5": [8, 14, 20, 34], "grai": [8, 14, 20, 34, 40], "frame": [8, 14, 20, 34], "img": [8, 14, 20, 34], "sort": [8, 14, 20, 31, 34], "new_fram": [8, 14, 20, 34], "append": [8, 14, 20, 34, 35], "loop": [8, 14, 20, 34, 35], "forev": [8, 14, 20, 34], "append_imag": [8, 14, 20, 34], "save_al": [8, 14, 20, 34], "clean": [8, 14, 20, 34], "workspac": [8, 14, 20, 34], "delet": [8, 14, 20, 32, 34], "invalid": [8, 14, 43], "circumv": [8, 14], "issu": [8, 14], "chosen": [8, 14, 41, 43], "sensit": [8, 14, 20, 31], "fabric": [8, 9, 13, 15, 18, 22, 27, 29, 31, 35], "variat": [8, 20, 34], "robust": [8, 20, 32], "element": [8, 13, 21, 29, 35, 41], "principl": [8, 13, 14, 15, 18, 20, 35, 43], "behind": [8, 21, 31], "interfer": [8, 13, 14, 20, 21, 28, 33, 34, 45], "nearbi": 8, "chip": [8, 13, 14, 16, 17, 18, 21, 26, 31, 32], "parasit": 8, "too": [8, 13, 18, 21, 32, 34, 37, 42], "lead": [8, 33, 34, 41], "leak": [8, 45], "far": [8, 11, 33, 34], "apart": 8, "silicon": [8, 13, 14, 21, 30, 31, 35, 39, 40, 43, 45], "answer": [8, 21, 32, 43], "approxim": [8, 13, 18, 29], "135": 8, "micron": [8, 14, 18, 21, 40], "luka": [8, 14, 45], "chrostowski": [8, 14, 45], "stefan": 8, "prebl": 8, "facil": [9, 15, 31], "simul": [11, 13, 14, 15, 18, 19, 22, 24, 27, 31, 40, 43, 45], "devic": [11, 13, 15, 16, 18, 20, 21, 22, 26, 27, 28, 30, 34, 45], "befor": [11, 21, 23, 27, 31, 32, 35], "idea": [11, 22, 32], "perform": [11, 13, 15, 31, 32, 35], "plugin": 11, "finit": [11, 13, 31, 32, 40], "domain": [11, 13, 32, 43], "algorithm": [11, 32], "fdtd": [11, 13, 15, 32], "turn": [11, 21, 29, 35, 40], "component_from_gd": 11, "py": [11, 21, 43], "func": 11, "get_simul": [11, 20], "get_meep_geometry_from_compon": [11, 20], "grate": [11, 13, 18, 21, 22, 24, 31], "fiber": [11, 13, 14, 18, 21, 31, 33], "connect": [11, 15, 18, 21, 31, 45], "howev": [11, 15, 21, 23, 27, 33, 34, 35, 37, 45], "suffic": 11, "tutori": [11, 21, 22, 35], "tidy3d": [11, 20, 41], "implement": [11, 29, 34], "tpml": [11, 20], "port_source_offset": [11, 20], "port_monitor_offset": [11, 20], "distance_source_to_monitor": [11, 20], "32": 11, "scatter": [11, 21, 42], "tell": [11, 13, 22, 32, 34, 35, 42], "port": [11, 13, 18, 19, 20, 21, 22, 34, 45], "purpos": [11, 17, 23, 28, 41], "write_sparameters_meep": 11, "3d": [11, 18, 33, 35], "margin": 11, "account": [11, 12, 34, 44], "kwarg": 11, "fals": [11, 18, 35, 40, 43], "wast": 11, "incorrectli": 11, "2d": [11, 14, 19, 33, 35], "comprehens": [11, 35, 42], "dictionari": [11, 18, 20, 21], "kei": [11, 14, 21, 33], "form": [11, 21, 29], "refer": [11, 13, 15, 31, 34, 41, 42], "go": [11, 15, 16, 20, 22, 23, 24, 27, 28, 34, 35, 37, 44, 45], "symmetri": 11, "port_symmetri": 11, "assign": [11, 31], "1x2": [11, 13, 20], "comput": [11, 13, 15, 21, 32, 34, 35, 38, 44], "written": [11, 15], "thu": [11, 34, 45], "write_sparamters_meep_mpi": 11, "write_sparameters_meep_batch": 11, "per": [11, 13, 28], "total": [11, 18, 33, 35, 40], "write_sparameters_gr": 11, "batch": 11, "write_sparameters_grating_mpi": 11, "write_sparameters_grating_batch": 11, "adequ": 11, "xmargin_left": 11, "xmargin_right": 11, "sp": 11, "plot_sparamet": 11, "reflect": [11, 14, 18, 20, 26, 33, 35, 40, 45], "wave": [11, 13, 14, 20, 21, 28, 34, 35, 40, 41, 42, 43], "why": [11, 33, 42], "program": [12, 13, 16, 32, 38], "environ": [12, 15, 17, 22, 23, 37, 38], "uncommon": 12, "roll": [12, 23], "back": [12, 14, 31, 34, 43, 45], "break": [12, 32], "someth": [12, 32], "product": [12, 43], "version": [12, 21, 23, 44], "control": [12, 17, 21, 23], "vc": 12, "extrem": [12, 23], "who": [12, 23], "simultan": [12, 42], "edit": [12, 31, 44], "rather": [12, 31, 34], "painlessli": 12, "predomin": 12, "programm": [12, 23], "todai": 12, "command": [12, 13, 17, 21, 32, 35, 40, 44], "entir": [12, 13, 15, 33, 35], "ecosystem": 12, "host": [12, 15, 32], "servic": 12, "gui": [12, 35, 37], "id": [12, 38], "sprung": 12, "alreadi": [12, 21, 27, 31, 34, 35], "linux": [12, 13, 16, 32, 37, 38, 44], "temin": 12, "enter": [12, 21, 34, 35], "machin": [12, 13, 32, 37, 44], "window": [12, 13, 16, 27, 32, 37, 43], "packag": [12, 15, 16, 17, 18, 21, 22, 27, 37, 40], "mac": [12, 16, 32, 37], "forc": [12, 23], "wsl": [12, 13, 32, 37], "still": [12, 30, 32, 33, 35, 45], "download": [12, 15, 16, 32, 38, 44], "link": [12, 30, 32], "maco": [12, 13, 32, 37, 38], "xcode": 12, "termin": [12, 32, 37, 38, 44], "select": [12, 16, 18, 44], "through": [12, 15, 21, 22, 24, 26, 27, 28, 29, 30, 31, 33, 35, 37, 38, 40, 41, 42, 44], "debian": 12, "distribut": [12, 13, 23, 32, 40], "ubuntu": [12, 32, 37, 44], "sudo": 12, "apt": 12, "rpm": 12, "fedora": 12, "rhel": 12, "cento": 12, "dnf": 12, "known": [12, 14, 21, 23, 32, 38, 39, 40, 42, 43], "free": [12, 13, 14, 15, 16, 23, 29, 31, 32, 41], "privat": 12, "bootcamp": [12, 15, 18, 34, 35], "along": [12, 14, 34, 40, 42, 43], "popular": [12, 23, 32, 38, 39], "python": [12, 13, 15, 16, 18, 31, 35, 37, 38, 43], "keep": [12, 15, 32, 35], "definit": [13, 23], "throughout": [13, 21], "mathemat": [13, 21, 31, 34], "descript": 13, "behavior": [13, 21, 31, 33, 34, 42, 43, 45], "cutback": 13, "techniqu": 13, "measur": [13, 14, 20, 21, 29, 34, 41], "attenu": [13, 31, 34], "transmiss": [13, 21, 28, 34, 35, 43], "delai": [13, 31], "count": 13, "etc": [13, 18, 31, 32, 41], "drc": [13, 16, 18, 31], "verifi": [13, 32, 35], "ensur": [13, 21, 31, 32, 35, 45], "error": [13, 18, 20, 27, 40], "caus": [13, 21, 30], "fail": [13, 35], "short": [13, 14, 16, 21, 23, 30], "featur": [13, 16, 22, 31, 32, 38, 40, 41], "resolv": [13, 43], "drastic": 13, "foundri": 13, "minimum": [13, 20, 31], "space": [13, 14, 29, 31, 34, 41], "numer": [13, 40], "electrodynam": 13, "solut": 13, "differenti": [13, 29, 40], "method": [13, 15, 17, 19, 21, 23, 31, 32, 35, 37], "cover": [13, 15], "singl": [13, 15, 20, 21, 22, 31, 34, 37, 45], "primari": 13, "avail": [13, 15, 16, 18, 22, 23, 31, 32, 37], "platform": [13, 15, 32], "yaml": [13, 22], "flow": [13, 27], "gd": [13, 14, 15, 16, 18, 22, 27, 31, 32, 35, 37, 45], "graphic": 13, "coupl": [13, 14, 21, 22, 23, 31, 45], "reson": [13, 26, 27], "instrument": [13, 17, 20], "util": [13, 14, 18, 20, 21, 23], "beam": [13, 14, 20, 21, 33], "multi": 13, "split": [13, 20, 21, 35], "ideal": [13, 14, 21, 33], "nearli": 13, "imposs": 13, "polygon": [13, 31], "electron": [13, 27, 33, 35], "digit": [13, 27], "dry": 13, "modif": 13, "replic": 13, "insul": [13, 39], "soi": [13, 18, 31, 39, 43], "technolog": [13, 22, 31], "substrat": [13, 14, 18, 31, 39, 40], "semiconductor": 13, "wafer": [13, 31, 39], "vscode": [13, 32], "studio": [13, 37], "commonli": [13, 23, 32, 41], "vs": [13, 38], "editor": [13, 15, 37, 38], "microsoft": [13, 37, 38], "support": [13, 15, 17, 18, 20, 30, 41, 42], "debug": [13, 32], "syntax": [13, 17, 32, 40], "highlight": 13, "intellig": 13, "snippet": 13, "refactor": [13, 32], "embed": [13, 15], "git": [13, 18], "wikipedia": 13, "subsystem": [13, 37], "bash": [13, 32, 44], "directli": [13, 15, 18, 19, 35], "unmodifi": 13, "overhead": 13, "tradit": [13, 39], "virtual": [13, 17, 37], "dual": 13, "boot": 13, "diffract": 14, "cabl": [14, 31], "edg": [14, 24], "teeth": 14, "drawn": [14, 33], "onto": [14, 24, 31, 39, 44], "altern": [14, 44], "structur": 14, "propog": [14, 21, 31], "hyugen": 14, "fresnel": [14, 43], "bragg": 14, "law": [14, 40, 43], "depict": [14, 33, 41], "orthogon": [14, 33, 42], "arrai": [14, 21, 22, 35, 43], "might": [14, 18, 21, 32, 45], "imagin": [14, 21], "hold": [14, 23, 35], "catch": 14, "cell_x": 14, "cell_i": 14, "x_offset": 14, "nanomet": 14, "num_teeth": 14, "waveguide_depth": 14, "220": [14, 18, 21], "etch_depth": 14, "068": 14, "grating_period": 14, "659": 14, "fill_factor": 14, "524": 14, "verbos": [14, 45], "inf": [14, 19], "epsilon": [14, 35], "cladding_depth": 14, "box_depth": 14, "box": [14, 18, 27, 35, 38, 43], "substrate_depth": 14, "700": 14, "df": [14, 35], "pml_layer": [14, 19], "500": [14, 21], "savefig": 14, "grating_coupler_plot": 14, "encount": [14, 23, 43], "recogn": 14, "discuss": [14, 33], "page": [14, 18, 22, 32, 33, 34, 35, 40, 44, 45], "demonstr": [14, 43], "been": [14, 31, 32, 33, 35], "1550": 14, "appropri": [14, 21, 32, 33], "three": [14, 18, 20, 21, 35, 42], "understand": [14, 22, 34, 35, 42, 43], "simplifi": [14, 21, 33], "view": [14, 16, 18, 35, 37], "denot": [14, 20], "effici": [14, 21], "relat": [14, 18, 33, 40], "angl": [14, 21, 33], "condit": [14, 21, 23, 40], "theta_": 14, "air": [14, 43], "compar": [14, 30, 41], "surfac": 14, "choos": [14, 19, 33, 40], "exactli": [14, 21, 35], "90": [14, 21, 45], "degre": [14, 21, 29, 43], "byproduct": [14, 30], "larg": [14, 32, 45], "indcu": 14, "twice": 14, "avoid": [14, 32], "slightli": [14, 20, 21, 30, 35, 41, 45], "less": [14, 23, 31, 33, 34, 45], "area": [14, 31, 32, 43], "overal": 14, "weight": [14, 45], "unetch": 14, "ratio": [14, 20, 34, 35, 43, 45], "ff": 14, "w": 14, "welcom": 15, "present": [15, 18, 20, 33], "onlin": [15, 23], "freeli": [15, 23, 32], "resourc": [15, 30], "teach": 15, "student": 15, "curriculum": 15, "background": [15, 16, 21, 23], "motiv": 15, "full": [15, 23, 31, 32, 33, 34, 40], "learner": 15, "guid": [15, 31, 37, 39, 41, 43], "submit": [15, 23, 27], "wish": [15, 23], "simphoni": [15, 21, 22, 27, 32], "submiss": [15, 31], "pic": 15, "post": 15, "instruct": [15, 22, 27, 32, 37, 38, 44], "contribut": [15, 23], "subject": 15, "matter": [15, 35], "expert": 15, "futur": [15, 32], "expans": 15, "fork": 15, "parti": 15, "custom": [15, 23], "train": 15, "websit": [15, 23], "explanatori": 15, "webpag": 15, "launch": [15, 35], "colab": 15, "local": [15, 17, 37], "immedi": [15, 32], "alwai": [15, 21, 22, 32, 45], "workflow": 15, "approach": 15, "introduc": [15, 21, 23, 29, 32, 34, 45], "bother": 15, "mention": [15, 18, 23], "possibl": [15, 42], "configur": [15, 18, 37], "ahead": 15, "standard": [15, 37, 45], "ardavan": 15, "oskooi": 15, "david": 15, "roundi": 15, "mihai": 15, "ibanescu": 15, "peter": 15, "bermel": 15, "john": 15, "joannopoulo": 15, "steven": 15, "johnson": 15, "flexibl": [15, 31], "electromagnet": [15, 40, 42, 45], "physic": [15, 24, 30, 41], "commun": [15, 23, 32], "181": 15, "687": 15, "702": 15, "2010": 15, "hyrum": 15, "gunther": 15, "framework": [15, 17], "scienc": 15, "65": 15, "74": 15, "2020": 15, "joaquin": 15, "matr": 15, "2023": 15, "url": [15, 23], "http": [15, 21, 23, 33, 44], "io": 15, "verif": [16, 27], "viewer": [16, 37], "trace": [16, 39], "net": 16, "detect": [16, 31], "scriptabl": 16, "languag": [16, 32], "rubi": 16, "extens": [16, 38], "extern": [16, 21], "json": 16, "request": 16, "server": [16, 17], "hot": 16, "reload": 16, "rerun": 16, "manag": [16, 37], "Then": [16, 22, 35, 44, 45], "search": 16, "doubl": [16, 21, 27, 34], "click": [16, 24, 27, 38, 44], "pyro5": 17, "remot": 17, "access": [17, 18, 23, 32, 34], "equip": 17, "lab": 17, "favor": [17, 39], "usb": 17, "proprietari": [17, 23], "brand": 17, "unifi": 17, "intrument": 17, "easi": [17, 21, 27, 29, 32, 35], "pip": [17, 22, 32, 37], "conda": [17, 22, 37, 44], "environment_nam": 17, "activ": [17, 22, 23, 26, 28, 32, 44], "updat": [17, 21], "pypi": [17, 32, 37], "upgrad": [17, 22, 32], "visit": 17, "interrog": 17, "station": 17, "interfac": [17, 32, 37, 40, 42], "fore": 17, "whether": [18, 23, 31], "etch": [18, 31, 39, 41], "deposit": [18, 31, 39], "dope": [18, 30, 31], "metal": [18, 29, 31], "p": [18, 30, 31], "translat": [18, 31], "mask": [18, 31], "formal": 18, "state": [18, 23, 35], "255": 18, "modern": [18, 32, 37], "almost": [18, 35, 45], "dedic": [18, 23], "nitrid": 18, "lithium": [18, 43], "niobat": [18, 43], "whichev": 18, "decid": 18, "thin": 18, "top": [18, 21], "dioxid": [18, 39, 43], "thick": [18, 21, 34, 35, 40], "buri": 18, "oxid": [18, 35], "main": [18, 26, 31, 32], "intern": [18, 33, 40], "48": [18, 21], "excel": [18, 30, 32], "refractiveindex": 18, "info": [18, 21], "color": [18, 38, 41, 43], "fill": 18, "map": [18, 21], "human": [18, 21], "readabl": [18, 21, 35], "properti": [18, 28, 30, 31, 40, 41, 44], "lyp": 18, "migrat": 18, "few": [18, 22, 23, 32, 37, 38, 41], "devrec": 18, "recognit": 18, "show_port": 18, "marker": 18, "label_inst": 18, "netlist": 18, "te": [18, 21, 33, 35, 40, 42, 43], "polar": [18, 20, 21, 22, 28, 31, 33, 40], "tm": [18, 21, 42, 43], "pydant": 18, "class": [18, 23, 27], "partial": [18, 22, 30, 33, 42], "germanium": 18, "photodiod": 18, "vari": [18, 21], "concentr": 18, "pn": 18, "junction": 18, "capacitor": [18, 31, 41], "depth": 18, "exclud": 18, "dice": 18, "lane": 18, "reserv": 18, "violat": 18, "reader": 18, "basemodel": 18, "wg": 18, "slab150": 18, "68": 18, "201": 18, "206": 18, "203": 18, "204": 18, "66": 18, "41": 18, "43": 18, "config": [18, 21, 22, 32], "frozen": 18, "extra": [18, 32, 41], "forbid": 18, "32m2023": 18, "06": 18, "227": 18, "0m": [18, 21, 22, 40], "1minfo": [18, 22, 40], "36mgdsfactori": [18, 22], "36m__init__": [18, 22], "36m204": 18, "1mloglevel": 18, "visibl": 18, "export": [18, 19, 22], "hatch_pattern": 18, "dot": 18, "ff9d9d": 18, "layer_in_nam": 18, "coars": 18, "transpar": 18, "cyan": 18, "01ff6b": 18, "bright": 18, "hollow": 18, "cc4c00": 18, "label_optical_io": 18, "blue": [18, 33, 35, 40, 42, 43], "label_set": 18, "202": 18, "magenta": 18, "red": [18, 33, 35, 42, 43], "lightli": 18, "hatch": 18, "004080": 18, "pinrec": 18, "404040": 18, "xsection": 18, "group_memb": 18, "xs_box": 18, "300": [18, 35], "f3ff80": 18, "solid": 18, "xs_si": 18, "301": 18, "black": [18, 35, 43], "xs_si_slab": 18, "313": 18, "80a8ff": 18, "xs_overlai": 18, "311": 18, "xs_ox_si": 18, "302": 18, "xs_via": 18, "303": 18, "grei": 18, "xs_m1": 18, "304": 18, "green": [18, 43], "xs_oxide_m1": 18, "305": 18, "308": 18, "ff80a8": 18, "wg_pin": 18, "klayout_lyp": 18, "posixpath": [18, 22], "home": [18, 22, 34, 35, 40], "env": [18, 21, 22, 32, 34, 40], "lib": [18, 21, 22, 40], "python3": [18, 21, 22, 40], "site": [18, 21, 22, 23, 40], "generic_tech": [18, 22], "tech": 18, "npp": 18, "pp": 18, "ppp": 18, "Be": [18, 21], "sure": [18, 19, 23, 27, 35], "gmeep": [19, 20, 40], "meep_adjoint_optim": 19, "straightforward": 19, "get_component_from_sim": 19, "continu": [19, 32, 35, 40], "variabl": [19, 21, 30, 31, 35, 45], "waveguide_width": 19, "arm_separ": 19, "mmi_length": 19, "mmi_width": 19, "taper_width": 19, "pml_size": 19, "taper_x1": 19, "taper_x2": 19, "taper_y1": 19, "taper_y2": 19, "taper_y3": 19, "taper_y4": 19, "prism": 19, "height": [19, 21, 41], "source_center_x": 19, "source_s": 19, "kpoint": 19, "no_direct": [19, 35], "geometry_cent": 19, "gdspath": 19, "2x2mmi": 19, "predict": [20, 21, 31, 42], "certain": [20, 23, 33, 34, 42], "k": [20, 26, 43], "wider": 20, "gradual": 20, "widen": 20, "nxm": 20, "replica": 20, "period": [20, 21, 29], "_0": 20, "wall": [20, 32], "interf": 20, "destruct": [20, 21, 28, 33, 45], "forward": [20, 23, 30, 35], "backward": [20, 32, 35], "word": [20, 23, 28, 33, 45], "excit": 20, "goe": [20, 34, 35, 43, 45], "THE": 20, "TO": 20, "length_mmi": 20, "extend": [20, 23], "extend_port": 20, "port_nam": [20, 21], "299": [20, 34], "evenli": [20, 45], "advantag": [20, 23, 31], "veri": [20, 21, 23, 30, 32, 35, 37, 39, 45], "suscept": [20, 31], "fact": [20, 23, 35], "optimum": 20, "contrast": 20, "mimic": 20, "disadvantag": 20, "switch": [20, 21, 34, 35], "wdm": 20, "divis": 20, "multiplex": 20, "hybrid": 20, "divers": 20, "photodetector": [20, 26, 31], "extract": [21, 40], "doc": [21, 22, 38, 40], "zender": 21, "concept": [21, 31, 32, 33, 34], "recombin": [21, 45], "accumul": 21, "quantum": 21, "piezo": 21, "transduc": 21, "sax": 21, "jax": 21, "nice": [21, 32, 37], "speedup": 21, "gpu": 21, "fine": 21, "cpu": 21, "awar": 21, "jax_enable_x64": 21, "drop": 21, "replac": 21, "jnp": 21, "broken": 21, "constitu": 21, "diagram": [21, 34, 42], "carri": [21, 23], "identifi": 21, "explain": [21, 30, 34, 35, 44], "formul": 21, "s_": 21, "ij": 21, "repres": [21, 33, 35, 41, 42, 43], "j": [21, 34, 35], "stimuli": 21, "signatur": 21, "grating_coupl": 21, "31msignatur": 21, "0msiepic": 21, "34m": 21, "0mgrating_coupl": 21, "0mwl": 21, "0munion": 21, "0mfloat": 21, "0mjax": 21, "0marrai": 21, "36m1": 21, "0mpol": 21, "0mliter": 21, "0mthick": 21, "36m220": 21, "0mdwidth": 21, "36m0": 21, "0mdict": 21, "0mtupl": 21, "0mstr": 21, "0mjaxtyp": 21, "0mcomplex": 21, "31mdocstr": 21, "1550nm": 21, "citat": 21, "_static": 21, "ebeam_gc_te1550": 21, "alt": 21, "ebeam_bdc_te1550": 21, "wl": 21, "evalu": 21, "pol": 21, "210": 21, "230": 21, "dwidth": 21, "nomin": 21, "rais": 21, "valueerror": 21, "com": [21, 23, 33], "siepic_ebeam_pdk": 21, "blob": 21, "master": 21, "20compon": 21, "20with": 21, "20model": 21, "docx": 21, "31mfile": 21, "miniconda3": [21, 22, 34, 40], "31mtype": 21, "inspect": [21, 23], "o0": 21, "0307378": 21, "00345908j": 21, "dtype": 21, "complex128": 21, "75686856": 21, "02082852j": 21, "74360676": 21, "09760613j": 21, "0750638": 21, "02585451j": 21, "get_port": 21, "y_branch": 21, "strictli": 21, "enforc": 21, "rewrit": 21, "string": [21, 40], "instance_nam": 21, "whitespac": 21, "delimit": 21, "comma": 21, "composit": 21, "gc_in": 21, "gc": 21, "ybranch": [21, 45], "long_wg": 21, "short_wg": 21, "gc_out": 21, "act": 21, "whatev": 21, "invok": [21, 32], "gave": 21, "becom": [21, 23, 32, 35, 42], "instanti": 21, "unsur": 21, "get_set": 21, "loss": [21, 29, 30, 34, 35, 45], "overkil": 21, "everyth": [21, 35, 44], "els": [21, 32, 35], "stai": 21, "global": 21, "toplevel": 21, "trickl": 21, "1000": 21, "150": 21, "transmit": [21, 34, 39, 42, 43], "magnitud": [21, 35, 40, 43], "squar": [21, 34], "renam": 21, "unconnect": 21, "realli": [21, 23, 35, 43], "meaning": 21, "both": [21, 29, 30, 32, 34, 35, 40, 45], "linear": [21, 29, 35, 45], "log": [21, 35], "scale": [21, 31, 45], "mag": 21, "ab": [21, 35], "fig": [21, 40, 43], "subplot": [21, 40, 43], "sharex": [21, 40], "set_ylabel": 21, "log10": [21, 35], "db": [21, 35], "set_xlabel": [21, 43], "suptitl": 21, "dip": 21, "opposit": 21, "peak": [21, 33, 34], "maximum": [21, 34], "better": [21, 41, 42], "think": [21, 31, 32], "equal": [21, 28, 34, 41, 43, 45], "my_compon": 21, "delta_length": [21, 22], "relev": 21, "amplitud": [21, 28, 29, 30, 31, 33, 45], "i_": 21, "e_": [21, 34], "sqrt": 21, "hspace": 21, "2mm": 21, "whose": 21, "undergon": 21, "mw": [21, 29], "lossless": 21, "plane": [21, 42], "e_0": 21, "omega": 21, "z": [21, 35, 40, 42], "beta_": 21, "alpha_": 21, "\u03b1": 21, "appear": 21, "expon": 21, "zero": [21, 40], "lvert": 21, "express": [21, 29], "1450": 21, "longer": [21, 29, 41], "102": 21, "491": 21, "phasa": 21, "heat": [21, 26, 29], "static": 21, "\u03b2": 21, "100\u00b5m": 21, "1500nm": 21, "ouptput": 21, "9mw": 21, "heater": 21, "walk": [22, 24, 40], "mzi": 22, "prepar": 22, "ubcpdk": 22, "forg": [22, 32], "gdstk": 22, "plai": 22, "uc": 22, "conf": 22, "display_typ": 22, "32m2024": [22, 40], "01": [22, 40, 45], "58": 22, "37": 22, "353": 22, "layer_view": 22, "36m790": 22, "1mimport": 22, "layerview": 22, "parkeraa": [22, 40], "38": 22, "389": 22, "36mubcpdk": 22, "36m": [22, 40], "modul": [22, 26, 28, 29, 30, 31, 40], "36m30": 22, "1mfound": 22, "462": 22, "468": 22, "36mactiv": 22, "36m307": 22, "1m": 22, "pretti": [22, 32], "doesn": [22, 38, 40, 42], "adjust": [22, 28, 29, 43, 45], "length_x": 22, "length_i": 22, "ring_singl": 22, "littl": 22, "bit": [22, 42], "ascii": 22, "rotat": 22, "though": [22, 32], "ad": [22, 30, 35], "mark": 22, "autom": [22, 31], "openebl": [22, 27], "tester": 22, "usig": 22, "functool": 22, "usernam": [22, 44], "mynam": 22, "component_fiber_arrai": 22, "add_fiber_arrai": 22, "my_cool_mzi": 22, "59": 22, "346": 22, "36m_write_librari": 22, "36m1913": 22, "1mwrote": 22, "constitut": [23, 30], "legal": 23, "advic": 23, "date": 23, "corpor": 23, "contact": 23, "attornei": 23, "absolut": 23, "implic": 23, "organ": [23, 35, 40], "particularli": 23, "question": 23, "compani": 23, "incorpor": 23, "inherit": 23, "foss": 23, "availbl": 23, "portion": [23, 33, 43], "anyon": [23, 32], "enhanc": 23, "methodolog": 23, "creation": 23, "peopl": 23, "skill": 23, "context": [23, 33], "monetarili": 23, "under": 23, "restrict": [23, 31], "freedom": 23, "copi": [23, 43, 44], "studi": 23, "improv": 23, "hood": 23, "actual": [23, 35, 45], "strong": 23, "focus": 23, "downsid": 23, "thanklessli": 23, "maintain": [23, 28], "spend": 23, "driven": 23, "psiquantum": 23, "natur": [23, 42], "mainten": 23, "bug": [23, 32], "slower": 23, "commerci": 23, "On": [23, 26, 42, 44], "hand": [23, 34, 38, 42], "garner": 23, "friendli": 23, "copor": 23, "scheme": 23, "confirm": 23, "team": 23, "abil": 23, "plan": 23, "releas": [23, 32], "permiss": 23, "162": 23, "copyright": 23, "remain": [23, 34], "stricter": 23, "deriv": [23, 41, 43], "warranti": 23, "world": [23, 32, 41], "statement": 23, "signific": [23, 45], "attribut": 23, "similar": [23, 34, 40], "rereleas": 23, "grant": 23, "patent": 23, "contributor": 23, "claim": 23, "codebas": 23, "cannot": [23, 43], "liabl": 23, "reason": [23, 33], "trademark": 23, "licensor": 23, "belong": 23, "copyleft": 23, "mandat": 23, "gpl": 23, "v3": 23, "unpopular": 23, "prohibit": 23, "inclus": 23, "prevent": 23, "contamin": 23, "witih": 23, "technic": 23, "offend": 23, "liabil": 23, "binari": [23, 31, 35, 45], "attempt": 23, "pai": [23, 33], "attitud": 23, "necessarili": [23, 32], "impress": 23, "gnu": 23, "notepad": 23, "wordpress": 23, "mysql": 23, "unabl": 23, "sale": 23, "fossa": 23, "editori": 23, "101": 23, "jan": 23, "2021": 23, "blog": 23, "feb": 23, "mar": 23, "skip": [24, 27, 44], "explan": 24, "tune": [26, 28, 34], "scope": [26, 30], "thermo": [26, 29], "slow": 26, "stabl": 26, "electro": [26, 31], "fast": [26, 30], "laser": [26, 31], "buit": 27, "readi": [27, 35, 44], "meet": [27, 31], "button": 27, "sai": [27, 28, 34, 38, 42], "bu": [27, 34], "signal": [28, 29, 30, 31, 32, 35, 39, 41, 42], "characterist": [28, 35, 41], "ac": 28, "encod": [28, 31], "categor": 28, "tuner": [28, 30], "dure": 28, "bridg": 28, "todo": [28, 30, 41], "insert": [28, 29, 30, 34, 35], "illustr": [28, 41], "compress": 28, "accord": [28, 35], "lower": [28, 33, 35, 40, 41, 45], "fewer": 28, "temperatur": [29, 41], "molecul": [29, 42], "At": 29, "low": [29, 30, 31, 34, 39], "proport": 29, "compris": 29, "proxim": [29, 34], "resistor": [29, 31, 41], "dissip": 29, "besid": 29, "govern": [29, 40], "mostli": [29, 33, 40, 42], "unlik": [29, 30], "pin": [29, 32], "eas": [29, 39], "offer": [29, 30, 41], "tradeoff": [29, 30], "capac": 29, "applciat": 29, "constantli": 29, "360": 29, "fsr": 29, "spectral": 29, "maxima": 29, "achiev": [29, 33, 43], "consum": 29, "closer": 29, "rate": 29, "plasma": 30, "dispers": 30, "charg": 30, "carrier": 30, "inject": [30, 35], "refrac": 30, "voltag": 30, "revers": [30, 45], "bias": 30, "respond": 30, "induc": 30, "mechan": [30, 32], "quit": 30, "beyond": [30, 41], "resist": [30, 41], "capacit": [30, 41], "intrins": 30, "high": [30, 32, 33, 39], "cutoff": 30, "ten": 30, "ghz": 30, "suit": 30, "neglig": 30, "clariti": 30, "thermal": 30, "undop": 30, "copmris": 30, "experienc": [30, 37, 41], "cost": [30, 31, 32], "qualiti": 30, "deplet": 30, "moder": 30, "bia": 30, "analog": 31, "macro": 31, "lens": 31, "mirror": 31, "beamsplitt": 31, "analogu": 31, "micro": 31, "nano": 31, "discret": [31, 33], "inductor": 31, "cmo": 31, "classifi": 31, "mismatch": 31, "anisotropi": 31, "voa": 31, "photolithographi": 31, "photomask": 31, "photosensit": 31, "chemic": 31, "photoresist": 31, "lamp": 31, "ultraviolet": 31, "regim": 31, "stencil": 31, "alter": 31, "leav": 31, "underli": 31, "constraint": 31, "densiti": 31, "pcb": 31, "familiar": [31, 32, 34], "reject": 31, "didn": 31, "undergo": 31, "compat": [31, 32, 37], "hous": 31, "matur": 31, "store": [31, 35, 37, 44], "concret": 31, "conta": 31, "latter": 31, "regener": 31, "regress": 31, "mzm": 31, "least": 31, "arm": [31, 45], "rout": 31, "briefli": [31, 35], "touch": 31, "solv": [31, 34, 40, 41], "maxwel": [31, 40], "computation": [31, 35], "expens": 31, "volumetr": 31, "mesh": 31, "voxel": 31, "magnet": [31, 33, 40, 42, 43], "lot": [31, 42], "hour": 31, "pertin": 31, "abstract": [31, 33], "sequenc": 31, "yet": 31, "embrac": 32, "scientif": 32, "session": 32, "recompil": 32, "prototyp": 32, "rapidli": 32, "miniconda": [32, 37, 44], "bundl": 32, "frill": 32, "strip": 32, "anaconda": 32, "tend": 32, "latest": 32, "execut": 32, "easiest": [32, 38], "quick": 32, "best": [32, 34], "isol": [32, 34], "sandbox": 32, "destroi": 32, "mess": 32, "never": [32, 35], "worri": 32, "someon": 32, "venv": 32, "older": 32, "intel_env": 32, "subdir": 32, "osx": 32, "64": 32, "establish": 32, "hasn": 32, "promin": 32, "fundament": [32, 33, 35, 40, 45], "counterpart": 32, "matlab": 32, "defacto": 32, "databas": 32, "solver": [32, 40, 41], "pymeep": 32, "grab": 32, "nlopt": 32, "aren": 32, "increment": 32, "api": 32, "contract": 32, "task": 32, "evolv": 32, "accomplish": 32, "old": 32, "immatur": 32, "frequent": 32, "guarante": 32, "reproduc": 32, "semant": 32, "major": 32, "minor": 32, "patch": [32, 40], "incompat": 32, "manner": 32, "txt": 32, "24": [32, 43], "great": 33, "intuit": [33, 34, 43, 45], "surround": [33, 39, 40], "flaw": 33, "assumpt": 33, "misconcept": 33, "compen": 33, "challeng": 33, "slab": [33, 41], "implicit": 33, "fulli": [33, 34], "crucial": 33, "addition": 33, "impli": 33, "greater": [33, 43], "critic": 33, "except": 33, "anim": 33, "white": 33, "sent": 33, "orthogan": 33, "wavefront": 33, "interv": 33, "trough": 33, "special": [33, 38], "attent": 33, "clarifi": 33, "incremental": 33, "With": [33, 34], "backdrop": 33, "consider": [33, 41], "lost": [33, 35, 43, 45], "interferr": 33, "minim": 33, "emerg": 33, "obvious": 33, "mit": 33, "s3": 33, "amazonaw": 33, "fip": 33, "html": [33, 44], "theori": 34, "trip": 34, "particular": 34, "Such": 34, "circumfer": 34, "alpha": [34, 35, 43, 45], "cm": 34, "plug": 34, "b1": 34, "te_": 34, "a1": 34, "a2": 34, "b2": 34, "quantiti": 34, "opd": 34, "roundtrip": 34, "imped": [34, 35], "approx": 34, "half": [34, 40], "fwhm": 34, "aka": 34, "bandwidth": 34, "finess": 34, "narrow": 34, "sharp": 34, "q": 34, "sharper": 34, "filter": [34, 42], "whisper": 34, "galleri": 34, "feel": 34, "ipython": 34, "video": 34, "10um": 34, "d_pml": 34, "d_pad": 34, "r_in": 34, "r_out": 34, "wg_length": 34, "cylind": 34, "600": 34, "ebang4": 34, "book": [34, 35], "decai": [34, 40], "despit": 34, "wg_center": 34, "radio": 35, "rf": 35, "exit": 35, "nxn": 35, "ofen": 35, "notat": 35, "character": 35, "bechavior": 35, "metric": 35, "param": 35, "mind": 35, "accur": [35, 41], "life": 35, "detector": 35, "adapt": [35, 37], "pictur": [35, 43], "purpl": 35, "my": 35, "next": [35, 37, 40, 42, 44], "whole": 35, "bunch": 35, "three_d": 35, "reduc": 35, "gds_file": 35, "jkart": 35, "geometry_l": 35, "cell_l": 35, "port1_l": 35, "port2_l": 35, "port3_l": 35, "port4_l": 35, "source1_l": 35, "source2_l": 35, "source3_l": 35, "source4_l": 35, "lcen": 35, "diamet": 35, "t_oxid": 35, "t_si": 35, "t_air": 35, "78": 35, "cell_thick": 35, "min": 35, "cell_zmax": 35, "cell_zmin": 35, "si_zmax": 35, "si_zmin": 35, "numport": 35, "s_param": 35, "input_param": 35, "kernel": 35, "usabl": 35, "tab": 35, "href": 35, "viewoutput": 35, "gdsii_prism": 35, "zmax": 35, "zmin": 35, "gdsii_vol": 35, "fname": 35, "gdsii_prim": 35, "port1": 35, "port2": 35, "port3": 35, "port4": 35, "source1": 35, "source2": 35, "source3": 35, "source4": 35, "Not": 35, "oxide_cent": 35, "oxide_s": 35, "oxide_lay": 35, "eig_par": 35, "eig_match_freq": 35, "contructor": 35, "no_par": [35, 40], "odd_z": 35, "monitor": 35, "energi": 35, "modemonitor": 35, "add_mode_monitor": 35, "moderegion": 35, "No": 35, "correctli": [35, 44], "until_after_sourc": 35, "get_eigenmode_coeffici": 35, "nfreq": 35, "neg": [35, 40], "third": [35, 40], "spot": 35, "sour": 35, "5th": 35, "input_coeff": 35, "port1_coeff": 35, "port2_coeff": 35, "port3_coeff": 35, "port4_coeff": 35, "s11": 35, "6f": 35, "upper": [35, 40, 45], "s12": 35, "s13": 35, "s14": 35, "fun": 35, "transmitt": 35, "exercis": 35, "terribl": 35, "isn": [35, 43], "fortun": 35, "meant": 35, "port1_tran": 35, "port2_tran": 35, "port3_tran": 35, "port4_tran": 35, "percent": 35, "insertionloss": 35, "insertionloss_db": 35, "steadi": 35, "reset": 35, "visula": 35, "continuoussourc": [35, 45], "reach": 35, "eps_data": [35, 45], "get_epsilon": 35, "ez_data": 35, "real": 35, "get_efield_z": 35, "screen": 35, "dpi": 35, "imshow": [35, 45], "transpos": [35, 45], "interpol": [35, 45], "spline36": [35, 45], "cmap": [35, 40, 45], "flipud": 35, "axi": [35, 40, 42, 43, 45], "hopefulli": 35, "sens": 35, "sake": 35, "rest": [35, 43], "devi": 35, "ts": 35, "s1": 35, "ts2": 35, "ts3": 35, "ts4": 35, "input_pow": 35, "trans1": 35, "trans2": 35, "trans3": 35, "trans4": 35, "expect": [35, 45], "entri": 35, "breviti": 35, "paramt": 35, "mathwork": 35, "luceda": 35, "microwaves101": 35, "youtub": 35, "opinion": 37, "newcom": 37, "troubleshoot": 37, "disagre": 37, "primarili": 37, "nervou": 37, "navig": 37, "precompil": 37, "desig": 38, "boast": 38, "healthi": 38, "capabl": 38, "lighter": 38, "pylanc": 38, "tree": 38, "icon": 38, "ey": [38, 40], "candi": 38, "theme": 38, "menu": [38, 44], "pop": 38, "conduct": 39, "copper": 39, "47": [39, 40, 43], "44": [39, 40, 43], "confin": [40, 41], "newton": 40, "motion": [40, 42], "vibrat": 40, "violin": 40, "pipe": 40, "stationari": 40, "mpb": 40, "05": 40, "51": 40, "512": 40, "36mgplugin": 40, "36m39": 40, "1mmeep": 40, "28": 40, "glass": 40, "find_modes_waveguid": 40, "core_w": 40, "core_t": 40, "m3": 40, "m4": 40, "elecgtr": 40, "wg1": 40, "linewidth": 40, "edgecolor": 40, "facecolor": 40, "wg4": 40, "ax1": 40, "ax2": 40, "islic": 40, "add_patch": 40, "tight_layout": 40, "0th": [40, 45], "1st": [40, 45], "spatial": 40, "sinusoid": 40, "non": [40, 41, 42], "slice": [40, 42], "discontinu": 40, "boundari": [40, 43], "perpindicular": 40, "discontin": 40, "contin": 40, "horizont": 40, "domin": 40, "transvers": [40, 42, 43], "wg2": 40, "wg3": 40, "plot_ez": 40, "slight": 40, "aris": 40, "mm": 40, "find_mode_dispers": 40, "mode_numb": 40, "ng": 40, "3f": 40, "106": 40, "892": 40, "ignor": [41, 45], "mass": 41, "induct": 41, "exhaust": 41, "400nm": 41, "950nm": 41, "220nm": 41, "rib": 41, "rectangular": 41, "resembl": 41, "ridg": 41, "difficult": 41, "veloc": 41, "somewhat": 41, "tediou": 41, "streamlin": 41, "wavelegnth": 41, "atom": 41, "gather": [41, 43], "n_g": 41, "dn_": 41, "lambda_0": 41, "minu": 41, "band": 41, "behav": 42, "vector": [42, 43], "pure": 42, "perpendicular": 42, "tricki": 42, "dimension": 42, "arrow": 42, "bield": 42, "sun": 42, "unpolar": 42, "atmospher": 42, "sunlight": 42, "uniform": 42, "permit": 42, "unpredict": 42, "strike": 43, "snell": 43, "theta_i": 43, "theta_r": 43, "n_1sin": 43, "n_2sin": 43, "theta_t": 43, "gamma_": 43, "n_1co": 43, "n_2co": 43, "tau_": 43, "2n_1co": 43, "obliqu": 43, "observ": 43, "n1": 43, "n2": 43, "transmission_angl": 43, "arcsin": 43, "theta_i_deg": 43, "deg2rad": 43, "set_aspect": 43, "zip": 43, "p0": 43, "i1": 43, "rad2deg": 43, "0f": 43, "r1": 43, "t1": 43, "xlim": 43, "ylim": 43, "axvlin": 43, "axhlin": 43, "linestyl": 43, "xtick": 43, "ytick": 43, "tmp": 43, "ipykernel_19546": 43, "1351043342": 43, "runtimewarn": 43, "AND": 43, "simulate_reflect": 43, "radian": 43, "incident_angle_radian": 43, "reflected_angl": 43, "transmitted_angl": 43, "incident_wav": 43, "tan": 43, "reflected_wav": 43, "transmitted_wav": 43, "display_transmit": 43, "barrier": 43, "set_xlim": 43, "set_ylim": 43, "str": 43, "set_titl": 43, "var": 43, "folder": [43, 44], "9n": 43, "_g8r69x957zb59c09f92zznh0000gn": 43, "ipykernel_69883": 43, "921879874": 43, "runtim": 43, "sine": 43, "theta_c": 43, "critical_angl": 43, "crit_angl": 43, "51840906945382": 43, "progag": 43, "profit": 43, "understood": 43, "prompt": 44, "administr": 44, "restart": 44, "password": 44, "sh": 44, "git_and_github": 44, "wslpath": 44, "04": 44, "www": 44, "de": 44, "chapter": 44, "what_is_a_photonic_devic": 44, "arbitrari": 45, "focu": 45, "i_i": 45, "i_1": 45, "i_2": 45, "perfect": 45, "70": 45, "media": 45, "vice": 45, "versa": 45, "exact": 45, "perspect": 45, "inwg": 45, "outwg": 45, "mmi1x2_with_sbend": 45, "inwg_ref": 45, "splitter_ref": 45, "outwg_top_ref": 45, "outwg_bot_ref": 45, "make_geometry_from_gds_compon": 45, "core_mat": 45, "cladding_mat": 45, "component_point": 45, "to_np": 45, "1e3": 45, "pad_width": 45, "nx": 45, "ny": 45, "matgrid": 45, "materialgrid": 45, "do_averag": 45, "damp": 45, "dft": 45, "add_dft_field": 45, "get_arrai": 45, "e_data": 45, "choic": 45, "significantli": 45, "varianc": 45}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"camacholab": 0, "photon": [0, 28, 31], "bootcamp": 0, "tabl": 0, "content": 0, "front": 0, "matter": 0, "develop": 0, "environ": [0, 32], "passiv": [0, 26, 31], "devic": [0, 31, 35], "design": [0, 8, 9, 25, 27, 31, 45], "simul": [0, 8, 20, 21, 34, 35], "circuit": [0, 3, 28, 31, 35], "activ": [0, 31], "test": 0, "refer": [0, 3, 6, 23, 35], "adjoint": 1, "optim": [1, 25, 36], "advanc": 2, "compon": [2, 6, 21, 26], "cross": 2, "section": 2, "creat": 2, "us": [2, 3, 6, 21, 35], "componentspec": 2, "analyz": 3, "account": 3, "grate": [3, 14], "coupler": [3, 8, 10, 14], "curv": 3, "fit": 3, "extract": 3, "index": [3, 41], "refract": [3, 43], "compact": [4, 31], "model": [4, 21, 31, 33, 41], "element": 6, "polygon": 6, "port": [6, 35], "label": 6, "from": [6, 21], "translat": 6, "rotat": 6, "boolean": 6, "oper": 6, "parametr": 6, "cell": 6, "shape": [6, 36], "gener": 6, "ad": 6, "export": 6, "gd": [6, 11, 19], "file": 6, "import": [6, 35], "connect": [6, 38], "exercis": [6, 8, 18], "credit": 7, "sponsor": 7, "contributor": 7, "direct": 8, "supermod": 8, "visual": [8, 38], "coupl": [8, 34], "length": 8, "gap": 8, "between": 8, "waveguid": [8, 39, 40, 41, 43], "other": [8, 35], "split": [8, 45], "ratio": 8, "show": 8, "across": [8, 35], "dc": 8, "consider": [8, 42, 45], "sourc": [8, 14, 23, 35, 45], "rule": [9, 31], "check": [9, 21, 43], "edg": 10, "meep": [11, 19, 35], "find": [11, 35], "s": [11, 21, 35], "paramet": [11, 14, 35, 41], "through": [11, 43], "gmeep": 11, "git": 12, "github": 12, "glossari": 13, "how": [14, 28, 35], "doe": [14, 28], "work": [14, 28], "essenti": 14, "period": 14, "etch": 14, "depth": 14, "fill": 14, "factor": [14, 34], "introduct": 15, "klayout": 16, "klive": 16, "laboratori": 17, "tool": 17, "pyrolab": 17, "instal": 17, "autog": 17, "defin": [18, 31], "layer": [18, 31], "stack": [18, 31], "silicon": 18, "insul": 18, "gdsfactori": 18, "layermap": 18, "layerview": 18, "layerstack": 18, "multimod": 20, "interferomet": [20, 21, 22], "mmi": 20, "self": 20, "imag": 20, "applic": [20, 28, 34], "mach": [21, 22], "zehnder": [21, 22], "The": [21, 31], "mzi": 21, "write": 21, "netlist": 21, "callabl": 21, "analysi": 21, "balanc": 21, "quick": [21, 43], "definit": 21, "imblanc": 21, "thermo": 21, "optic": [21, 24, 33], "effect": [21, 41], "lai": 22, "out": 22, "open": 23, "softwar": [23, 37], "common": 23, "licens": 23, "mit": 23, "apach": 23, "2": [23, 35], "0": 23, "gplv3": 23, "agpl": 23, "i": 24, "o": 24, "invers": 25, "process": [27, 31], "kit": 27, "phase": [28, 29, 30], "shifter": [28, 29, 30], "what": [28, 31, 35, 39], "shift": 28, "A": 28, "simpl": 28, "heater": 29, "advantag": [29, 30], "thermal": 29, "disadvantag": [29, 30], "tune": 29, "effici": 29, "pn": 30, "pin": 30, "junction": 30, "ar": [31, 35], "compar": 31, "electron": 31, "vs": 31, "manufactur": 31, "geometri": [31, 35], "digit": 31, "python": 32, "conda": 32, "virtual": 32, "packag": 32, "manag": 32, "version": 32, "improv": 33, "rai": 33, "support": 33, "mode": [33, 40], "ring": 34, "reson": 34, "critic": [34, 43], "fsr": 34, "free": 34, "spectral": 34, "rang": 34, "qualiti": 34, "field": 34, "scatter": 35, "todo": 35, "why": 35, "demonstr": 35, "simphoni": 35, "quickli": 35, "an": 35, "arbitrari": 35, "step": 35, "1": 35, "run": 35, "singl": 35, "3": 35, "same": 35, "each": 35, "differ": 35, "frequenc": 35, "studio": 38, "code": 38, "configur": 38, "vscode": 38, "wsl": [38, 44], "window": [38, 44], "machin": 38, "wavegudi": 41, "spatial": 41, "dimens": 41, "group": 41, "polar": 42, "total": 43, "intern": 43, "reflect": 43, "kei": 43, "equat": 43, "demo": 43, "angl": 43, "propag": 43, "light": [43, 45], "onli": 44, "y": 45, "branch": 45, "combin": 45}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinxcontrib.bibtex": 9, "sphinx": 56}})
\ No newline at end of file