sr!com.femlab.server.ModelFileHeaderD%LtagstLcom/femlab/util/FlStringList;Ltypesq~LvrsntLcom/femlab/util/FlVersion;xpwsrcom.femlab.util.FlVersion%/B = IbuildImajorLdatetLjava/lang/String;Lextq~Lnameq~Lrcsq~L reactionExtq~L reactionNameq~L scriptExtq~L scriptNameq~xpwtCOMSOL Script 1.1tat#COMSOL Reaction Engineering Lab 1.3tt COMSOL 3.3q~wt $Name: $t$Date: 2007/02/02 19:05:58 $xur[Ljava.lang.String;V{Gxpt modelinfotxfemtguitfem0tfem1tg9tg10tg11tg17tg18tg12tg13tfem420tfem420.0q~q~tfem434tfem434.0q~q~tfem427tfem427.0q~q~t mfileinfouq~q~t femstructt guistructq~$q~$tdrawq~&q~&q~&q~&q~&q~&tgeomtmeshtsolutiontxmeshq~'q~(q~)q~*q~'q~(q~)q~*q~"xsrcom.femlab.api.client.ModelInfo^%Ldescrq~LdocURLq~[imaget[Bxpwur[BTxpPNG  IHDRpIDATx \NOiS'- )*%[B *DL?JETB1Si%dI#5Ƅ ViEmƿaY}y>s{{DDI(DJ""%@ID$""P(DDJ"%@IDD$"P(DJ""%@ID$""P(DDJ"%H%! Y^^^\\LN6&u(UUU 硡˗/](lmm 8(..n…)1h/_DO>S0W_}%''7l0хQIIiɒ%Ltȑ/_t~F/3=]^^޽{%%%߾}իW&M200011=zq84MZ(gdd8"""AMMM===ccEٳ***ӯ]PZZӲSNM:Cy&M!P޻w)>|pժUW\YxǏ;^UUՎw*++-[6{իWoٲdXK.pB)++kooSw QQǍ~= /}vLBpх?^^^Sϛ7ݻw\ܭlpiii'N6m`ͭB)S~w̍G733KII{) \EEE)))[BԦO X΃uYYYp xkjjaIII8rww?sLWO (Q̆RRRrӦMYUSS7hìYfqeW˖-||# q jIx"""8ܲeݻw14ܹs8XAAAaÆiiiqBilla;v88801KKK9 Zna*o0p9xמ+Wtwwgm3e #TPP1cѣG~7х ڶv@v>p7b޼y\yPc[ԔPϜ9?ȑ#EJ'''₡m *h VGG{w-ad+\7&.m?p@===$(uuu yGf4999qD," eiiiAA3ϧ|VV͍/^ 3%D ,ݻ#kyyyt ](Ϟ=9խ[lZ[[#3 >LN76mB=Dӧl$z% K^^mx&ebb"'>NǸoȐ!<w(555?={,//(;---uܡ3}F±~TZ޽{^ۀ5+V`J(415QBB~ V]m_qEF?xzh/K,zR)B)@Nn߾q]Fǀ]}p>HzП÷JKKKEM#F@ I7z] > >ի k֬yqeee}}ԩS ǍǭBo544S3 N2;<ʹ4ʋ/ҢDż-Oqrr9r <<<|ţG[`y9;;رC 6yd2r~P>B45;^wVnBeG A>Pȑ#sacu--y$[la{qvv6l}bSv+,^XHE9^Q&~p %%eĉGFFr(ݸqӳ;atL:82.X' ‚ϵ^RRR&GH kK\\|̙jjjrdD9 322ʔ~A)(,))(< V\Ei ^)@jF({#2==]AA!111>>DW@@֭٥.]Ê4H \ަқ;RPR@T{-[ovXۙHdjI4E5Q]nf!OA9dȐ~5H[X4~٤ݻwqBYUUU_D@& z {k׮/> ߶mÆ;Hé ( *)ި֭۩S:ytZɉΤLD-C*F -p>aBRYbTR_~zኮ]Fw޳g8F߿ΝvEtB׋^0 Jp{zȊ ___ " ?~|Ǜ{{{c>'__?';DwР`O60zzzUsVzﯿDklӛڵ 8qb/T#_**^SP޽{0͕z) Bj/^gX|{ޓbZZZ@@7Q7%#[5qo(!^l/Br9W1S]]tO۷7 +ӫ>x&JDg0 ٷo_OP:g5z.۶mihhrq޽{!&LOl[ķܘBBT֬xJXt)?v 6t+W ^j',^s}ݧ%7VYY2 TLC=55\@Sq0ݖߵ(lNNNFF` #::+LMJ[Z$XsL]zY0\o[n|?;(%''п?}͛7 : FCCm%^zThEC 5пW2k"\̄^"W}}}N_~Q8=HCYY] DpLQэٳ"NpN4WvPԴ/8.]jjj:tPW?;ӵkƎOgMh\7RضQb]3RRR Ǐ?!ԺuMԸ~t4G 'fRQ9wmg+)8dz&n@*}߯1Ie|||Ee2egAAAr|N➛|Gq/z:x`v>܁R[[tU`JӧOעhڴi...ڭ["##;]Ǥ;v5 133311V:t(iعsiC(SSSyʕ+tj ̋#''abJ555+++]`x\zѣG[(x%~{{{ z OYXX ԺuxjY@@\4tCCwW^ gZ?4͛ymܹs~WV8KII_:99EEEuiD=4bgJSSSJ|3szz@,W\yHCi ܼחCrΜ9a{>3:Jq=O~&<ã? c":***T|`P4͛7^JJJ666}ݶm/kAtR0?y3f̠"хRZZ(Ys82:v5~x-5w9::v}ɢ %EEE|`222js^^^z[cӦM[nݻLj۴~&fuSAUVVvIӠh>͠{U>IӠh>͠{U>ư>IӠh>IӠh>ư>Nwx?͠{U>Nwx?͠{U>ư>???? ??VUUUUU?͠{U>? BezierCurve?IӠh>? BezierCurveIӠh>͠{U>?Nwx?͠{U>? BezierCurveIӠh>?Nwx?͠{U>? BezierTriNwxNwx?1{v!?Nwx?Nwx1{v!?? BezierCurveư>?IӠh>͠{U>ư>? BezierCurveư>?IӠh>ư>? BezierCurveIӠh>͠{U>ư>?Nwx?͠{U>ư>? BezierCurveIӠh>ư>?Nwx?͠{U>ư>? BezierTriNwxNwxư>?1{v!?Nwxư>?Nwx1{v!?ư>? BezierCurve?ư>? BezierCurveIӠh>͠{U>?IӠh>͠{U>ư>? BezierCurveIӠh>?IӠh>ư>? BezierCurveNwx?͠{U>?Nwx?͠{U>ư>? BezierSurf?IӠh>͠{U>?ư>?IӠh>͠{U>ư>? BezierSurf?IӠh>?ư>?IӠh>ư>? BezierSurfIӠh>͠{U>?Nwx?͠{U>?IӠh>͠{U>ư>?Nwx?͠{U>ư>? BezierSurfIӠh>?Nwx?͠{U>?IӠh>ư>?Nwx?͠{U>ư>?PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3??贁N?K/?6i6?fOӗ^?RQ??m:m?"/??E{?p= ף?34y?X%?演cK?@ t?E ףp=?6*:?X%X?fe?t@ t?H ??(\?дo??Y\i?ƒ_,?2?zG?j?b/?RM,?K~?L|w[?333333?a?O贁N?IK1?j6i?e4}?Q??:m?'@H??`w?ףp= ?29۬?%X?6? t@ ?JޮD?)\(?LӅ4?EDDDDD?[-c?_,Œ_?k(?zGz?em|Ut?b/?#??K~?~( !??sXP?鴁N?2?6i??Q?i;?:m:?K* ?UUUUUU? ףp=?6*:?X%X?fe?t@ t?H ??(\?дo??Y\i?ƒ_,?2?zG?j?b/?RM,?K~?L|w[?333333?a?O贁N?IK1?j6i?e4}?Q??:m?'@H??`w?ףp= ?29۬?%X?6? t@ ?JޮD?)\(?LӅ4?EDDDDD?[-c?_,Œ_?k(?zGz?em|Ut?b/?#??K~?~( !??sXP?鴁N?2?6i??Q?i;?:m:?K* ?UUUUUU? ףp=? ףp=?Tqs*>IӠh>͠{U>ư>IӠh>͠{U>Tqs*>IӠh>ư>IӠh>Tqs*>Nwx?͠{U>ư>Nwx?͠{U>Tqs*>???? ??VUUUUU??IӠh>͠{U>ư>? BezierCurveư>?IӠh>ư>? BezierCurveIӠh>͠{U>ư>?Nwx?͠{U>ư>? BezierCurveIӠh>ư>?Nwx?͠{U>ư>? BezierTriNwxNwxư>?1{v!?Nwxư>?Nwx1{v!?ư>? BezierCurveTqs*>?IӠh>͠{U>Tqs*>? BezierCurveTqs*>?IӠh>Tqs*>? BezierCurveIӠh>͠{U>Tqs*>?Nwx?͠{U>Tqs*>? BezierCurveIӠh>Tqs*>?Nwx?͠{U>Tqs*>? BezierTriNwxNwxTqs*>?1{v!?NwxTqs*>?Nwx1{v!?Tqs*>? BezierCurveư>?Tqs*>? BezierCurveIӠh>͠{U>ư>?IӠh>͠{U>Tqs*>? BezierCurveIӠh>ư>?IӠh>Tqs*>? BezierCurveNwx?͠{U>ư>?Nwx?͠{U>Tqs*>? BezierSurfư>?IӠh>͠{U>ư>?Tqs*>?IӠh>͠{U>Tqs*>? BezierSurfư>?IӠh>ư>?Tqs*>?IӠh>Tqs*>? BezierSurfIӠh>͠{U>ư>?Nwx?͠{U>ư>?IӠh>͠{U>Tqs*>?Nwx?͠{U>Tqs*>? BezierSurfIӠh>ư>?Nwx?͠{U>ư>?IӠh>Tqs*>?Nwx?͠{U>Tqs*>?PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3??贁N?K/?6i6?fOӗ^?RQ??m:m?"/??E{?p= ף?34y?X%?演cK?@ t?E ףp=?6*:?X%X?fe?t@ t?H ??(\?дo??Y\i?ƒ_,?2?zG?j?b/?RM,?K~?L|w[?333333?a?O贁N?IK1?j6i?e4}?Q??:m?'@H??`w?ףp= ?29۬?%X?6? t@ ?JޮD?)\(?LӅ4?EDDDDD?[-c?_,Œ_?k(?zGz?em|Ut?b/?#??K~?~( !??sXP?鴁N?2?6i??Q?i;?:m:?K* ?UUUUUU? ףp=?6*:?X%X?fe?t@ t?H ??(\?дo??Y\i?ƒ_,?2?zG?j?b/?RM,?K~?L|w[?333333?a?O贁N?IK1?j6i?e4}?Q??:m?'@H??`w?ףp= ?29۬?%X?6? t@ ?JޮD?)\(?LӅ4?EDDDDD?[-c?_,Œ_?k(?zGz?em|Ut?b/?#??K~?~( !??sXP?鴁N?2?6i??Q?i;?:m:?K* ?UUUUUU? ףp=? ףp=?avt>IӠh> u>Tqs*>IӠh> u>avt>IӠh> %Ѳ>Tqs*>IӠh> %Ѳ>avt>IӠh>Pba>Tqs*>IӠh>Pba>avt>IӠh>͠{U>Tqs*>IӠh>͠{U>avt>Nwx> u>Tqs*>Nwx> u>avt>Nwx> u>Tqs*>Nwx> u>avt>IӠh>Tqs*>IӠh>avt>IӠh>rLU>Tqs*>IӠh>rLU>avt>IӠh>?(>Tqs*>IӠh>?(>avt>d? u>Tqs*>d? u>avt>Nwx?͠{U>Tqs*>Nwx?͠{U>avt>H?? '(???'?(?W撋F? +,?W撋F??+?,VUUUUU?;i? ?+-VUUUUU?;i???+?-VUUUUU?=6? ?,.VUUUUU?=6???,?. VUUUUU?? <1|=4@?=-C6?6A? >1|= 8;? ?0|= 9<?@2|=!7=?A -C6?!9??B2|=":@?C-C6?"<B?D2|=#>A? E1|=#?B?F2|=$DG? G)|=$EH? H*|='( +,-.)/0*122 BezierCurveTqs*>?IӠh>͠{U>Tqs*>? BezierCurveTqs*>?IӠh>Tqs*>? BezierCurveIӠh>͠{U>Tqs*>?Nwx?͠{U>Tqs*>? BezierCurveIӠh>Tqs*>?Nwx?͠{U>Tqs*>? BezierCurveIӠh> u>Tqs*>?IӠh> %Ѳ>Tqs*>;f?IӠh> %Ѳ>Tqs*>? BezierCurveIӠh> u>Tqs*>?IӠh>Pba>Tqs*>;f?IӠh>Pba>Tqs*>? BezierCurveIӠh> %Ѳ>Tqs*>?Nwx> %Ѳ>Tqs*>;f?Nwx> u>Tqs*>? BezierCurveIӠh>Pba>Tqs*>?Nwx>Pba>Tqs*>;f?Nwx> u>Tqs*>? BezierCurveNwx> u>Tqs*>?Nwx>rLU>Tqs*>;f?IӠh>rLU>Tqs*>? BezierCurveNwx> u>Tqs*>?Nwx>?(>Tqs*>;f?IӠh>?(>Tqs*>? BezierCurveIӠh>rLU>Tqs*>?d?rLU>Tqs*>;f?d? u>Tqs*>? BezierCurveIӠh>?(>Tqs*>?d??(>Tqs*>;f?d? u>Tqs*>? BezierTriNwxNwxTqs*>?1{v!?NwxTqs*>?Nwx1{v!?Tqs*>? BezierCurveavt>?IӠh>͠{U>avt>? BezierCurveavt>?IӠh>avt>? BezierCurveIӠh>͠{U>avt>?Nwx?͠{U>avt>? BezierCurveIӠh>avt>?Nwx?͠{U>avt>? BezierCurveIӠh> u>avt>?IӠh> %Ѳ>avt>;f?IӠh> %Ѳ>avt>? BezierCurveIӠh> u>avt>?IӠh>Pba>avt>;f?IӠh>Pba>avt>? BezierCurveIӠh> %Ѳ>avt>?Nwx> %Ѳ>avt>;f?Nwx> u>avt>? BezierCurveIӠh>Pba>avt>?Nwx>Pba>avt>;f?Nwx> u>avt>? BezierCurveNwx> u>avt>?Nwx>rLU>avt>;f?IӠh>rLU>avt>? BezierCurveNwx> u>avt>?Nwx>?(>avt>;f?IӠh>?(>avt>? BezierCurveIӠh>rLU>avt>?d?rLU>avt>;f?d? u>avt>? BezierCurveIӠh>?(>avt>?d??(>avt>;f?d? u>avt>? BezierTriNwxNwxavt>?1{v!?Nwxavt>?Nwx1{v!?avt>? BezierCurveTqs*>?avt>? BezierCurveIӠh> u>Tqs*>?IӠh> u>avt>? BezierCurveIӠh> %Ѳ>Tqs*>?IӠh> %Ѳ>avt>? BezierCurveIӠh>Pba>Tqs*>?IӠh>Pba>avt>? BezierCurveIӠh>͠{U>Tqs*>?IӠh>͠{U>avt>? BezierCurveNwx> u>Tqs*>?Nwx> u>avt>? BezierCurveNwx> u>Tqs*>?Nwx> u>avt>? BezierCurveIӠh>Tqs*>?IӠh>avt>? BezierCurveIӠh>rLU>Tqs*>?IӠh>rLU>avt>? BezierCurveIӠh>?(>Tqs*>?IӠh>?(>avt>? BezierCurved? u>Tqs*>?d? u>avt>? BezierCurveNwx?͠{U>Tqs*>?Nwx?͠{U>avt>? BezierSurfTqs*>?IӠh>͠{U>Tqs*>?avt>?IӠh>͠{U>avt>? BezierSurfTqs*>?IӠh>Tqs*>?avt>?IӠh>avt>? BezierSurfIӠh>͠{U>Tqs*>?Nwx?͠{U>Tqs*>?IӠh>͠{U>avt>?Nwx?͠{U>avt>? BezierSurfIӠh>Tqs*>?Nwx?͠{U>Tqs*>?IӠh>avt>?Nwx?͠{U>avt>? BezierSurfIӠh> u>Tqs*>?IӠh> %Ѳ>Tqs*>;f?IӠh> %Ѳ>Tqs*>?IӠh> u>avt>?IӠh> %Ѳ>avt>;f?IӠh> %Ѳ>avt>? BezierSurfIӠh> u>Tqs*>?IӠh>Pba>Tqs*>;f?IӠh>Pba>Tqs*>?IӠh> u>avt>?IӠh>Pba>avt>;f?IӠh>Pba>avt>? BezierSurfIӠh> %Ѳ>Tqs*>?Nwx> %Ѳ>Tqs*>;f?Nwx> u>Tqs*>?IӠh> %Ѳ>avt>?Nwx> %Ѳ>avt>;f?Nwx> u>avt>? BezierSurfIӠh>Pba>Tqs*>?Nwx>Pba>Tqs*>;f?Nwx> u>Tqs*>?IӠh>Pba>avt>?Nwx>Pba>avt>;f?Nwx> u>avt>? BezierSurfNwx> u>Tqs*>?Nwx>rLU>Tqs*>;f?IӠh>rLU>Tqs*>?Nwx> u>avt>?Nwx>rLU>avt>;f?IӠh>rLU>avt>? BezierSurfNwx> u>Tqs*>?Nwx>?(>Tqs*>;f?IӠh>?(>Tqs*>?Nwx> u>avt>?Nwx>?(>avt>;f?IӠh>?(>avt>? BezierSurfIӠh>rLU>Tqs*>?d?rLU>Tqs*>;f?d? u>Tqs*>?IӠh>rLU>avt>?d?rLU>avt>;f?d? u>avt>? BezierSurfIӠh>?(>Tqs*>?d??(>Tqs*>;f?d? u>Tqs*>?IӠh>?(>avt>?d??(>avt>;f?d? u>avt>?HPolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3??贁N?K/?6i6?fOӗ^?RQ??m:m?"/??E{?p= ף?34y?X%?演cK?@ t?E ףp=?6*:?X%X?fe?t@ t?H ??(\?дo??Y\i?ƒ_,?2?zG?j?b/?RM,?K~?L|w[?333333?a?O贁N?IK1?j6i?e4}?Q??:m?'@H??`w?ףp= ?29۬?%X?6? t@ ?JޮD?)\(?LӅ4?EDDDDD?[-c?_,Œ_?k(?zGz?em|Ut?b/?#??K~?~( !??sXP?鴁N?2?6i??Q?i;?:m:?K* ?UUUUUU? ףp=?6*:?X%X?fe?t@ t?H ??(\?дo??Y\i?ƒ_,?2?zG?j?b/?RM,?K~?L|w[?333333?a?O贁N?IK1?j6i?e4}?Q??:m?'@H??`w?ףp= ?29۬?%X?6? t@ ?JޮD?)\(?LӅ4?EDDDDD?[-c?_,Œ_?k(?zGz?em|Ut?b/?#??K~?~( !??sXP?鴁N?2?6i??Q?i;?:m:?K* ?UUUUUU?5?ϓZ??r]? y ?۶?EWc?ɟȆ?8?e?7۬?.t?p ?g)?eu?(!"7?u6{u?(K E?mZc?j,5S?=R?魟yb?VSA?euwr?1?ō߂?>ݯ!?>yv?jrݨ?nOl$ݤ?([>?uZk?QW?ԁ??#?r2K? ?k?d[?§j ?0w?br?l?]B(?Ȫ?JS;?`L?RO?Jmu?V%d?Op?Vjx?EnW??U?,b"?MQҁ?ݠ7?#pe"|?]l(?*$x?b.?.,ft?y%f?Np?|(?b,n?U{?0&l?VAJ.?'Oj?tث-A?fui?UUUUUU?;i?PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3?W撋F?7b?6c<'?&ȫ? Q;?@N5?U3 O?;?*ac?N߱?15w?ϝ/%?7m?홍?NϿۺ?#'좽?͚2?M_?3x??I'?ϴ0uf? 91?:?v?J/??X;?ϓZ?-?r]?A?۶?~)U?ɟȆ?}9h?e?,}߱{?.t?!ɵ?g)? gf?(!"7?4t?(K E?={?i,5S?lnj?魟yb?vZü?euwr?ri?ō߂?Hg?>yv?B9?nOl$ݤ?{$?uZk?Կy2?ԁ????r2K? t L?k?F+X?§j ?d?br?`1(n?]B(?ȊNx?JS;?#lTA?RO?`D?V%d?$֦?Vjx?ۆk5??,LϠ?,b"?]{?ޠ7?\?]l(?Z?b.?۝v?y%f?\5R?|(?'jV`?V{?f?VAJ.?}3(ӽ?sث-A?e~?UUUUUU?=6?PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3?W撋F?7b?tic?&ȫ?w;?@N5?U"Fl?;? fs?N߱?y%cX?ϝ/%?2?홍?\e;҈?#'좽?1mvt?M_?+`??/K?ϴ0uf?A[7?:?'#?J/??R>5?ϓZ??r]? y ?۶?EWc?ɟȆ?8?e?7۬?.t?p ?g)?eu?(!"7?u6{u?(K E?mZc?j,5S?=R?魟yb?VSA?euwr?1?ō߂?>ݯ!?>yv?jrݨ?nOl$ݤ?([>?uZk?QW?ԁ??#?r2K? ?k?d[?§j ?0w?br?l?]B(?Ȫ?JS;?`L?RO?Jmu?V%d?Op?Vjx?EnW??U?,b"?MQҁ?ݠ7?#pe"|?]l(?*$x?b.?.,ft?y%f?Np?|(?b,n?U{?0&l?VAJ.?'Oj?tث-A?fui?UUUUUU?;i?PolChain3?{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\????PolChain3?W撋F?7b?6c<'?&ȫ? Q;?@N5?U3 O?;?*ac?N߱?15w?ϝ/%?7m?홍?NϿۺ?#'좽?͚2?M_?3x??I'?ϴ0uf? 91?:?v?J/??X;?ϓZ?-?r]?A?۶?~)U?ɟȆ?}9h?e?,}߱{?.t?!ɵ?g)? gf?(!"7?4t?(K E?={?i,5S?lnj?魟yb?vZü?euwr?ri?ō߂?Hg?>yv?B9?nOl$ݤ?{$?uZk?Կy2?ԁ????r2K? t L?k?F+X?§j ?d?br?`1(n?]B(?ȊNx?JS;?#lTA?RO?`D?V%d?$֦?Vjx?ۆk5??,LϠ?,b"?]{?ޠ7?\?]l(?Z?b.?۝v?y%f?\5R?|(?'jV`?V{?f?VAJ.?}3(ӽ?sث-A?e~?UUUUUU?=6?PolChain3?{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\????PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3VUUUUU?;i?7|h?fui? )Ti`|?&Oj?V/?0&l?*.+(?b,n?2C?Np?H|?.,ft?N>?*$x? r%?#pe"|?HŇ ?NQҁ?Ÿ?U? T@2?EnW?SF?Op?YZ?Imu?_Vn?`L?Lg?Ȫ?H8?l?@?0w???e[?!8x_? ? (k ?#?5P> ?QW?=[>?)[>?m(14 ?irݨ?'?>ݯ!?D53 8?1? 1G?VSA?A~uV?=R?_e?nZc?s?u6{u?Bٽ?eu?{6ԣ?p ?F ?7۬? #?8??EWc?7M? y ?#O??`zk?Q>5?p?'#?y5D?A[7??/K?^J?+`?˂?1mvt??\e;҈? z?2?])?y%cX?'o? fs?i[u?T"Fl??w;?rH?sic??U撋F?PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3VUUUUU?;i?7|h?fui? )Ti`|?&Oj?V/?0&l?*.+(?b,n?2C?Np?H|?.,ft?N>?*$x? r%?#pe"|?HŇ ?NQҁ?Ÿ?U? T@2?EnW?SF?Op?YZ?Imu?_Vn?`L?Lg?Ȫ?H8?l?@?0w???e[?!8x_? ? (k ?#?5P> ?QW?=[>?)[>?m(14 ?irݨ?'?>ݯ!?D53 8?1? 1G?VSA?A~uV?=R?_e?nZc?s?u6{u?Bٽ?eu?{6ԣ?p ?F ?7۬? #?8??EWc?7M? y ?#O??`zk?Q>5?p?'#?y5D?A[7??/K?^J?+`?˂?1mvt??\e;҈? z?2?])?y%cX?'o? fs?i[u?T"Fl??w;?rH?sic??U撋F?PolChain3?{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\????PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3VUUUUU?=6?7|h?e~? )Ti`|?}3(ӽ?V/?f?+.+(?&jV`?1C?[5R?H|?۝v?N>?Z? r%?\?HŇ ?^{?Ÿ?,LϠ? T@2?ۆk5?SF?$֦?YZ?aD?_Vn?#lTA?Lg?ȊNx?H8?`1(n?@?d???F+X?!8x_? t L? (k ???5P> ?Կy2?=[>?{$?m(14 ?A9?'?Hg?D53 8?ri? 1G?vZü?B~uV?mnj?_e?<{?s?5t?Bٽ? gf?{6ԣ? ɵ?F ?,}߱{? #?}9h??~)U?7M?A?$O?-?`zk?Y;?p?v?y5D? 91??I'?^J?3x?˂?͚2??NϿۺ? z?7m?])?15w?&o?*ac?i[u?V3 O?? Q;?rH?7c<'??U撋F?PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3VUUUUU?=6?7|h?e~? )Ti`|?}3(ӽ?V/?f?+.+(?&jV`?1C?[5R?H|?۝v?N>?Z? r%?\?HŇ ?^{?Ÿ?,LϠ? T@2?ۆk5?SF?$֦?YZ?aD?_Vn?#lTA?Lg?ȊNx?H8?`1(n?@?d???F+X?!8x_? t L? (k ???5P> ?Կy2?=[>?{$?m(14 ?A9?'?Hg?D53 8?ri? 1G?vZü?B~uV?mnj?_e?<{?s?5t?Bٽ? gf?{6ԣ? ɵ?F ?,}߱{? #?}9h??~)U?7M?A?$O?-?`zk?Y;?p?v?y5D? 91??I'?^J?3x?˂?͚2??NϿۺ? z?7m?])?15w?&o?*ac?i[u?V3 O?? Q;?rH?7c<'??U撋F?PolChain3?{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\????PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3VUUUUU? ףp=? ףp=?%p;6??i&?äy2?}W?ʯN ?[Y ?)ה?Pߡ?LJn0?D>?FdV?C?v)?_V??K oi?VRz?E"m}?-T?*4H?Fd?MO?n?>z?n?Y?$,7?;GO?sl? :x?70?4 ?wVڐ?}Z6?A^G?L3?$\?z&G?P?}[?HLs? fo?Rm?֫?{5z?-??M$)~??!{l}?PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3?%(?+F?I>;?| ?_$+O?RH?[gc?&7?~R_w?4?U{?%Cz ? ó?CCe?Rg?x4}A?!4]?86?ԿƇ?tdt!?0r ?% ʻ$?_vw?nlg,?k?L4?t-?$`?FdV?C?]l?_V?6[x?K oi?Fij?E"m}?8(?*4H?xR硇?MO?*K-5?>z? i21?Y?/mJ{?;GO?L? :x?a?4 ?BS??}Z6?}?L3?/%p;6??i&?äy2?}W?ʯN ?[Y ?)ה?Pߡ?LJn0?D>?FdV?C?v)?_V??K oi?VRz?E"m}?-T?*4H?Fd?MO?n?>z?n?Y?$,7?;GO?sl? :x?70?4 ?wVڐ?}Z6?A^G?L3?$\?z&G?P?}[?HLs? fo?Rm?֫?{5z?-??M$)~??!{l}?PolChain3?{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\????PolChain3?%(?+F?I>;?| ?_$+O?RH?[gc?&7?~R_w?4?U{?%Cz ? ó?CCe?Rg?x4}A?!4]?86?ԿƇ?tdt!?0r ?% ʻ$?_vw?nlg,?k?L4?t-?$`?FdV?C?]l?_V?6[x?K oi?Fij?E"m}?8(?*4H?xR硇?MO?*K-5?>z? i21?Y?/mJ{?;GO?L? :x?a?4 ?BS??}Z6?}?L3?/s?sl?_X?$,7?krڛ?n?R[?n?, ?Fd?2?-T? K杍?WRz??XX???v)?vʹ$?D>?a+~^7?Pߡ?uI?\Y ?"[?}W?}^l?i&?k:r }?>%p;6?Ob?E9E?R`?<^V?XH?I8f?״ߺ?<x??-‰?.=?KRٛ??ы)? Q?uJ?E;!?7`*7y?;iB?$IG7?J,#?9mF?D՝P?x0l5?)¯+?R!?$f2#?N)?]7?0Kϊ0?hK?c37?:i_??=?لZt? ]B?2?frF??0bJ?K3kf?~Mq N? ?}.uP?@? R?Ҳ?AKG7T?&?=*ȝU?O|!?VUUUUU?%(?PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3?"{l}?'T?M$)~?`~?{5z?nK?Qm?׀}?HLs?k. ?P?^V!?#\?6?A^G?#_JzJ?xVڐ?ԝK^?70??>s?sl?_X?$,7?krڛ?n?R[?n?, ?Fd?2?-T? K杍?WRz??XX???v)?vʹ$?D>?a+~^7?Pߡ?uI?\Y ?"[?}W?}^l?i&?k:r }?>%p;6?Ob?E9E?R`?<^V?XH?I8f?״ߺ?<x??-‰?.=?KRٛ??ы)? Q?uJ?E;!?7`*7y?;iB?$IG7?J,#?9mF?D՝P?x0l5?)¯+?R!?$f2#?N)?]7?0Kϊ0?hK?c37?:i_??=?لZt? ]B?2?frF??0bJ?K3kf?~Mq N? ?}.uP?@? R?Ҳ?AKG7T?&?=*ȝU?O|!?VUUUUU?%(?PolChain3?{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\????PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3?Uw7?'T?=LC ?`~?cƳ?nK??׀}?|P?k. ??^V!?/s?L?`X?/mJ{?krڛ? i21?R[?*K-5?, ?xR硇?2?8(? K杍?Fij??XX?6[x??]l?vʹ$??`?`+~^7?T?uI?fKF?"[?\d8?}^l?E**?k:r }?t?Pb?PD ?R`?j\N?XH?@?״ߺ?H??ǁX?.=?`M,A?@ы)?vH!ɢ?uJ?k?7`*7y??z|?$IG7? ma pi?9mF?ĭ)U?y0l5?,כA?R!?t-?N)?k?0Kϊ0?_vw?c37?0r ??=?ԿƇ? ]B?!4]?frF?Rg?1bJ?ó?~Mq N?U{?}.uP?R_w? R?[gc?AKG7T?`$+O?=*ȝU?I>;?VUUUUU?%(?PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3?Uw7?'T?=LC ?`~?cƳ?nK??׀}?|P?k. ??^V!?/s?L?`X?/mJ{?krڛ? i21?R[?*K-5?, ?xR硇?2?8(? K杍?Fij??XX?6[x??]l?vʹ$??`?`+~^7?T?uI?fKF?"[?\d8?}^l?E**?k:r }?t?Pb?PD ?R`?j\N?XH?@?״ߺ?H??ǁX?.=?`M,A?@ы)?vH!ɢ?uJ?k?7`*7y??z|?$IG7? ma pi?9mF?ĭ)U?y0l5?,כA?R!?t-?N)?k?0Kϊ0?_vw?c37?0r ??=?ԿƇ? ]B?!4]?frF?Rg?1bJ?ó?~Mq N?U{?}.uP?R_w? R?[gc?AKG7T?`$+O?=*ȝU?I>;?VUUUUU?%(?PolChain3?{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\????PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\??? AssocAttrib VectorInt(     $D$      !"#&     xwxsq~7wq~wmuq~.mGeom3|=-C6?avt>y?IӠh>͠{U>avt>IӠh>͠{U>y?IӠh>avt>IӠh>y?Nwx?͠{U>avt>Nwx?͠{U>y????? ??VUUUUU??IӠh>͠{U>avt>? BezierCurveavt>?IӠh>avt>? BezierCurveIӠh>͠{U>avt>?Nwx?͠{U>avt>? BezierCurveIӠh>avt>?Nwx?͠{U>avt>? BezierTriNwxNwxavt>?1{v!?Nwxavt>?Nwx1{v!?avt>? BezierCurvey??IӠh>͠{U>y?? BezierCurvey??IӠh>y?? BezierCurveIӠh>͠{U>y??Nwx?͠{U>y?? BezierCurveIӠh>y??Nwx?͠{U>y?? BezierTriNwxNwxy??1{v!?Nwxy??Nwx1{v!?y?? BezierCurveavt>?y?? BezierCurveIӠh>͠{U>avt>?IӠh>͠{U>y?? BezierCurveIӠh>avt>?IӠh>y?? BezierCurveNwx?͠{U>avt>?Nwx?͠{U>y?? BezierSurfavt>?IӠh>͠{U>avt>?y??IӠh>͠{U>y?? BezierSurfavt>?IӠh>avt>?y??IӠh>y?? BezierSurfIӠh>͠{U>avt>?Nwx?͠{U>avt>?IӠh>͠{U>y??Nwx?͠{U>y?? BezierSurfIӠh>avt>?Nwx?͠{U>avt>?IӠh>y??Nwx?͠{U>y??PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3??贁N?K/?6i6?fOӗ^?RQ??m:m?"/??E{?p= ף?34y?X%?演cK?@ t?E ףp=?6*:?X%X?fe?t@ t?H ??(\?дo??Y\i?ƒ_,?2?zG?j?b/?RM,?K~?L|w[?333333?a?O贁N?IK1?j6i?e4}?Q??:m?'@H??`w?ףp= ?29۬?%X?6? t@ ?JޮD?)\(?LӅ4?EDDDDD?[-c?_,Œ_?k(?zGz?em|Ut?b/?#??K~?~( !??sXP?鴁N?2?6i??Q?i;?:m:?K* ?UUUUUU? ףp=?6*:?X%X?fe?t@ t?H ??(\?дo??Y\i?ƒ_,?2?zG?j?b/?RM,?K~?L|w[?333333?a?O贁N?IK1?j6i?e4}?Q??:m?'@H??`w?ףp= ?29۬?%X?6? t@ ?JޮD?)\(?LӅ4?EDDDDD?[-c?_,Œ_?k(?zGz?em|Ut?b/?#??K~?~( !??sXP?鴁N?2?6i??Q?i;?:m:?K* ?UUUUUU? ףp=? ףp=?͠{U>y?IӠh>͠{U>v6?Y?IӠh>y?IӠh>v6?Y?Nwx?͠{U>y?Nwx?͠{U>v6?Y????? ??VUUUUU?͠{U>y?? BezierCurvey??IӠh>y?? BezierCurveIӠh>͠{U>y??Nwx?͠{U>y?? BezierCurveIӠh>y??Nwx?͠{U>y?? BezierTriNwxNwxy??1{v!?Nwxy??Nwx1{v!?y?? BezierCurvev6?Y??IӠh>͠{U>v6?Y?? BezierCurvev6?Y??IӠh>v6?Y?? BezierCurveIӠh>͠{U>v6?Y??Nwx?͠{U>v6?Y?? BezierCurveIӠh>v6?Y??Nwx?͠{U>v6?Y?? BezierTriNwxNwxv6?Y??1{v!?Nwxv6?Y??Nwx1{v!?v6?Y?? BezierCurvey??v6?Y?? BezierCurveIӠh>͠{U>y??IӠh>͠{U>v6?Y?? BezierCurveIӠh>y??IӠh>v6?Y?? BezierCurveNwx?͠{U>y??Nwx?͠{U>v6?Y?? BezierSurfy??IӠh>͠{U>y??v6?Y??IӠh>͠{U>v6?Y?? BezierSurfy??IӠh>y??v6?Y??IӠh>v6?Y?? BezierSurfIӠh>͠{U>y??Nwx?͠{U>y??IӠh>͠{U>v6?Y??Nwx?͠{U>v6?Y?? BezierSurfIӠh>y??Nwx?͠{U>y??IӠh>v6?Y??Nwx?͠{U>v6?Y??PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3??贁N?K/?6i6?fOӗ^?RQ??m:m?"/??E{?p= ף?34y?X%?演cK?@ t?E ףp=?6*:?X%X?fe?t@ t?H ??(\?дo??Y\i?ƒ_,?2?zG?j?b/?RM,?K~?L|w[?333333?a?O贁N?IK1?j6i?e4}?Q??:m?'@H??`w?ףp= ?29۬?%X?6? t@ ?JޮD?)\(?LӅ4?EDDDDD?[-c?_,Œ_?k(?zGz?em|Ut?b/?#??K~?~( !??sXP?鴁N?2?6i??Q?i;?:m:?K* ?UUUUUU? ףp=?6*:?X%X?fe?t@ t?H ??(\?дo??Y\i?ƒ_,?2?zG?j?b/?RM,?K~?L|w[?333333?a?O贁N?IK1?j6i?e4}?Q??:m?'@H??`w?ףp= ?29۬?%X?6? t@ ?JޮD?)\(?LӅ4?EDDDDD?[-c?_,Œ_?k(?zGz?em|Ut?b/?#??K~?~( !??sXP?鴁N?2?6i??Q?i;?:m:?K* ?UUUUUU? ףp=? ףp=? u>Tqs*>Nwx> u>avt>IӠh>rLU>Tqs*>IӠh>rLU>avt>IӠh>?(>Tqs*>IӠh>?(>avt>d? u>Tqs*>d? u>avt>?[-c???[-c? ????(N0???(N0? ????1`???1`? ????[-c???[-c? ??? ? ????? ?????? ?|=?|=?-C6??|= ?-C6??|= ? -C6? ?|=? -C6??|= ? |= ? |=? -C6? ?|= ? -C6? ?|= ?|= ?|= ?-C6? ?|= ? -C6? ?|= ?|= ?|=  BezierCurveNwx> u>Tqs*>?Nwx>rLU>Tqs*>;f?IӠh>rLU>Tqs*>? BezierCurveIӠh>rLU>Tqs*>?d?rLU>Tqs*>;f?d? u>Tqs*>? BezierCurved? u>Tqs*>?d??(>Tqs*>;f?IӠh>?(>Tqs*>? BezierCurveIӠh>?(>Tqs*>?Nwx>?(>Tqs*>;f?Nwx> u>Tqs*>? BezierTriddTqs*>?"?dTqs*>?d"?Tqs*>? BezierCurveNwx> u>avt>?Nwx>rLU>avt>;f?IӠh>rLU>avt>? BezierCurveIӠh>rLU>avt>?d?rLU>avt>;f?d? u>avt>? BezierCurved? u>avt>?d??(>avt>;f?IӠh>?(>avt>? BezierCurveIӠh>?(>avt>?Nwx>?(>avt>;f?Nwx> u>avt>? BezierTriddavt>?"?davt>?d"?avt>? BezierCurveNwx> u>Tqs*>?Nwx> u>avt>? BezierCurveIӠh>rLU>Tqs*>?IӠh>rLU>avt>? BezierCurved? u>Tqs*>?d? u>avt>? BezierCurveIӠh>?(>Tqs*>?IӠh>?(>avt>? BezierSurfNwx> u>Tqs*>?Nwx>rLU>Tqs*>;f?IӠh>rLU>Tqs*>?Nwx> u>avt>?Nwx>rLU>avt>;f?IӠh>rLU>avt>? BezierSurfIӠh>rLU>Tqs*>?d?rLU>Tqs*>;f?d? u>Tqs*>?IӠh>rLU>avt>?d?rLU>avt>;f?d? u>avt>? BezierSurfd? u>Tqs*>?d??(>Tqs*>;f?IӠh>?(>Tqs*>?d? u>avt>?d??(>avt>;f?IӠh>?(>avt>? BezierSurfIӠh>?(>Tqs*>?Nwx>?(>Tqs*>;f?Nwx> u>Tqs*>?IӠh>?(>avt>?Nwx>?(>avt>;f?Nwx> u>avt>?PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???PolChain3?[-c?u?WaL??Y.j5?0^?<?.B@?$E?g x??tZ$?#,?pM?QRߪ?w!? c]?p:??w??%?y+s?r:&?2Z?NEn?|EoB??aV{<*?l?˵3?U#p|? 3`?u?+?$&ͽ?X?y ?U?mGꎴ?8X"?ri?|.2?'4ч?o~(B?.6r?&B ?3L?BE?'( l?#?yVT??w?1T B ?3L?BE?'( l?#?yVT??w?1T  u>Tqs*>IӠh> u>avt>IӠh> %Ѳ>Tqs*>IӠh> %Ѳ>avt>IӠh>Pba>Tqs*>IӠh>Pba>avt>Nwx> u>Tqs*>Nwx> u>avt>VUUUUU?%(??VUUUUU?%(? ????Vw7???Vw7? ????"{l}???"{l}? ????%(???%(? ??? ? ????? ?????? ?|=?|=?-C6??|= ?-C6??|= ? -C6? ?|=? -C6??|= ? |= ? |=? -C6? ?|= ? -C6? ?|= ?|= ?|= ?-C6? ?|= ? -C6? ?|= ?|= ?|=  BezierCurveIӠh> u>Tqs*>?IӠh> %Ѳ>Tqs*>;f?IӠh> %Ѳ>Tqs*>? BezierCurveIӠh> %Ѳ>Tqs*>?Nwx> %Ѳ>Tqs*>;f?Nwx> u>Tqs*>? BezierCurveNwx> u>Tqs*>?Nwx>Pba>Tqs*>;f?IӠh>Pba>Tqs*>? BezierCurveIӠh>Pba>Tqs*>?IӠh>Pba>Tqs*>;f?IӠh> u>Tqs*>? BezierTriNwxNwxTqs*>?1{v?NwxTqs*>?Nwx1{v?Tqs*>? BezierCurveIӠh> u>avt>?IӠh> %Ѳ>avt>;f?IӠh> %Ѳ>avt>? BezierCurveIӠh> %Ѳ>avt>?Nwx> %Ѳ>avt>;f?Nwx> u>avt>? BezierCurveNwx> u>avt>?Nwx>Pba>avt>;f?IӠh>Pba>avt>? BezierCurveIӠh>Pba>avt>?IӠh>Pba>avt>;f?IӠh> u>avt>? BezierTriNwxNwxavt>?1{v?Nwxavt>?Nwx1{v?avt>? BezierCurveIӠh> u>Tqs*>?IӠh> u>avt>? BezierCurveIӠh> %Ѳ>Tqs*>?IӠh> %Ѳ>avt>? BezierCurveNwx> u>Tqs*>?Nwx> u>avt>? BezierCurveIӠh>Pba>Tqs*>?IӠh>Pba>avt>? BezierSurfIӠh> u>Tqs*>?IӠh> %Ѳ>Tqs*>;f?IӠh> %Ѳ>Tqs*>?IӠh> u>avt>?IӠh> %Ѳ>avt>;f?IӠh> %Ѳ>avt>? BezierSurfIӠh> %Ѳ>Tqs*>?Nwx> %Ѳ>Tqs*>;f?Nwx> u>Tqs*>?IӠh> %Ѳ>avt>?Nwx> %Ѳ>avt>;f?Nwx> u>avt>? BezierSurfNwx> u>Tqs*>?Nwx>Pba>Tqs*>;f?IӠh>Pba>Tqs*>?Nwx> u>avt>?Nwx>Pba>avt>;f?IӠh>Pba>avt>? BezierSurfIӠh>Pba>Tqs*>?IӠh>Pba>Tqs*>;f?IӠh> u>Tqs*>?IӠh>Pba>avt>?IӠh>Pba>avt>;f?IӠh> u>avt>?PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???PolChain3VUUUUU?%(?oU?Ƕ?M|iqW?@%(v?jZ?Dز?w^?j?ec?Jb?;_Jj?e@?:?3r?v?FOE{?c??V5(?=8??_f?ia̞??σn?2.$tb?&=N-F?_~Z?|j?'?9?$s??mq?닮0Ǧ?? ?qP?;j!??QoY?] :?4?ϢمS??~$? P(BDn?mD?Q<@?S?XjNo?|&nY%?[??*?^:?^e[c?+;?}_C?|B'?zQ%?ܞHI?P|"?m?r&??B?Fh?d2?c??6ş?ON?a&?i3(?ss?໚0P?6U_?w?L?ZI?<;?'ӭJ?3PD+?@N?V??<@z?WhEB?:3?Ako k?ED(?P “?UI?CR]?]X,?(K?$?P ?>Y?"i!4?a M?@\?Ms?W[ԃ?0??Uw7?PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3?"{l}?W[ԃ?`T}?@\?fP{?"i!4?\#x?P ?L t?(K?tkxo?CR]?;ah?P “?}Ca?Ako k?W?WhEB?uM??YA??N? oj4?&ӭJ? IM%?ZI?pC?w?Fب,?Ớ0P?ȑ?i3(?PbP?ON?7%0*??bWT?d2?*??B?^-?m?F'd?ܞHI?ᓱH?|B'?fs+?+;?p ?]:??[??+촆y?XjNo?r?P<@?xx}?P(BDn?j"f?ϢمS?BA?] :?Ak+?;j!?tYc?? ?'r"?mq?i R?$s?t5<?'?Q[?_~Z?wB3?3.$tb?,\ ?ia̞?sb?<8??Nγ??g?FOE{?5eR-h?3r?u??;_Jj?f3 o?ec?bNj? w^?U~2?jZ?TgA?N|iqW?t#?v?oU?mxfcO?VUUUUU?%(?PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3VUUUUU?%(?oU?Ƕ?M|iqW?@%(v?jZ?Dز?w^?j?ec?Jb?;_Jj?e@?:?3r?v?FOE{?c??V5(?=8??_f?ia̞??σn?2.$tb?&=N-F?_~Z?|j?'?9?$s??mq?닮0Ǧ?? ?qP?;j!??QoY?] :?4?ϢمS??~$? P(BDn?mD?Q<@?S?XjNo?|&nY%?[??*?^:?^e[c?+;?}_C?|B'?zQ%?ܞHI?P|"?m?r&??B?Fh?d2?c??6ş?ON?a&?i3(?ss?໚0P?6U_?w?L?ZI?<;?'ӭJ?3PD+?@N?V??<@z?WhEB?:3?Ako k?ED(?P “?UI?CR]?]X,?(K?$?P ?>Y?"i!4?a M?@\?Ms?W[ԃ?0??Uw7?PolChain3?{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\????PolChain3?"{l}?W[ԃ?`T}?@\?fP{?"i!4?\#x?P ?L t?(K?tkxo?CR]?;ah?P “?}Ca?Ako k?W?WhEB?uM??YA??N? oj4?&ӭJ? IM%?ZI?pC?w?Fب,?Ớ0P?ȑ?i3(?PbP?ON?7%0*??bWT?d2?*??B?^-?m?F'd?ܞHI?ᓱH?|B'?fs+?+;?p ?]:??[??+촆y?XjNo?r?P<@?xx}?P(BDn?j"f?ϢمS?BA?] :?Ak+?;j!?tYc?? ?'r"?mq?i R?$s?t5<?'?Q[?_~Z?wB3?3.$tb?,\ ?ia̞?sb?<8??Nγ??g?FOE{?5eR-h?3r?u??;_Jj?f3 o?ec?bNj? w^?U~2?jZ?TgA?N|iqW?t#?v?oU?mxfcO?VUUUUU?%(?PolChain3?{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\????PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3?Vw7?m?0?R?Ms?23_ ?a M?U\WPH?>Y?c, p?$?f?]X,?|K?UI?J?FD(??:3?qa;?<@z?Ld?V?-: ?3PD+?e `?<;?n?L?u$?6U_?i!p,?ss?@S?a&?u7Ry?6ş?Bp"?c?Q?Fh?kb}@?r&?w| ?P|"?Pbh.?zQ%?+9O?}_C?jfp?]e[c?b?*??|&nY%?E?S?G-?mD?^{?>~$?lG?4?@q3??QoY?GJ?qP?Q_?싮0Ǧ?o0s??F-?9?f?|j?!'1?'=N-F?j?@σn?7?_f?ԕ?V5(?}?c?}!:x5?v?x ?e@?:?R7?Jb?L??j?\n?Dز??@%(v?Ωr?Ƕ??%(?PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3?Vw7?m?0?R?Ms?23_ ?a M?U\WPH?>Y?c, p?$?f?]X,?|K?UI?J?FD(??:3?qa;?<@z?Ld?V?-: ?3PD+?e `?<;?n?L?u$?6U_?i!p,?ss?@S?a&?u7Ry?6ş?Bp"?c?Q?Fh?kb}@?r&?w| ?P|"?Pbh.?zQ%?+9O?}_C?jfp?]e[c?b?*??|&nY%?E?S?G-?mD?^{?>~$?lG?4?@q3??QoY?GJ?qP?Q_?싮0Ǧ?o0s??F-?9?f?|j?!'1?'=N-F?j?@σn?7?_f?ԕ?V5(?}?c?}!:x5?v?x ?e@?:?R7?Jb?L??j?\n?Dز??@%(v?Ωr?Ƕ??%(?PolChain3?{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\????PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3?%(?ϩr?mxfcO??t#?v?[n?TgA?M??T~2?R7?cNj?x ?f3 o?|!:x5?u??}?5eR-h?ԕ?g?7?Nγ?j?sb?"'1?.\ ?f?wB3?F-?Q[?o0s?t5<?P_?j R?GJ?'r"?@q3?uYc?lG?Ak+?_{?BA?G-?j"f?E?yx}??r?b?+촆y?jfp??*9O?p ?Pbh.?fs+?x| ?ᓱH?kb}@?F'd?Q?^-?Bp"?*?u7Ry?bWT?@S?7%0*?j!p,?QbP?u$?Ǒ?n?Eب,?e `?pC?-: ? IM%?Ld? oj4?qa;?YA??uM?J?W?|K?|Ca?g?;ah?b, p?tkxo?T\WPH?M t?23_ ?[#x?R?fP{?m?`T}??"{l}?PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3?%(?ϩr?mxfcO??t#?v?[n?TgA?M??T~2?R7?cNj?x ?f3 o?|!:x5?u??}?5eR-h?ԕ?g?7?Nγ?j?sb?"'1?.\ ?f?wB3?F-?Q[?o0s?t5<?P_?j R?GJ?'r"?@q3?uYc?lG?Ak+?_{?BA?G-?j"f?E?yx}??r?b?+촆y?jfp??*9O?p ?Pbh.?fs+?x| ?ᓱH?kb}@?F'd?Q?^-?Bp"?*?u7Ry?bWT?@S?7%0*?j!p,?QbP?u$?Ǒ?n?Eب,?e `?pC?-: ? IM%?Ld? oj4?qa;?YA??uM?J?W?|K?|Ca?g?;ah?b, p?tkxo?T\WPH?M t?23_ ?[#x?R?fP{?m?`T}??"{l}?PolChain3?{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\????PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\?? AssocAttrib VectorInt( D    &xwxsq~7wq~wuq~.Geom3|=-C6?(ư>|=Tqs*>|=avt>|=x?|=v6?Y?IӠh> u>Tqs*>|=IӠh> u>avt>|=IӠh> %Ѳ>Tqs*>|=IӠh> %Ѳ>avt>|=IӠh>Pba>Tqs*>|=IӠh>Pba>avt>|=IӠh>̠{U>IӠh>̠{U>ư>|=IӠh>̠{U>Tqs*>|=IӠh>̠{U>avt>|=IӠh>̠{U>x?|=IӠh>̠{U>v6?Y?Nwx> u>Tqs*>|=Nwx> u>avt>|=Nwx> u>Tqs*>|=Nwx> u>avt>|=IӠh>IӠh>ư>|=IӠh>Tqs*>|=IӠh>avt>|=IӠh>x?|=IӠh>v6?Y?IӠh>qLU>Tqs*>|=IӠh>qLU>avt>|=IӠh>?(>Tqs*>|=IӠh>?(>avt>|=d? u>Tqs*>|=d? u>avt>|=Nwx?̠{U>Nwx?̠{U>ư>|=Nwx?̠{U>Tqs*>|=Nwx?̠{U>avt>|=Nwx?̠{U>x?|=Nwx?̠{U>v6?Y???????????'@A?@?A??NWX?W?X??[ef??`?e?f?W撋F?'VUUUUU?%(?IJ?M?J??M?U撋F?N VUUUUU?;i?' ?Vw7?I ?J K ??J ?K VUUUUU?;i?N VUUUUU?=6?' ?"{l}?I ?L M ??L ?M VUUUUU?=6?N VUUUUU?#$? $%?%&??&'?V'(?d?|=?|=0?-C6?1?|=X?-C6?Y?|= ?|= ?|=3? |=5? -C6?6? |=[? |=]? -C6?^?|= ?@|= ?A|= 8?|= :? '-C6? ;?@|= `?|= b? '-C6? c?A|= ? W|= ? X|= =?@|= ?? N-C6? @? W|= e?A|= g? N-C6? h? X|= ? e|= ? f|=B? !W|=D?"[-C6?E? #e|=j? $X|=l?%[-C6?m?&f|=G?'`-C6?H? (e|=o?)`-C6?p?*f|=?+J|= ?,M|="? -'-C6?#?.I-C6?$?/J|=)? 0'-C6?*?I-C6?,?M|=&?3J|=!(R ? 4N-C6? .?M|=!/R ? 6N-C6?$&?7J|=%'?8K|="J? 9'-C6?#K?:I-C6?%L?;K|='N?<K|=(PR ? =N-C6?+-?>L|=,.??M|=)J? @'-C6?*K?I-C6?+M?L|=-O?L|=/PR ? DN-C6?13?E|=24?F|=0?G-C6?2?H|=68?I|=79?J|= 4?K|= 5?L-C6? 7?M|=!;=?N@|=!<>?OB|="9?P|=":? Q'-C6?"<?RB|=#@B? SW|=#AC?TY|=$>?UB|=$?? VN-C6?$A?WY|=%EH? Xe|=%FI?Yg|=&C?ZY|=&D?[[-C6?&F?\g|='G?]`-C6?'I?^g|=(LN?_K|=(MO?`L|=)SU?aE|=)TV?bH|=*Qr? c'-C6?*Rs?dD-C6?*St?eE|=+Qy? f'-C6?+Rz?D-C6?+T|?H|=,Uv?iE|=,WxR ? jN-C6?-V~?H|=-WR ? lN-C6?.Y[?m|=.Z\? n|=/X?o-C6?/Z? p|=0^`?q|=0_a?!r|=1\? s|=1]?t-C6?1_?!u|=2ce?vA|=2df?"wC|=3a?!x|=3b? y'-C6?3d?"zC|=4hj? {X|=4ik?#|Z|=5f?"}C|=5g? ~N-C6?5i?#Z|=6mp?f|=6nq?$h|=7k?#Z|=7l?[-C6?7n?$h|=8o?`-C6?8q?$h|=9tv?E|=9uw?%F|=:r? '-C6?:s?D-C6?:u?%F|=;w?%F|=;xR ? N-C6?<{}?&G|=<|~?H|==y? '-C6?=z?oD-C6?={?&nG|=>}?&mG|=>R ? N-C6???%F|=??&G|=@?|=@? |=A?|=A?!|=B?B|=B?"C|=C?Y|=C?#Z|=D?g|=D?$h|=&@A'WXNef[`JMINKLBYgEHDNCZhFGh BezierCurve?IӠh>̠{U>? BezierCurve?IӠh>? BezierCurveIӠh>̠{U>?Nwx?̠{U>? BezierCurveIӠh>?Nwx?̠{U>? BezierTriNwxNwx?1{v!?Nwx?Nwx1{v!?? BezierCurveư>?IӠh>̠{U>ư>? BezierCurveư>?IӠh>ư>? BezierCurveIӠh>̠{U>ư>?Nwx?̠{U>ư>? BezierCurveIӠh>ư>?Nwx?̠{U>ư>? BezierCurve?ư>? BezierCurveIӠh>̠{U>?IӠh>̠{U>ư>? BezierCurveIӠh>?IӠh>ư>? BezierCurveNwx?̠{U>?Nwx?̠{U>ư>? BezierSurf?IӠh>̠{U>?ư>?IӠh>̠{U>ư>? BezierSurf?IӠh>?ư>?IӠh>ư>? BezierSurfIӠh>̠{U>?Nwx?̠{U>?IӠh>̠{U>ư>?Nwx?̠{U>ư>? BezierSurfIӠh>?Nwx?̠{U>?IӠh>ư>?Nwx?̠{U>ư>? BezierTriNwxNwxư>?1{v!?Nwxư>?Nwx1{v!?ư>? BezierCurveTqs*>?IӠh>̠{U>Tqs*>? BezierCurveTqs*>?IӠh>Tqs*>? BezierCurveIӠh>̠{U>Tqs*>?Nwx?̠{U>Tqs*>? BezierCurveIӠh>Tqs*>?Nwx?̠{U>Tqs*>? BezierCurveư>?Tqs*>? BezierCurveIӠh>̠{U>ư>?IӠh>̠{U>Tqs*>? BezierCurveIӠh>ư>?IӠh>Tqs*>? BezierCurveNwx?̠{U>ư>?Nwx?̠{U>Tqs*>? BezierSurfư>?IӠh>̠{U>ư>?Tqs*>?IӠh>̠{U>Tqs*>? BezierSurfư>?IӠh>ư>?Tqs*>?IӠh>Tqs*>? BezierSurfIӠh>̠{U>ư>?Nwx?̠{U>ư>?IӠh>̠{U>Tqs*>?Nwx?̠{U>Tqs*>? BezierSurfIӠh>ư>?Nwx?̠{U>ư>?IӠh>Tqs*>?Nwx?̠{U>Tqs*>? BezierCurveIӠh> u>Tqs*>?IӠh> %Ѳ>Tqs*>;f?IӠh> %Ѳ>Tqs*>? BezierCurveIӠh> u>Tqs*>?IӠh>Pba>Tqs*>;f?IӠh>Pba>Tqs*>? BezierCurveIӠh> %Ѳ>Tqs*>?Nwx> %Ѳ>Tqs*>;f?Nwx> u>Tqs*>? BezierCurveIӠh>Pba>Tqs*>?Nwx>Pba>Tqs*>;f?Nwx> u>Tqs*>? BezierCurveNwx> u>Tqs*>?Nwx>qLU>Tqs*>;f?IӠh>qLU>Tqs*>? BezierCurveNwx> u>Tqs*>?Nwx>?(>Tqs*>;f?IӠh>?(>Tqs*>? BezierCurveIӠh>qLU>Tqs*>?d?qLU>Tqs*>;f?d? u>Tqs*>? BezierCurveIӠh>?(>Tqs*>?d??(>Tqs*>;f?d? u>Tqs*>? BezierTriNwxNwxTqs*>?1{v!?NwxTqs*>?Nwx1{v!?Tqs*>? BezierCurveavt>?IӠh>̠{U>avt>? BezierCurveavt>?IӠh>avt>? BezierCurveIӠh>̠{U>avt>?Nwx?̠{U>avt>? BezierCurveIӠh>avt>?Nwx?̠{U>avt>? BezierCurveIӠh> u>avt>?IӠh> %Ѳ>avt>;f?IӠh> %Ѳ>avt>? BezierCurveIӠh> u>avt>?IӠh>Pba>avt>;f?IӠh>Pba>avt>? BezierCurveIӠh> %Ѳ>avt>?Nwx> %Ѳ>avt>;f?Nwx> u>avt>? BezierCurveIӠh>Pba>avt>?Nwx>Pba>avt>;f?Nwx> u>avt>? BezierCurveNwx> u>avt>?Nwx>qLU>avt>;f?IӠh>qLU>avt>? BezierCurveNwx> u>avt>?Nwx>?(>avt>;f?IӠh>?(>avt>? BezierCurveIӠh>qLU>avt>?d?qLU>avt>;f?d? u>avt>? BezierCurveIӠh>?(>avt>?d??(>avt>;f?d? u>avt>? BezierCurveTqs*>?avt>? BezierCurveIӠh> u>Tqs*>?IӠh> u>avt>? BezierCurveIӠh> %Ѳ>Tqs*>?IӠh> %Ѳ>avt>? BezierCurveIӠh>Pba>Tqs*>?IӠh>Pba>avt>? BezierCurveIӠh>̠{U>Tqs*>?IӠh>̠{U>avt>? BezierCurveNwx> u>Tqs*>?Nwx> u>avt>? BezierCurveNwx> u>Tqs*>?Nwx> u>avt>? BezierCurveIӠh>Tqs*>?IӠh>avt>? BezierCurveIӠh>qLU>Tqs*>?IӠh>qLU>avt>? BezierCurveIӠh>?(>Tqs*>?IӠh>?(>avt>? BezierCurved? u>Tqs*>?d? u>avt>? BezierCurveNwx?̠{U>Tqs*>?Nwx?̠{U>avt>? BezierSurfTqs*>?IӠh>̠{U>Tqs*>?avt>?IӠh>̠{U>avt>? BezierSurfTqs*>?IӠh>Tqs*>?avt>?IӠh>avt>? BezierSurfIӠh>̠{U>Tqs*>?Nwx?̠{U>Tqs*>?IӠh>̠{U>avt>?Nwx?̠{U>avt>? BezierSurfIӠh>Tqs*>?Nwx?̠{U>Tqs*>?IӠh>avt>?Nwx?̠{U>avt>? BezierTriddTqs*>?"?dTqs*>?d"?Tqs*>? BezierSurfNwx> u>Tqs*>?Nwx>qLU>Tqs*>;f?IӠh>qLU>Tqs*>?Nwx> u>avt>?Nwx>qLU>avt>;f?IӠh>qLU>avt>? BezierSurfIӠh>qLU>Tqs*>?d?qLU>Tqs*>;f?d? u>Tqs*>?IӠh>qLU>avt>?d?qLU>avt>;f?d? u>avt>? BezierSurfd? u>Tqs*>?d??(>Tqs*>;f?IӠh>?(>Tqs*>?d? u>avt>?d??(>avt>;f?IӠh>?(>avt>? BezierSurfIӠh>?(>Tqs*>?Nwx>?(>Tqs*>;f?Nwx> u>Tqs*>?IӠh>?(>avt>?Nwx>?(>avt>;f?Nwx> u>avt>? BezierTriNwxNwxTqs*>?1{v?NwxTqs*>?Nwx1{v?Tqs*>? BezierSurfIӠh> u>Tqs*>?IӠh> %Ѳ>Tqs*>;f?IӠh> %Ѳ>Tqs*>?IӠh> u>avt>?IӠh> %Ѳ>avt>;f?IӠh> %Ѳ>avt>? BezierSurfIӠh> %Ѳ>Tqs*>?Nwx> %Ѳ>Tqs*>;f?Nwx> u>Tqs*>?IӠh> %Ѳ>avt>?Nwx> %Ѳ>avt>;f?Nwx> u>avt>? BezierSurfNwx> u>Tqs*>?Nwx>Pba>Tqs*>;f?IӠh>Pba>Tqs*>?Nwx> u>avt>?Nwx>Pba>avt>;f?IӠh>Pba>avt>? BezierSurfIӠh>Pba>Tqs*>?IӠh>Pba>Tqs*>;f?IӠh> u>Tqs*>?IӠh>Pba>avt>?IӠh>Pba>avt>;f?IӠh> u>avt>? BezierTriNwxNwxavt>?1{v!?Nwxavt>?Nwx1{v!?avt>? BezierCurvex??IӠh>̠{U>x?? BezierCurvex??IӠh>x?? BezierCurveIӠh>̠{U>x??Nwx?̠{U>x?? BezierCurveIӠh>x??Nwx?̠{U>x?? BezierCurveavt>?x?? BezierCurveIӠh>̠{U>avt>?IӠh>̠{U>x?? BezierCurveIӠh>avt>?IӠh>x?? BezierCurveNwx?̠{U>avt>?Nwx?̠{U>x?? BezierSurfavt>?IӠh>̠{U>avt>?x??IӠh>̠{U>x?? BezierSurfavt>?IӠh>avt>?x??IӠh>x?? BezierSurfIӠh>̠{U>avt>?Nwx?̠{U>avt>?IӠh>̠{U>x??Nwx?̠{U>x?? BezierSurfIӠh>avt>?Nwx?̠{U>avt>?IӠh>x??Nwx?̠{U>x?? BezierTriNwxNwxx??1{v!?Nwxx??Nwx1{v!?x?? BezierCurvev6?Y??IӠh>̠{U>v6?Y?? BezierCurvev6?Y??IӠh>v6?Y?? BezierCurveIӠh>̠{U>v6?Y??Nwx?̠{U>v6?Y?? BezierCurveIӠh>v6?Y??Nwx?̠{U>v6?Y?? BezierTriNwxNwxv6?Y??1{v!?Nwxv6?Y??Nwx1{v!?v6?Y?? BezierCurvex??v6?Y?? BezierCurveIӠh>̠{U>x??IӠh>̠{U>v6?Y?? BezierCurveIӠh>x??IӠh>v6?Y?? BezierCurveNwx?̠{U>x??Nwx?̠{U>v6?Y?? BezierSurfx??IӠh>̠{U>x??v6?Y??IӠh>̠{U>v6?Y?? BezierSurfx??IӠh>x??v6?Y??IӠh>v6?Y?? BezierSurfIӠh>̠{U>x??Nwx?̠{U>x??IӠh>̠{U>v6?Y??Nwx?̠{U>v6?Y?? BezierSurfIӠh>x??Nwx?̠{U>x??IӠh>v6?Y??Nwx?̠{U>v6?Y??PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3??贁N?K/?6i6?fOӗ^?RQ??m:m?"/??E{?p= ף?34y?X%?演cK?@ t?E ףp=?6*:?X%X?fe?t@ t?H ??(\?дo??Y\i?ƒ_,?2?zG?j?b/?RM,?K~?L|w[?333333?a?O贁N?IK1?j6i?e4}?Q??:m?'@H??`w?ףp= ?29۬?%X?6? t@ ?JޮD?)\(?LӅ4?EDDDDD?[-c?_,Œ_?k(?zGz?em|Ut?b/?#??K~?~( !??sXP?鴁N?2?6i??Q?i;?:m:?K* ?UUUUUU? ףp=?6*:?X%X?fe?t@ t?H ??(\?дo??Y\i?ƒ_,?2?zG?j?b/?RM,?K~?L|w[?333333?a?O贁N?IK1?j6i?e4}?Q??:m?'@H??`w?ףp= ?29۬?%X?6? t@ ?JޮD?)\(?LӅ4?EDDDDD?[-c?_,Œ_?k(?zGz?em|Ut?b/?#??K~?~( !??sXP?鴁N?2?6i??Q?i;?:m:?K* ?UUUUUU? ףp=?6*:?X%X?fe?t@ t?H ??(\?дo??Y\i?ƒ_,?2?zG?j?b/?RM,?K~?L|w[?333333?a?O贁N?IK1?j6i?e4}?Q??:m?'@H??`w?ףp= ?29۬?%X?6? t@ ?JޮD?)\(?LӅ4?EDDDDD?[-c?_,Œ_?k(?zGz?em|Ut?b/?#??K~?~( !??sXP?鴁N?2?6i??Q?i;?:m:?K* ?UUUUUU? ףp=?6*:?X%X?fe?t@ t?H ??(\?дo??Y\i?ƒ_,?2?zG?j?b/?RM,?K~?L|w[?333333?a?O贁N?IK1?j6i?e4}?Q??:m?'@H??`w?ףp= ?29۬?%X?6? t@ ?JޮD?)\(?LӅ4?EDDDDD?[-c?_,Œ_?k(?zGz?em|Ut?b/?#??K~?~( !??sXP?鴁N?2?6i??Q?i;?:m:?K* ?UUUUUU? ףp=?6*:?X%X?fe?t@ t?H ??(\?дo??Y\i?ƒ_,?2?zG?j?b/?RM,?K~?L|w[?333333?a?O贁N?IK1?j6i?e4}?Q??:m?'@H??`w?ףp= ?29۬?%X?6? t@ ?JޮD?)\(?LӅ4?EDDDDD?[-c?_,Œ_?k(?zGz?em|Ut?b/?#??K~?~( !??sXP?鴁N?2?6i??Q?i;?:m:?K* ?UUUUUU? ףp=?6*:?X%X?fe?t@ t?H ??(\?дo??Y\i?ƒ_,?2?zG?j?b/?RM,?K~?L|w[?333333?a?O贁N?IK1?j6i?e4}?Q??:m?'@H??`w?ףp= ?29۬?%X?6? t@ ?JޮD?)\(?LӅ4?EDDDDD?[-c?_,Œ_?k(?zGz?em|Ut?b/?#??K~?~( !??sXP?鴁N?2?6i??Q?i;?:m:?K* ?UUUUUU?5?ϓZ??r]? y ?۶?EWc?ɟȆ?8?e?7۬?.t?p ?g)?eu?(!"7?u6{u?(K E?mZc?j,5S?=R?魟yb?VSA?euwr?1?ō߂?>ݯ!?>yv?jrݨ?nOl$ݤ?([>?uZk?QW?ԁ??#?r2K? ?k?d[?§j ?0w?br?l?]B(?Ȫ?JS;?`L?RO?Jmu?V%d?Op?Vjx?EnW??U?,b"?MQҁ?ݠ7?#pe"|?]l(?*$x?b.?.,ft?y%f?Np?|(?b,n?U{?0&l?VAJ.?'Oj?tث-A?fui?UUUUUU?;i?PolChain3VUUUUU?%(?oU?Ƕ?M|iqW?@%(v?jZ?Dز?w^?j?ec?Jb?;_Jj?e@?:?3r?v?FOE{?c??V5(?=8??_f?ia̞??σn?2.$tb?&=N-F?_~Z?|j?'?9?$s??mq?닮0Ǧ?? ?qP?;j!??QoY?] :?4?ϢمS??~$? P(BDn?mD?Q<@?S?XjNo?|&nY%?[??*?^:?^e[c?+;?}_C?|B'?zQ%?ܞHI?P|"?m?r&??B?Fh?d2?c??6ş?ON?a&?i3(?ss?໚0P?6U_?w?L?ZI?<;?'ӭJ?3PD+?@N?V??<@z?WhEB?:3?Ako k?ED(?P “?UI?CR]?]X,?(K?$?P ?>Y?"i!4?a M?@\?Ms?W[ԃ?0??Uw7?PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3?W撋F?7b?6c<'?&ȫ? Q;?@N5?U3 O?;?*ac?N߱?15w?ϝ/%?7m?홍?NϿۺ?#'좽?͚2?M_?3x??I'?ϴ0uf? 91?:?v?J/??X;?ϓZ?-?r]?A?۶?~)U?ɟȆ?}9h?e?,}߱{?.t?!ɵ?g)? gf?(!"7?4t?(K E?={?i,5S?lnj?魟yb?vZü?euwr?ri?ō߂?Hg?>yv?B9?nOl$ݤ?{$?uZk?Կy2?ԁ????r2K? t L?k?F+X?§j ?d?br?`1(n?]B(?ȊNx?JS;?#lTA?RO?`D?V%d?$֦?Vjx?ۆk5??,LϠ?,b"?]{?ޠ7?\?]l(?Z?b.?۝v?y%f?\5R?|(?'jV`?V{?f?VAJ.?}3(ӽ?sث-A?e~?UUUUUU?=6?PolChain3?"{l}?W[ԃ?`T}?@\?fP{?"i!4?\#x?P ?L t?(K?tkxo?CR]?;ah?P “?}Ca?Ako k?W?WhEB?uM??YA??N? oj4?&ӭJ? IM%?ZI?pC?w?Fب,?Ớ0P?ȑ?i3(?PbP?ON?7%0*??bWT?d2?*??B?^-?m?F'd?ܞHI?ᓱH?|B'?fs+?+;?p ?]:??[??+촆y?XjNo?r?P<@?xx}?P(BDn?j"f?ϢمS?BA?] :?Ak+?;j!?tYc?? ?'r"?mq?i R?$s?t5<?'?Q[?_~Z?wB3?3.$tb?,\ ?ia̞?sb?<8??Nγ??g?FOE{?5eR-h?3r?u??;_Jj?f3 o?ec?bNj? w^?U~2?jZ?TgA?N|iqW?t#?v?oU?mxfcO?VUUUUU?%(?PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3?{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???? BSplineCurve/wZ?Nwj?qt? xz?Ĺ ?v'?V@t?{]xΊ?Ts~G(?R ?'ym?@|?O]LǕ?B9t?|HG!? LxΚ?~`{?EnH(? ,/՟?R ?I5x?,DFm?gD?͔? AxN?}ǥ?vI6?%t?K?N\!?tet?e?i ?K?H,?;?Ip=?;m?`N? X?._?ZD?ܼp}r?Mn1?mх?e?{ܙ?\ ?\?I.??=:?ֺus?ϦV?Ȭ?j?T?E?p]T?;K۳?st7?7(?kbP?ai?Pwh?&:?axR?iڊ?#?A?T?_L|?8?#ԍv?Zh? q? ?Z*n?ZCj?O Չk?2F:?ޏi?ÐdL?M}i?VUUUUU?;i?PolChain3?{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???? BSplineCurve/wZ?Nwj?qt? xz?Ĺ ?w'?V@t?{]xΊ?Js~G(?ޑR ?ym?[|?N]LǕ?B9t?{HG!? LxΚ?~`{?BnH(? ,/՟?R ?B5x?*DFm?gD?֔? AxN?}ǥ?vI6?%t?K?N\!?tet?i ?րrm?H,?2ܣ?Kp=?& ?`N?4?._??ݼp}r?~w-?mх?A ?{ܙ?pH?\?_ ,??$ܴ?*$x? r%?#pe"|?HŇ ?NQҁ?Ÿ?U? T@2?EnW?SF?Op?YZ?Imu?_Vn?`L?Lg?Ȫ?H8?l?@?0w???e[?!8x_? ? (k ?#?5P> ?QW?=[>?)[>?m(14 ?irݨ?'?>ݯ!?D53 8?1? 1G?VSA?A~uV?=R?_e?nZc?s?u6{u?Bٽ?eu?{6ԣ?p ?F ?7۬? #?8??EWc?7M? y ?#O??`zk?Q>5?p?'#?y5D?A[7??/K?^J?+`?˂?1mvt??\e;҈? z?2?])?y%cX?'o? fs?i[u?T"Fl??w;?rH?sic??U撋F?PolChain3?Vw7?m?0?R?Ms?23_ ?a M?U\WPH?>Y?c, p?$?f?]X,?|K?UI?J?FD(??:3?qa;?<@z?Ld?V?-: ?3PD+?e `?<;?n?L?u$?6U_?i!p,?ss?@S?a&?u7Ry?6ş?Bp"?c?Q?Fh?kb}@?r&?w| ?P|"?Pbh.?zQ%?+9O?}_C?jfp?]e[c?b?*??|&nY%?E?S?G-?mD?^{?>~$?lG?4?@q3??QoY?GJ?qP?Q_?싮0Ǧ?o0s??F-?9?f?|j?!'1?'=N-F?j?@σn?7?_f?ԕ?V5(?}?c?}!:x5?v?x ?e@?:?R7?Jb?L??j?\n?Dز??@%(v?Ωr?Ƕ??%(?PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3?{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???? BSplineCurve/wZ?Twj?qt?X xz? ?v'?V@t?{]xΊ?Xs~G(?ڑR ?ym?W|?C]LǕ?B9t?cHG!? LxΚ?~~`{?:nH(?,/՟?R ?C5x?,DFm?gD?Ԕ?AxN?}ǥ?vI6? t?K?P\!?net?HZ?ai?66s?7(?<&MV?8K۳?V?E??g?47?ϦV?š֥?=:?(N?I.?.?\ ?=$?e?9,8?Mn1?{J?ZD?I\? X?b:㲔m?;m? b}?;?%lA?K?B^P?=}?/D? ۟?nc ?n"“E?}_s?>e?N2?Y?N?M'?@?Z? r%?\?HŇ ?^{?Ÿ?,LϠ? T@2?ۆk5?SF?$֦?YZ?aD?_Vn?#lTA?Lg?ȊNx?H8?`1(n?@?d???F+X?!8x_? t L? (k ???5P> ?Կy2?=[>?{$?m(14 ?A9?'?Hg?D53 8?ri? 1G?vZü?B~uV?mnj?_e?<{?s?5t?Bٽ? gf?{6ԣ? ɵ?F ?,}߱{? #?}9h??~)U?7M?A?$O?-?`zk?Y;?p?v?y5D? 91??I'?^J?3x?˂?͚2??NϿۺ? z?7m?])?15w?&o?*ac?i[u?V3 O?? Q;?rH?7c<'??U撋F?PolChain3?%(?ϩr?mxfcO??t#?v?[n?TgA?M??T~2?R7?cNj?x ?f3 o?|!:x5?u??}?5eR-h?ԕ?g?7?Nγ?j?sb?"'1?.\ ?f?wB3?F-?Q[?o0s?t5<?P_?j R?GJ?'r"?@q3?uYc?lG?Ak+?_{?BA?G-?j"f?E?yx}??r?b?+촆y?jfp??*9O?p ?Pbh.?fs+?x| ?ᓱH?kb}@?F'd?Q?^-?Bp"?*?u7Ry?bWT?@S?7%0*?j!p,?QbP?u$?Ǒ?n?Eب,?e `?pC?-: ? IM%?Ld? oj4?qa;?YA??uM?J?W?|K?|Ca?g?;ah?b, p?tkxo?T\WPH?M t?23_ ?[#x?R?fP{?m?`T}??"{l}?PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3?{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???? BSplineCurve/wZ?wj?qt? xz? ?/w'?V@t?{]xΊ?s~G(?ߑR ?ym?d|?l]LǕ?B9t?yHG!? LxΚ?~`{?PnH(? ,/՟?R ?Z5x?,DFm?gD?ה?AxN?}ǥ?vI6?t?K?`\!?wet?s?Y3A??>HZ??#?66s?d?<&MV?nAt?V?mz h??D~Z?47? ~ L?ơ֥?"ܴ ףp=? ףp=? ףp=? ףp=? ףp=? ףp=?%p;6??i&?äy2?}W?ʯN ?[Y ?)ה?Pߡ?LJn0?D>?FdV?C?v)?_V??K oi?VRz?E"m}?-T?*4H?Fd?MO?n?>z?n?Y?$,7?;GO?sl? :x?70?4 ?wVڐ?}Z6?A^G?L3?$\?z&G?P?}[?HLs? fo?Rm?֫?{5z?-??M$)~??!{l}?PolChain3?[-c?u?WaL??Y.j5?0^?<?.B@?$E?g x??tZ$?#,?pM?QRߪ?w!? c]?p:??w??%?y+s?r:&?2Z?NEn?|EoB??aV{<*?l?˵3?U#p|? 3`?u?+?$&ͽ?X?y ?U?mGꎴ?8X"?ri?|.2?'4ч?o~(B?.6r?&;?| ?_$+O?RH?[gc?&7?~R_w?4?U{?%Cz ? ó?CCe?Rg?x4}A?!4]?86?ԿƇ?tdt!?0r ?% ʻ$?_vw?nlg,?k?L4?t-?$`?FdV?C?]l?_V?6[x?K oi?Fij?E"m}?8(?*4H?xR硇?MO?*K-5?>z? i21?Y?/mJ{?;GO?L? :x?a?4 ?BS??}Z6?}?L3?/B ?3L?BE?'( l?#?yVT??w?1T ;?W)? ?fU?$? h%?B5.v??B3o?u'>!?HU?IQ*?$85?%5 ?c?J?U? лV?^tg?~rd?$c?ܓur?+2F5/?ޝUYyP?A(X?B ?Eq?Dks%? $`Ԋ?5l??aq?^JhZ?/q?Hu?`?M܏?7"A<~?ڹ?cXu}??!{l}?PolChain3?{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???? BSplineCurve/wZ?wj?qt? xz? ? w'?V@t?{]xΊ?s~G(?R ?!ym?V|?m]LǕ?B9t?HG!? LxΚ?~`{?_nH(?,/՟?R ?\5x?.DFm?gD??AxN?}ǥ?vI6?$t?K?b\!?vet?;?Ad_? ?2Vĭ?$?n?@5.v??u'>!?i?KQ*?.j?%3?Y -? V>?BtmF?c?J?^? лV?3v?~rd?;uU?ݓur?(g?ޝUYs?sl?_X?$,7?krڛ?n?R[?n?, ?Fd?2?-T? K杍?WRz??XX???v)?vʹ$?D>?a+~^7?Pߡ?uI?\Y ?"[?}W?}^l?i&?k:r }?>%p;6?Ob?E9E?R`?<^V?XH?I8f?״ߺ?<x??-‰?.=?KRٛ??ы)? Q?uJ?E;!?7`*7y?;iB?$IG7?J,#?9mF?D՝P?x0l5?)¯+?R!?$f2#?N)?]7?0Kϊ0?hK?c37?:i_??=?لZt? ]B?2?frF??0bJ?K3kf?~Mq N? ?}.uP?@? R?Ҳ?AKG7T?&?=*ȝU?O|!?VUUUUU?%(?PolChain3?(N0?t//?P)=+0?rd?-@2?΄ZRl?b3?3igc+?ѽ#6??`?dB ?/q?|?^q?D/? $`Ԋ?pmhJ?Eq?Bd?@(X?j)}?—/!?/?J ?7?$x?FR?? n?n{?`"?[ZQ?,K(??SA^s?U?)E&?۵9?+s?L?`X?/mJ{?krڛ? i21?R[?*K-5?, ?xR硇?2?8(? K杍?Fij??XX?6[x??]l?vʹ$??`?`+~^7?T?uI?fKF?"[?\d8?}^l?E**?k:r }?t?Pb?PD ?R`?j\N?XH?@?״ߺ?H??ǁX?.=?`M,A?@ы)?vH!ɢ?uJ?k?7`*7y??z|?$IG7? ma pi?9mF?ĭ)U?y0l5?,כA?R!?t-?N)?k?0Kϊ0?_vw?c37?0r ??=?ԿƇ? ]B?!4]?frF?Rg?1bJ?ó?~Mq N?U{?}.uP?R_w? R?[gc?AKG7T?`$+O?=*ȝU?I>;?VUUUUU?%(?PolChain3?[-c?}#?){??+?k:?|?jWY?es?1!Z?nCT?ul?=3?KG?]@c4 ?֍6~?I?dB ?.?|?ڂ?D/?`'E?pmhJ?XS̼?Bd?q?f)}??3?~0?7?.@j?JR??N/k?n{?l?[ZQ?@mT|?;SA^s?.n?(E&?wLP`?+uU?:Kq?3v?Ƹ` ?^?FӴ?AtmF?4Wԇ!?Y -? jM+?-j?-4?f?O ';??U1QPB?n?`macH?2Vĭ?^M?Ad_?P?wx?1agS?y ^?T?Z4t[C?xLUU?n^}1?UUUUUU?%(?PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???PolChain3{Gz?{Gz?Q?{Gz??Q?Q?{Gz? ףp= ??)\(?Q?p= ף?Q?333333?{Gz?(\? ףp= ?RQ??zG?)\(?q= ףp?Q??p= ף?HzG?Q?(\?333333?ףp= ?{Gz?Q?(\?ffffff? ףp= ?Gz?RQ?(\??= ףp=?zG?Q?)\(??q= ףp?Gz?Q?\(\??PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???PolChain3??{Gz??{Gz??Q??{Gz????Q??Q??{Gz?? ףp= ????)\(??Q??p= ף??Q??333333??{Gz??(\?? ףp= ??RQ????zG??)\(??q= ףp??Q????p= ף??HzG??Q??(\??333333??ףp= ??{Gz??Q??(\??ffffff?? ףp= ??Gz??RQ??(\????= ףp=??zG??Q??)\(????q= ףp??Gz??Q??\(\???xwxsrcom.femlab.mesh.Mesh_q Lversionq~xpwq~wePuq~.Mesh7ư>Tqs*>avt>x?v6?Y?IӠh> u>Tqs*>IӠh> u>avt>IӠh> %Ѳ>Tqs*>IӠh> %Ѳ>avt>IӠh>Pba>Tqs*>IӠh>Pba>avt>IӠh>̠{U>IӠh>̠{U>ư>IӠh>̠{U>Tqs*>IӠh>̠{U>avt>IӠh>̠{U>x?IӠh>̠{U>v6?Y?Nwx> u>Tqs*>Nwx> u>avt>Nwx> u>Tqs*>Nwx> u>avt>IӠh>IӠh>ư>IӠh>Tqs*>IӠh>avt>IӠh>x?IӠh>v6?Y?IӠh>qLU>Tqs*>IӠh>qLU>avt>IӠh>?(>Tqs*>IӠh>?(>avt>d? u>Tqs*>d? u>avt>Nwx?̠{U>Nwx?̠{U>ư>Nwx?̠{U>Tqs*>Nwx?̠{U>avt>Nwx?̠{U>x?Nwx?̠{U>v6?Y?f,t>SF+>vf> 0_">6><>ՙkU>\Gy0E>Qnu?>s+YN>ZOPM>g.>?g,>fl>H>Lf>)6>3{U>:su?>:M>Ag,> f">c>ư>d."'>CK>ư>q[^>y<"3>ư>Z|>L}8>ư>Pw> }o>ư>[> <>ư>J~tui&>4 >ư>Ds>U5F>ư>SQ>ư>΅:V>ư>nKJן>ư> >ư>1>ư>Jԙ>ư>O,>ư>ר\>ư>r]xU>Lp>Uqs*>/>1|>Tqs*>Ed4>$Ed>Uqs*>H>Ϭ>Uqs*>h:g>"G;T>Tqs*>>i>Tqs*>Ce>?#>Uqs*>n/W>~_W>Sqs*>n(><6~4>Tqs*>ѯI>Tqs*>p>Vqs*>YĔ5>Sqs*>T(>Rqs*>ͪi>Rqs*>vy>Rqs*>%"Lމ>Sqs*>$>Tqs*>ֿcYj>Tqs*> Jy>Ӊ> G=>gw>L<>m>avt>W>]G>avt>fRC>K=(>avt>\BS>B#>avt>2)!> >avt>t@㩬>]q>avt>]eR>w;ɝ>avt>FY>Da>avt>v >avt>QQ>avt>3+[A>avt>e1EΧ>avt>>avt>+=>avt>/T>avt>6[X>avt> "Eȼ ?U1?IӠh>ˠ{U>y?Sh>v?IӠh>ˠ{U>v6?Y?Sh>v6?Y?C<">UG>Uqs*>pP: >Lpx >Vqs*>$ܵ9>NK>Sqs*>7y>2>Vqs*>YP%*F'>7>avt>|\>*r>5>avt>#{$*F'>ULn>avt>|\>+\t>avt>^~W>[>Sqs*>rp>U%>Uqs*>)'>〆.M)>avt>;G>6?)N>avt>M>Dt>Qqs*>u<>Wa>>Tqs*>I'>=hXʖ>avt>G>Uc >avt>$~>Π{U>9yl>̠{U>+˜z>ˠ{U>qI>ˠ{U>tGD?ʠ{U>{{ HC?ˠ{U>F/?̠{U>}D;*>̠{U>ư> &>̠{U>ư>Y:v7>ˠ{U>ư>SY+>ɠ{U>ư>Ѽ"?ʠ{U>ư>hFa?ˠ{U>ư> O?̠{U>ư>^^X?͠{U>ư>gj>̠{U>Sqs*> >̠{U>Uqs*>u;`>̠{U>Sqs*>d%>Ƞ{U>Oqs*>{LӉ>ʠ{U>Rqs*>N5?̠{U>Tqs*>r0?ˠ{U>Sqs*>9?͠{U>Uqs*>.S?ˠ{U>Tqs*>IӠh>ˠ{U> Jy>IӠh>ɠ{U>Ӊ>IӠh>̠{U> G=>Ѫ`'>̠{U>avt>17 pT>Π{U>avt>qi>ɠ{U>avt>s<ڱ>ɠ{U>avt>H5TV5?ˠ{U>avt>&B\ ?ˠ{U>avt>}/?̠{U>avt>p?̠{U>avt>IӠh>ˠ{U>"Eȼ ?IӠh>Π{U>U1?rbfh>ˠ{U>w?rbfh>ˠ{U>v6?Y? S>X_f>Sqs*>PT2>Ǵv>Uqs*>n4`>fsm*D>Tqs*>~f>= 7>Sqs*>S~>hG>avt>5> Z>avt>8t~>LPG>avt>>*G.>avt>ʝu?|` >hm<?W`>m ?J(0>yh?&M> ?5m<>V^U?c2>>,?`x >7>e>>ư>m?,C>ư> 't ?_XD_;>ư> D?$w6>q>ư>%Ӟz?1!n>ư>8O\?P5 >ư>ym=?skp>ư> 7? *>ư>ޭ>iu0>Wqs*>"Xk?]ww8>Tqs*>D]_?Rqw`>Tqs*>?uMIL1?)e>Tqs*>Jc< ?a=!>Tqs*>ZL?zA43>Vqs*>D6?5"Z>Uqs*>Xq?">Tqs*>9l|'?7y;>Tqs*>IӠh>YJy>IӠh>Ӊ>IӠh>G=>I8e>({p3>avt>9{f?oV"=>avt>?x>avt>4䶓?ڔH>avt>.麁?2>avt>Ke4m?he‹>avt>JM?r >avt>&kW?>avt>IӠh>+Eȼ ?IӠh>U1?d?̠{U>x?d?̠{U>v6?Y?7 ^?I>Tqs*><8Z?>>Uqs*>(?2V>avt>m-L?[>avt>;ǭ ??f-7>Rqs*>UCl?ב"L>Vqs*>?"r0>avt>-L? P>avt>Nwx?ˠ{U>e`>Nwx?̠{U>Yh>Nwx?Π{U>J_%%>Nwx?ˠ{U>|ZH ?Nwx?Π{U>͕m3?@}>;n>$&8> ;n>;s>@݌lz>U">:n>H>5>&x,_>^>E1:>7??as>6Ħh>"z>KZ4N>F~|z>Pb`>E1:>. ?B| >ۺ>,uP>@)|P>xy^Z>aAO>Phc_>.h>@>קx`>q >lq>E1:>k.b>L>%?У?#TL>v!)>wV&>;n>1?q[}>d"L>0_">li0&? T D>>:n>@W{>H*Y>;0>@>>w >z4">9n?|N)>$W>p!uU?> <*|>E1:>>_?I>n>[K>j2>jF>B d>'u-1j>ư>,"Iw>'u-1j>ư>t7>e >ư>`.>'u-1j>ư>K>^nQ>ư>׍>~+K+>ư>0{N>@6>ư>l.?0>ư>(>&>ư>sYd>Ѽe>ư>h%+>UICL>>ư> qň>@6>ư> ]jm?W(V7V>ư>YmƔT>V=>ư>)(F>MNg>ư>>'u-1j>ư>P8L >[E,a>ư>A>'u-1j>ư>iyN>Dwj,>ư>2>SD>ư>᮳?{N>ư>&W3>Bmm>ư>_h>uڋ>ư>ͫ>tE>ư>k?X(V7V>ư>ѣ7>LǪd>ư>l.>Zr">ư>T_ Rp>9mv>ư>[o5uP>M_I>ư>%\>'u-1j>ư>@O#X>ot>ư>08_> c>ư>yD>X 6h>ư> w>$S}@>ư> &>Hl>ư>LkaP?AwD>ư>Ll>LRL>ư>|=>+@>ư>H?3tq>ư>!k> Տ̒>ư>w|^t?#˟>ư>ɨs>CK>ư>m>ͮ{l>ư>ߕz>vF>ư> WR>V`b>ư>&צ/>O@>ư>ue?Ic>ư>uHd?g'>ư>\E4D? >ư>1B>Yft>ư>+>UI~>ư>88iٖ>H(>ư>DAӞ>?2>ư>fZ>\>ư>$@>Xl>ư>e/>2+>ư>I7>{p$->ư>k >Ѱ>ư>;tBV>$ܽe>ư>Ͼߚ>+C"e>ư>$Mw>SD>ư>8~>qa>ư>ʕ]g>+ G>ư>J#b>\r>ư> +>iOR>ư>Lj> c>ư> u>|?2>ư>)z:Y>G>ư> Lܛ?Vφ9>ư>ϴ<>9j>ư>~s!>Xu>ư>Ojo*>5݇@>ư>Ȏ>Ĕ*>ư>pK@>@6>ư> mC9n>UhDB>ư>U7W1>Tf8>ư>O>&I?め>ư>>V ?め>ư>a@p?vr>ư>:{x> c>ư>CL>(U?L>ư>l4o>ǘ>ư>Wl>r%"s>ư>r`>,go=>Tqs*>TS`J>>Tqs*>>=/H 8>Tqs*>MZ0>g[|>Tqs*>jJ>rצ>Tqs*> ktD>Xu>Tqs*>,K?Z)>Tqs*>9'>XG>Tqs*>'4\>U%>Tqs*>C!B>t]S>Tqs*>b|>RTqs*>k7>y> 5hՄ>Tqs*>ݳ>1>Vqs*>"mt?!f>Tqs*>ع>ΐX>Tqs*>K>'>*׉"(>Tqs*> e6Z>@|>Tqs*>tj?ᄞO>Uqs*>dH> e>Tqs*>Y4O>3 P>Sqs*>㨤>7>Tqs*>Ѫ>,׉"(>Tqs*>]Ϙ>=4>Vqs*>Zu>->Tqs*>۬X*?tG >Tqs*>YS>XŪ>Tqs*>P>M0>Sqs*>U,]>X+ XC>Tqs*>>)>Uqs*>rso>, {>Tqs*> Bϲl?MVRKz>Tqs*>-D>>$->Tqs*>/$,\>ϺƢ>Uqs*>|Z>0go=>Tqs*>IӠh>̠{U>޶{K\>IӠh>̠{U> &g?ĉ~>9(>$->ĉ~>9(>xMWQ>ĉ~>9(>Tھ>8熮3>VC>>Q6>S>_NU> >ĉ~>9(>CVg>*әb>p8J>\`JH>EkJ[>JT>(HC>Qp>M?s>ұ> <.d?>ܯ>a7r>ɩY>X8>!b >IӠh>{K\>[h> &g?!>$->!>HMWQ>!>oVھ>zSa3>0>n R>h >!>Vg>خ c>n`JH>rx[>zHC>g'> P>]U>@ұ>SpG=>Tf7r>ɹZ>z >‡>f6>avt>.)r >>avt>4|j>itG>avt>9Ch>/>avt>T9r>uehB>avt>>gQ >avt>^>>XG>avt>?H'>avt>3k.'?]>avt>:(P>7>avt>U1>>avt> ;>@?)N>avt>[?F2]8>avt>Z >* +>avt>< =>. >avt>4A>nn>avt>= E>Iay>avt>;>f6>avt> /[O>Tn4w>avt>ΔJ>ş6m>avt>~L?>0*v>avt>eY>p*o>>avt>IӠh>Π{U>z+N?IӠh>ˠ{U>BS\z ?IӠh>ˠ{U>PJ)?Nwx>\C>AS\z ?Nwx>\C>RJ)?IӠh> +N?Sh>@S\z ?Sh>NJ)?|z>X\z ?|z>ߌJ)?l0Hz>ˠ{U>x?l0Hz>ˠ{U>v6?Y?*Dg>C(>Tqs*> N>:C>Tqs*>Kn?>VF(A>Tqs*>r@r >`>Tqs*>z>`>Tqs*>qr$>N9>Sqs*>=">o78*>Tqs*>Kja>l v>Tqs*>zb>$%>Tqs*>sjn>#>Tqs*>m>k>Tqs*>>N"' >Tqs*>D)i> q>Sqs*>qZkk>F>Tqs*>J$ _>9SNp3>Tqs*>m p>tk>Tqs*>3 >>>Tqs*>^ :>tZaF~>Tqs*>Z\> IJ:7>Tqs*>e>\y >avt>%|>->avt>*|>U P>avt>q;g>R*>avt>q;g>@7e)>avt>r>H݄ث>avt>@>A>>avt>Ǜ}>٫MQ>avt>IӠh>̠{U>ph>̠{U>e!d?7s֠?̠{U>">QF:>̠{U>-ւK>u>̠{U>Uk>u?̠{U>⌥*f>(G7o>̠{U>Cƈ>u>̠{U> ǽd>cۗW?̠{U>!9<>ph>̠{U> (:>E-$?̠{U>=݃>,N>̠{U>m>qP?̠{U>BnB>IӠh>̠{U>EN?xw>ˠ{U>@S\z ?xw>̠{U>PJ)?,(d?̠{U>x ?,(d?̠{U>8j?@W >J$2 >Sqs*>Xb>!p k>Tqs*>y|?cQb+>Tqs*>6w>3h>Tqs*>d_pb?_HF>Tqs*>gkש>TM>Tqs*>>䞲L>Uqs*>m)+>'d^>Tqs*>+?X>Tqs*><94V?l\>Tqs*>̤$;?Ԑ#6>Uqs*>a0>҄Bb>Tqs*>V>\>Uqs*>G'>>Tqs*>}8>Yy(>Tqs*>`>ҹ>Uqs*>y>N_>Tqs*>+&$?R:[1>Tqs*>sq;g>R=>avt>SK?F \>avt>`+K?nVˬo>avt>#}"g>&b>avt>&}"g>e[>avt>3x>֚@Qad>avt>F>CNQ>avt>ʈ4>%s'p>avt>d?Ϡ{U>яd?Ϡ{U>1!d?2}\?5T_C>ƈ">Ncu?5T_C>#.ւK>[fU?5T_C>v>z}B?=>x*f> >?Zt>ƈ>[fU?5T_C>Aǽd>H?(@>5!9<>QQ? <[%>):>V)?iS 6Zy> >݃>0W_?r>m>]c?hH>nB>d?Ϡ{U>:HN?1{v?Ϡ{U>X\z ?2{v?Ϡ{U>ጇJ)?B?\C>x ?B?\C>8j?瞙#>HWe>h㈵>ܧ??G+J>.´>4ö́?^G̍><M>+ @|?K>ꄪ>s/o>ؾs+>h㈵>A4>0٫>aI*]>~4U>pP>0u֌.>: h<>bϗ>Ţs6>S3<=V>Mj>O f>[wya>'6x>b>n\>>>>sC> }>l>6cg>2X!>xug>؎ǝ6>#? U>MX>V>#86?>ڵ&s7>U >;0]BE>Ջ X>suq 0>@2>*z>t?F$>:x^> \3>vȽ>E$Z4>b$>>Jr~>zރ*>qRd>ɀ->s8_>#+>DCZ> _^>*à\| >vu >Sǟ>CW>l>R>:dJ>pQ>wv>3a>ep1>(y>>Pj>2>42|+>E>"醥?|=j>O} >ǘ+>9tP>K@q>B|i?- w>OO>G_? H >˩#>s?>(O9>>X##J>ĖJf>|>#Ntb>nP>ۆM>ߣO~>C0U>+[洭>Nwx>Π{U>~U1?vtx(  !"#$%&'(  !"#$%&'edg(())**++,,--.. //00112233445566778899::;;<<== >>??@@AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``aabbccddeeffgghhiijjkkllmmnnooppqqrrsstt uuvv wwxx  yyzz {{|| }}~~  "  #$%&'"#$%&' ! ! !"##$$%%&&'ư>F t>F t>ռf>ռf>R=6>R=6>skU>skU>#Vu?>#Vu?> ,3M> ,3M>?g,>?g,>ܸ#Ӡh>H>H>Lf>Lf>)6>)6>6{U>6{U>:su?>:su?>:M>:M>Ag,>Ag,>IӠh>Ơ>&.I">&.I">"'>"'>eY[^>eY[^>8|>8|>\ w>\ w>VA>VA>KVui&>KVui&>ys>ys>ܸ#Ӡh>SQ>SQ>΅:V>΅:V>nKJן>nKJן> > >1>1>Lԙ>Lԙ>O,>O,>ר\>ר\>IӠh>`eG|>9RCxU>9RCxU>l/>l/> d4> d4>O>O>:g>:g>֛>֛>(e>(e>LW>LW>ag>ag>ܸ#Ӡh>ѯI>ѯI>p>p>YĔ5>YĔ5>T(>T(>ͪi>ͪi>vy>vy>%"Lމ>%"Lމ>$>$>ֿcYj>ֿcYj>IӠh>M{>M{>ߕ:Z>ߕ:Z>>>h㈵?}dw>}dw>UW>UW>RC>RC>!S>!S>d5)!>d5)!>Fɩ>Fɩ>ʳ>eR>ʳ>eR>+)7>+)7>ܸ#Ӡh>v >v >RQ>RQ>3+[A>3+[A>h1EΧ>h1EΧ>>>+=>+=>/T>/T>6[X>6[X>IӠh>LvJ>LvJ>Ol>Ol>h㈵?ܸ#Ӡh>ܸ#Ӡh>ܸ#Ӡh>Sh>Sh>IӠh>ܸ#Ӡh>ܸ#Ӡh>ܸ#Ӡh>Sh>Sh>IӠh>`eG|>3[>3[>%8Ld/>%8Ld/>'[>Tż>Tż>>>'[>tɆ!>tɆ!>>>'[>q†!>q†!>﫣>﫣>'[>`eG|>]>]>Jx >Jx >'[>:zv >:zv >j`7>j`7>'[>`eG|>3Q>3Q>zb͠>zb͠>'[>|v >|v >{b7>{b7>'[>ư>%+"AN>%+"AN>OS@>OS@>U>U>$#à>$#à>%RU>%RU>Э?R>Э?R>R=*>R=*>IӠh>Ơ>)>>)>>"'~B>"'~B>"+>"+>hs>hs>[}>[}>Y/s>Y/s>h\5#>h\5#>;m|>;m|>IӠh>`eG|>DH>DH>W\^)>W\^)>+-= V>+-= V>;~>;~>iO >iO >Siس>Siس>6>6>|7#>|7#>;~mW>;~mW>IӠh>M{>M{>ߕ:Z>ߕ:Z>>>h㈵?K\$>K\$>_]~>_]~>S.1j>S.1j>Yj>Yj>H\6>H\6>h>h>,f>,f>%>%>IӠh>CvJ>CvJ>ĖOl>ĖOl>h㈵?Ufzh>Ufzh>IӠh>Ufzh>Ufzh>IӠh>`eG|>`eG|>G>G>VU6>VU6>'[>")>")>]d9>]d9>'[>n!>n!>k﫣>k﫣>'[>~Ȇ!>~Ȇ!>mM>mM>'[>ư>H~AN>H~AN>)@>)@>E75>E75>%à>%à>o%RU>o%RU>+Ӱ?R>+Ӱ?R>ʅ=*>ʅ=*>۸#Ӡh>Ơ>*ΰ`>*ΰ`>o.cg>o.cg>DS>DS><><>u>u>b>b>U2(&>U2(&>l&}>l&}>۸#Ӡh>`eG|>y%ٷ>y%ٷ>X+_1>X+_1>;V[>;V[>&>&>J _>J _>ԉ>ԉ> ,> ,>1mj>1mj>z >z >۸#Ӡh>1{>1{>;Z>;Z>>>h㈵?(>L,>(>L,>{C>{C>U9l>U9l>i>i>ٚ5>ٚ5>-/>-/>lxrVe>lxrVe>>>۸#Ӡh>/J>/J>FOl>FOl>h㈵?۸#Ӡh>۸#Ӡh>۸#Ӡh>۸#Ӡh>۸#Ӡh>۸#Ӡh>`eG|>匠M>匠M>l싊/>l싊/>'[>X~v >X~v >vc7>vc7>'[>`eG|>sj[>sj[> SZ> SZ>'[>R v >R v >`7>`7>'[>`eG|>ư>Ơ>`eG|>J>J>7PRJ/>7PRJ/>7(C>7(C>h㈵?CK]>CK]>X$l>X$l>h㈵?  !!!!!!!!!!""""#########$$$%%&&'()))***+++,,,-......../00000000012222222222333344444444455566778999:::;<<<===>?@ABBBBCCCtri<.=;-<6(6()76(7)*87)8*+98*9+,:9+:,-;:,;-.< =. =D5EC4D>/>/0?>/?01@?0@12A@1A23BA2B34CB3C45DE5E(/)(/0+(/121.-01-"45,+4.232-,,340*)) . +**355F NM=NL<M6F67GF6G78HG7H89IH8I9:JI9J:;KJ:K;<LK;L<=M= NOWVEWUDV>O>?PO>P?@QP?Q@ARQ@RABSRASBCTSBTCDUTCUDEVEW6>:9.< " *7606>0 +O%GAB$FM9+DYDY#$,2<;/5<X#-9A4FEC(' 798+ '@5/T '-U1/T72=N.EKCDC%=!B/T>?0?@P6'7*;"(1> ?<K EHAV,SU=N 8 ..<& O24# #C$#$ =D D ; ;-- : : +FM 4:MS (?" Q!N!>"Q!8%=# RBC$B$G#R#G+O@HP5U67( )()L)L**0?P+3 &,&,5T-5U%.% .//HP703199Y 2 2873+83 ,4,245-5 '6) 6 *7*7A B "89A19=<J<JDEICIX<X=E'@>? >(1?1?=@.EAB A 8B8!B;IECI:JD=J @E@=EF4F G G@AH&HVDI;I:JDJK<K)6L6LMW;W>N>!NHOH&O3P30P 8Q8"Q %R%GRLSLSSTST6U6UAV&V;:W:MWCXCXY9YFFG[NNbF[GH\[G\HI]\H]IJ^]I^JK_^J_KL`_K`LMa`LaMNbaMbOOPcWWjOcPQdcPdQRedQeRSfeRfSTgfSgTUhgThUVihUiVWjiVjRS}~m_FOjUVbz^$Wo~mlpOPjFOHI dyIsKJsMLdnGFjSTqfHfPQaRraQubV{TyiZoKstaqfJIsLKt~l }wTUs^zbcz[]_[czc`rkZ\^zctVW{Zb{ p\vegx``ggk`r`kr\eZ^btt yi\ZiNMh][h^plp_]q] wg`gkqaurquUbsyTs[_c_c ]dh[neeHGfPajgx xMdhd]heie\iafjfGjkk~ll_qmNnNhnoiopv^\p}mqmqrrzysbzstctQRuRruv\v}qwq]w xxLtydLynzn[zWo{oZ{YX~|X[]^^|}}bm}b|^~ab_`|~Z}m}\]~|ZYY|}}Z`~YX[[\^_`~~`aa\YXXcefcdjnjfijghZndeZYYZhYXcXfghfdhiiba|def vcd[c ]^_wx^w ev\[[c g{efv fggh{hiij]]\_^w`_xi% !!jjbaa`vu\ud{h|{!!u`xx b|lkmoolkmklmolknpplknklnpmmn&mnnoop'oppq rqur vqrvuqvtswstwxsw x txrsqtsr} z~ tt} ~}}yzyqrrz~qyys x uvv u{|| {{xwvxww yzyz{{z|z| y{~} }~~~}  "#" #$ #$%%&%&'&'&   !!!"#"#$#$%%    &%&                 '&'  &       !!! !]ui??o?{c$??| )@??K[Յ?]ui???gJKGOI??uk?gJKGOI??uk?{#s/?ATM;R??gJKGOI??uk?ATM;R??{#s/?5nWL`?­s??ATM;R??{#s/?­s??5nWL`?kLi?tL"7??­s??5nWL`?tL"7??kLi?}PA?bk??tL"7??kLi?bk??}PA?K[Յ?| )@??bk??}PA?| )@??K[Յ?o?]ui?????{c$??o??{c$??7sp??o?Gƽ4??~>ϭ??yՅ?7sp???#sH??^k?#sH??^k?@=Z?J=C3J??#sH??^k?J=C3J??@=Z?+ElL`? p??J=C3J??@=Z? p??+ElL`?M!z?yU8?? p??+ElL`?yU8??M!z?OPA?֨x??yU8??M!z?֨x??OPA?yՅ?~>ϭ??֨x??OPA?~>ϭ??yՅ?o?7sp?????Gƽ4??o??Gƽ4????zO???ʛ$??vO>?\+(???zO?J1?Ou?ʛ$??ů>}??J1?Ou?n^49? 媮1? j?#?{? N` ?NA?rhcQ?ȇ?^-Ƣ?r_}?Q:ޤ?2t&5?Z9 j?ȇ?^-Ƣ?\up?Ze?ȇ?^-Ƣ?T?qhcQ?\up?Ze???zO?ʛ$??J1?Ou? b??LZQ??2;?YIl?jvnf?YIl? b??2;?YIl?m{ڂ?+:A?FN?UQ!7A?|?,Y?t0Xe?l1?QKc?ZYz,r?|?,Y?ۯu??ŷ?@Z?q%WA?d'2?a4?ů>}?? b??jvnf?YIl?FN?UQ!7A?t0Xe?l1?|?,Y?T?qhcQ?NA?rhcQ?rnk?9W(?NA?rhcQ?*yN?㻳?2;?YIl?z#yT?O6? xg?!9Ѧ?? +??Ύ?6 ?Sד?T?qhcQ?rnk?9W(?߱&?8W(??6 ?Sד?"1N>?ŷ?mȺ?qP#K1?@Z?q%WA?@Z?q%WA?mȺ?qP#K1?H|N?gEk?QKc?ZYz,r?\%? ?` ?,i?QKc?ZYz,r?ȇ?^-Ƣ?\%? ?*yN?㻳?NA?rhcQ?r_}?Q:ޤ?ȇ?^-Ƣ?QKc?ZYz,r?r_}?Q:ޤ?t(?6 ?Sד?&8`?L-? j?#?n^49? 媮1?*yN?㻳?n^49? 媮1?{? N` ?Fߺ\?*(Sf?*yN?㻳?{? N` ?jvnf?YIl?*yN?㻳?Fߺ\?*(Sf?? +??e? ?,`?`?yAZ??,`?`?eLnh|?ɺ_X?rnk?9W(?/Bӎ,??߱&?8W(?@Z?q%WA?T?qhcQ?߱&?8W(?m{ڂ?+:A?|?,Y?T?%?Jh`g8K?QKc?ZYz,r?` ?,i?|?,Y?n^49? 媮1?r_}?Q:ޤ?t0Xe?l1?r_}?Q:ޤ?QKc?ZYz,r?t0Xe?l1?` ?,i?\%? ? 7wA?x:bEP?\%? ?]BT?v:bEP? 7wA?x:bEP? c?A33gۤ?2t&5?Z9 j?\up?Ze?\%? ?ȇ?^-Ƣ?2t&5?Z9 j?LZQ??oFNp??DQU?$?2;?YIl?LZQ??DQU?$?T?qhcQ?@Z?q%WA?\up?Ze?,`?`? c?A33gۤ?eLnh|?ɺ_X?yAZ??z#yT?O6?,`?`?z#yT?O6?? +??,`?`?FN?UQ!7A?&8`?L-?t0Xe?l1?&8`?L-?n^49? 媮1?t0Xe?l1?oFNp??/Bӎ,??rnk?9W(?NA?rhcQ?2;?YIl?DQU?$? c?A33gۤ?\up?Ze?H|N?gEk?\up?Ze?@Z?q%WA?H|N?gEk?ů>}??jvnf?YIl?J1?Ou?"/I?^P_?vO>?\+(?Fߺ\?*(Sf???ŷ?d'2?a4?@Z?q%WA?߱&?8W(?d'2?a4?vO>?\+(?J1?Ou?Fߺ\?*(Sf?J1?Ou?jvnf?YIl?Fߺ\?*(Sf?k1I?6 ?Sד? :?f ?p?6 ?Sד? c?A33gۤ?H|N?gEk?eLnh|?ɺ_X?H|N?gEk??vl?eLnh|?ɺ_X?QT%????d'2?a4?߱&?8W(?QT%??d'2?a4?` ?,i?,oϭ?nH,??M??֨x?nH,??~>ϭ?6sp???nH,??~>ϭ???6sp?Gƽ4?????@?xp~(?b [?DQ?@?xp~(?K%i?xp~(?sY?5WI?JG^?ϋ9?QWԚp?n?vB?N? Y?l:x?vk? ?g*IBZ?쵓?L?"Pd?Li?0C?8L?6L?.7 [ ?T!z?^LU4???A1:}?r??@?xp~(?b [?DQ?рF@?^|!C?n>?W`?4?W`?Iz ?_Y?4?W`?n>?W`?h)?B-,?@mQg'?։?]pp?>>?f?0a?Wv??dz?|VLN? ?fD)1?f?0a?ZeX{?;R_?!TW.?A2?u^\j? ؛qp2?>?>>?Wv??f?0a?Te?)L?Wv??Ʋ?1T?@mQg'?։?y??83?=?DQ?Z^"?!a{???9??K%i?xp~(?@?xp~(???K%i?xp~(?Y݇?ϊc?y??Z^"?!a{?`tC;?ST?y??Y݇?ϊc?vk? ?@h?|$k'S?Ry?!\?Bq??W?r??x0!?>쵓?੎u;?3?4?W`?h)?B-,?ʆ ?9?L?"Pd?8L?6L?@rQ?+'?OX?7*?tEc?kY?PEf?쵓?@h?|$k'S?vk? ?,萟?" Ը?m7 ?HN?^m#fF?4By?рF@?^|!C?^m#fF?4By?@?xp~(?рF@?^|!C?4?W`?੎u;?3? @]?`Y?RL"+?')?Ox?੎u;?3?h)?B-,?E ?xs?Ʋ?1T?pu?z?Ʋ?1T?83?=?DQ?pu?z??yV?Ed|?^-Y?-Y?|DmI?Ed|?^-Y?/\?쵓?2x?@ uR?h{N?MR uR?h{N?h{z??f??uR?6>ա?yV?8?9G?qա?:#P-?=A?i?.?P_?=nS ?i?.?o?Dui^?P_?=nS ?@mQg'?։?E ?xs? /yP?g#f0?Li?0C?]ppա?f??yV?8?uR?6>ա?}?dP_?.?2U?> uR?h{N??0_g?jA.?]JG\?> uR?h{N?Dl?prf?~o "?]#,p? /yP?g#f0?~o "?]#,p?@mQg'?։? /yP?g#f0?u^\j? ؛qp2?JG^?ϋ9?sY?5WI?NB+L??u^\j? ؛qp2?sY?5WI?Wv??, *ʽ?=G?Y݇?ϊc?, *ʽ?=G?`tC;?ST?Y݇?ϊc?Bq??m>??W?r??^m#fF?4By?W?r??A1:}?r??ⓖ?xp~(?h{z??uR?6>ա??m|C?ⓖ?xp~(?uR?6>ա?.?2U?h8b?` rF?> uR?h{N?h8b?` rF??0_g?> uR?h{N?i?.? R]i??a?i(B?o?Dui^?i?.?a?i(B?tEc?kY?L?"Pd?@1?\Bꆖ?L?"Pd?n>?W`?@1?\Bꆖ?QWԚp?n?JG^?ϋ9?s;R? MA}?JG^?ϋ9?0\5? =@?s;R? MA}?]pp쵓?,萟?" Ը?d Τ? %?x0!?>쵓?, *ʽ?=G?Te?)L?>?>>?Te?)L?!TW.?A2?>?>>?83?=?DQ?Ʋ?1T?Z^"?!a{?Ʋ?1T?Y݇?ϊc?Z^"?!a{?zR??W`?Iz ?_Y?$??W`?L?"Pd?h)?B-,?L?"Pd?ʆ ?9?h)?B-,?m>??@?xp~(?A1:}?r??@?xp~(?^m#fF?4By?A1:}?r??0\5? =@?;?駓)?s;R? MA}?;?駓)?QWԚp?n?s;R? MA}?9G?q`?O{?+z??^ ?吖???ڗߚ??2r? (?օFu?N ?????Za=?*??W撋F?"9?rJ?VUUUUU?=6?ب? ڬ?n?# ?"9?rJ??W撋F?h?e \?+K(uA?6K? "?r;Bp>?h?e \?S\]?~h?~-h?|^?ب? ڬ?ek@??"9?rJ?h?e \?~-h?|^?+K(uA?6K?M&?=u~e? 2Ĩ?h-b??W撋F?+z??VUUUUU?=6?7mfǝ?7^j?gK?/& "?VW??9??qKg? B?j?.ե@.??kI?5?1?zH$?u3?0eY?F? ??F@V0? r?3aX?>T?l?C?W?ʣ?b&?F@V0? r?00:'?1H?l?C?W?3aX?>T?a?GË?]dɂ?bR;?eo+?㙁?&2]b?+os}?:x$?T?Z[?U(?a?GË?e2?/Z?G.(?`?O{? jˣU?9Ҁ?+z???%(?ZM?8a7(?HĤ?`r`?O{?^ ?吖?fMF> ??j?.ե@.? N=^?Ic?^ ?吖?7mfǝ?7^j?5y? S$?HĤ?`r`?O{?fMF> ?? N=^?Ic??"{l}?fMF> ??7mfǝ?7^j?HĤ?`r~?f7?~+?,?f7??֛QT?~+?,?r?Rh ?uW1/?jh?h ??AŔ?w?h?aOC?jhʤ ?jh$?f7?uW1/?jhݐ?%Ć?q{S(??h ?w?h?yH?h??֛QT??eI??fD??eI????fD?]???h ??????fD?]??h ?yH?h??AŔ??eI??֛QT?>~?f7?ʤ ?jh^6?֛QT??AŔ?~+?,?֛QT?w?h?tZ?]?yH?h?h?jxV~:X?jh^6?֛QT??AŔ??֛QT?~+?,?֛QT??'II??fD?????fD?ݐ?aOC?jh$?f7?~+?,?֛QT??֛QT?~+?,?f7?'II?w⤤Ŕ?~+?,?r?w⤤Ŕ?~+?,?f7?~+?,?r??֛QT??fD?~+?,?r??fD?'II?~+?,?r?<+f?֛QT?V~:X?jhZh?h?w?h?~+?,?֛QT?<+f?֛QT?>~?f7?~+?,?f7?~+?,?q{S(?~+?,?f7?w⤤Ŕ?~+?,?q{S(?Rh ?uW1/?jhuq~.%Ć?q{S(?~+?,?q{S(?Rh ?%Ć?q{S(?ʤ ?jhh?jx^6?֛QT?V~:X?jh<+f?֛QT?^6?֛QT?~+?,?֛QT?>~?f7?^6?֛QT?<+f?֛QT?~+?,?֛QT?^6?֛QT?ʤ ?jh>~?f7?$?f7?%Ć?q{S(?ݐ?$?f7?V~:X?jhtZ?Zh?h?tZ?yH?h?Zh?h?>~?f7?~+?,?q{S(?$?f7?~+?,?q{S(?%Ć?q{S(?$?f7?w?h?<+f?֛QT?Zh?h?yH?h?w?h?Zh?h?-ݢ?+Bg?g֦?4Tљe?ܠh0}?J!?g?(oULef?E$MD?@)c?8p?v]@s?Gx֦?"?E? ?y?מ;?xJ?{W!??A`??5?lW?N| ?7?F?"?\N4? GX?g֦?4Tљe?5S W?G&?ܠh0}?J!?g֦?4Tљe??U撋F?uN~??!Ь??VUUUUU?;i?B$?.?xL??{W!?? ▙?~Gq?BB{?CcVn???xL??VUUUUU?=6?8p?v]@s?@ފ?f1? ?(ڀ??U撋F?7]:V?>} ??4%,0?I -?D۶[b?;$?M?^g?7]:V?>} ??U撋F?I -?D۶[b?VUUUUU?=6?,[C?zK?8p?v]@s?X?ϙ?M?} ?I -?D۶[b?HrGmդ?ޫ!O??4%,0?;$?M?^g?-ݢ?+Bg??%(?,[C?zK?\a?pYZ?g?f?:+O?M?B@z?B>7?ȓ??g?f?:+O?M? ?y?X?ϙ?,[C?zK?"Gx?Ռ@в?\{??٧?g?f?:+O?M?1]?? >?٧?.8e{?7?\N4? GX??!{l}?\a?pYZ?B@z?B>7?VUUUUU?7???{'?m4%Z? >?٧?8p?v]@s?E$MD?@)c?@ފ?f1?E$MD?@)c?HrGmդ?ޫ!O?@ފ?f1?B$?.?.-?׮n?5?lW?07?r8? ▙?~Gq?`ut[ ?N?Uӑ ?7? >?٧?B@z?B>7?g?f?:+O?M? >?٧??U撋F?Gx֦?"?E?מ;?xJ?\a?pYZ??U撋F?מ;?xJ??%(?D} W?&Iv?"Gx?Ռ@в?,[C?zK??%(?"Gx?Ռ@в?5S W?G&?g֦?4Tљe?uN~??Ay'\?/cu?5S W?G&?uN~???%(?-ݢ?+Bg?ܠh0}?J!?5S W?G&??%(?ܠh0}?J!??xr??ZY?cӂ+?)N6m?!*+?36f?gj&k?Б_>?VUUUUU?=6?;$?M?^g?U?ʚj i?U?`?T??cӂ+?)N6m?}?d>Y?-ݢ?+Bg?U?ʚj i?-ݢ?+Bg?VUUUUU?=6?U?ʚj i?.-?׮n?B$?.?cӂ+?)N6m?B$?.?VUUUUU?;i?U?`?r}?Nck?T??U?`??U撋F?.-?׮n?cӂ+?)N6m?w-ݢ?O-?Gx֦?"?E?r}?Nck?Gx֦?"?E??U撋F?r}?Nck?T??r}?Nck?}?d>Y?T??}?d>Y?U?ʚj i??U撋F?g֦?4Tљe?}?d>Y?r}?Nck??U撋F?}?d>Y?VUUUUU?;i?w-ݢ?O-?U?`?w-ݢ?O-?r}?Nck?U?`?;$?M?^g?I -?D۶[b?!*+?36f?B$?.?U?`?cӂ+?)N6m??U撋F?cӂ+?)N6m?gj&k?Б_>?U?ʚj i?;$?M?^g?!*+?36f?T??U?ʚj i?!*+?36f?cӂ+?)N6m?T??!*+?36f?I -?D۶[b??U撋F?gj&k?Б_>?!*+?36f?I -?D۶[b?gj&k?Б_>??T}?S??~???Ue>C?pKDaC?pKDa<8;O??8;O??Ue>C?pKDaC?pKDa<??b8b7? ??T}?S??~8;O?? l-V?N%<_i?J%]м X?????_i?J%]м? l-V?N%<? l-V?N%<;-?? l-V?N%< X??;-??_i?J%]м?? X??NAf??_Q'???}n6??:l?NAf???m6v?? lM?m6v?? lM?J>Ԃa???m6v?? lM???J>Ԃa?I*? 6-????J>Ԃa? 6-??I*?_z?!dn?? 6-??I*?!dn??_z?4QX?pX>??!dn??_z?pX>??4QX?:l?}n6??pX>??4QX?}n6??:l?_Q'?NAf???????_Q'?????u j?????c@??ίh;nB???c@??׊z??NAf?<ίh;nB??k6v?u j??k6v??S+BR??u j??k6v?S+BR??? 6-?_>??S+BR???_>?? 6-?!dn?|2"??_>?? 6-?|2"??!dn?pX>?P"??|2"??!dn?P"??pX>?}n6?Jܢe??P"??pX>?Jܢe??}n6?NAf?<׊z??Jܢe??}n6?׊z??NAf?<?ίh;nB????c@???v j?m۶m[̵v j?m۶m[̵S+BR?m۶m[̵<[M?????c@?c@???0{???v j?m۶m[̵[M??S+BR?m۶m[̵<_>?m۶m[̵,.&??[M??S+BR?m۶m[̵<,.&??_>?m۶m[̵|2"?G$Ir?ۼĎjHn??,.&??_>?m۶m[̵ĎjHn??|2"?G$Ir?ۼQ"?m۶m[żH??ĎjHn??|2"?G$Ir?ۼH??Q"?m۶m[żJܢe?,??H??Q"?m۶m[ż,??Jܢe?׊z?m۶m[̵$Ve??,??Jܢe?$Ve??׊z?m۶m[̵ίh;nB?m۶m[̵<Ps??$Ve??׊z?m۶m[̵Ps??ίh;nB?m۶m[̵<c@?0{??Ps??ίh;nB?m۶m[̵<0{??HXiAv⤤Ŕ?FX֐Rh ?X2?2Pv??쵉?H?jx+Q??X2?쵉???X2??$D@?FX֐Rh ?[M?X2??X2?쵉??쵉??8 ?{?/4?ނ{O?/4?H?jx?쵉?&D?쵉?-.&?jx<ĎjHn?&D?쵉????|; ??v{c:@??|; ????v{c:@?0{???8 ??????v{c:@?Ps?0{?ނ{O?/4??*cs??|; ????8 ??*cs?{?/4?0{??8 ?ނ{O?/4??*cs?X2??{?/4?,?jh$Ve?jh+Q???*cs???X2???HXiA<(II??v{c:@?????v{c:@?ĎjHn?H?jx&D?쵉?X2????X2?쵉?HXiA<(II?HXiAv⤤Ŕ?X2??$D@?HXiAv⤤Ŕ?X2?쵉?X2??$D@????v{c:@?X2??$D@??v{c:@?HXiA<(II?X2??$D@?s~??$Ve?jhTl? /4?{?/4?X2??s~???쵉?X2?쵉?X2?2Pv?X2?쵉?HXiAv⤤Ŕ?X2?2Pv?FX֐Rh ?[M?X2?2Pv?[M?-.&?jx<X2?2Pv?H?jx,?jh+Q??$Ve?jhs~??+Q??X2???쵉?+Q??s~??X2??+Q??$Ve?jhPs?Tl? /4?Ps?ނ{O?/4?Tl? /4??쵉?X2?2Pv?&D?쵉?X2?2Pv?-.&?jx<&D?쵉?{?/4?s~??Tl? /4?ނ{O?/4?{?/4?Tl? /4??xr??Z~!`?????t#Y?Cy>?d/vD ?3Bt#Y?Cy>P??~!`???d/vD ?3B~!`??t#Y?Cy>??P??#F?Ej?j?j?8 &q?2 rE?W|$?W1??[-c?>8 &q?2 rE?yA?uCa1?/Fv?P?.8??  ?;}|?ʞ*M?yA?uCa1?.8??  ??[-c?`ib?.?6u?6ZN? ш?P_??[-c?6u?6ZN? ш?P_?6u?6ZN??N?6u?6ZN?!? ̅}??N?. `?„Ϛ?AB?`"?|?j9?AB?`"? ш?P_?|?j9?|?j9?#F?E8 &q?2 rE?#F?Ej?j?8 &q?2 rE?F0?TFJ4?>8 &q?2 rE?xWA?d`i?F0?TFJ4?`ib?.?x 7W?R(۩n1?h,?9z0 wW?!? ̅}?`ib?.?h,?9z0 wW?zY+?}y]y? t"3? &u1|?T,? Y? %)؀?@|?@?T#|z?p {?$??Tw7?Sy'\?ۤˤ{?Btk?~?Btk?RZ?=N-?*l(? %)؀?@|?Sy'\?ۤˤ{?D} W?&Iv?@?T#|z?=N-?*l(?T,? Y?Btk?~?5S W?G&?Ay'\?/cu? %)؀?@|?Ay'\?/cu??!{l}?Btk?RZ? T,?|~?=N-?*l(?Btk?RZ??%(?5S W?G&? %)؀?@|?_"3?%?4Y+?I9? T,?|~?4Y+?I9?UUUUUU?%(? T,?|~?=N-?*l(? T,?|~?T,? Y?Ay'\?/cu?Btk?RZ? %)؀?@|?UUUUUU?%(?zY+?}y]y?T,? Y? T,?|~?UUUUUU?%(?T,? Y??!{l}?_"3?%?Btk?RZ?_"3?%? T,?|~?Btk?RZ? t"3? &u1|??Tw7?Btk?~?T,? Y? t"3? &u1|?Btk?~??%(? %)؀?@|?p {?$?Btk?~?Sy'\?ۤˤ{?@?T#|z?=N-?*l(?Btk?~?@?T#|z? %)؀?@|?=N-?*l(?@?T#|z?D} W?&Iv??%(?p {?$?@?T#|z?D} W?&Iv?p {?$?Խi??O'?bw]??saж??Ll?Խi???ߙ??bvM?ߙ??bvM?F7Ԃa?B??ߙ??bvM?B??F7Ԃa?\'E*?H_??B??F7Ԃa?H_??\'E*?Xz?#.E|??H_??\'E*?#.E|??Xz?QX?rV|??#.E|??Xz?rV|??QX?Ll?saж??rV|??QX?saж??Ll?O'?Խi?????bw]??O'??bw]???Xڿ/?????A??(p7C??bw]?A??/] ??Խi?(p7C??ߙ?Xڿ/??ߙ?B?Ԩ Z??Xڿ/??ߙ?Ԩ Z??B?H_?;D??Ԩ Z??B?;D??H_?#.E|?o( (??;D??H_?o( (??#.E|?rV|?!D]9%??o( (??#.E|?!D]9%??rV|?saж?yx(&??!D]9%??rV|?yx(&??saж?Խi?/] ??yx(&??saж?/] ??Խi?bw]?(p7C??bw]??A???Wڿ/?$IDYJ??ni}7q??o( (?x}>J??!D]9%?xx(&?l۶m[<4̵6??x}>J??!D]9%?4̵6??xx(&?l۶m[J?81$zQ?n?ϴm?)(??n?Ѵm?y$D@?FX֐J?af?)(?TE?)(?g?jhni}7q?jhTE?)(??n??|; ??\c:@??|; ????\c:@?Q???8 ??????\c:@?o(?Q? LD O?/4??*cs??|; ??n??8 ??*cs?f6F?/4?Q??8 ? LD O?/4??*cs?δm?n?f6F?/4?4̵6?jhJ?TE?)(?δm?n??n?ϴm?)(?MwJ?4̵6?jh<81$zQ?n?i?4}?n?81$zQ?n?δm?n?af?)(?81$zQ?n?4}?n?δm?n?81$zQ?n?i?o(?N?/4?o(? LD O?/4?N?/4?af?)(?дm?SPv?TE?)(?дm?SPv?g?jhTE?)(?f6F?/4?4}?n?N?/4? LD O?/4?f6F?/4?N?/4??DžX FOFO[OFO6F6/(6O>j[cOjO[c6O>/6>[Xc[Xc[XXXY[ccdd>P0j/?0Pcd/?0>P?0/>?0>OPjPOcjPjc/6>06>0j[cj(/0G[j60Gjjaf0fjaPajP0ja\%[\%[\FG[j6GFj6FOjF[Oj(6/0(7607HGfGH\f78f3)873)83H]\H\f)3\%\]%%\%\%%\%Gjf(70G\[67G0Gf\()77G0f703f\f)730Gjf70303faP3af%qaqauq3aquu%qf3afaq3+3qfu%fq83+f+3qu+q3Ouq+OqO+uqqO+ OO uqO& O &O%(2u%2%uvuvqOquvOr&OrHOOH&O&rHOrHrqvurqrqqvu%(%a0P30P3a?0P?P0ada%%0PQuaQPauaPu3PaPqauu%vu%qvuHPuPHrvqu1HruHevruvueP@Hvuv%v%(%(evQ@PuQeu0@1@HPu1@HRHureRrvRuH@erRufvfve1@AHQR@uQeRued0?@P?Q@PQde0@PQadQP?a0?PPdaP?0aPQ?aPdQad%%%%||YYYYZYZ}Z}|}m}mnZ}|nmn(($$&(4$#$##|z#z||z^#|&^#z#|zz#$$#|&4&|{4{|z#$z$#z||&4|4z{|$zsy{zy{y$$$yz{|{(4{{$$y$(&4&(&((4(4&&4|{4z{ys$yszC$z{sbzszsbUbsUbsC4{hsC$sC$ysC3$h{4h4h4CUsCD4CUDUshUhiThUsCTUs3C4BC3$ByC$hyT{TyhsCyTsy{hsh{4h4ghT{BTCygTyByTh{g gy{gTy{B3$B$yB$ {y{(43${y {y y22V V  v({( { (( fg g{2ByB gySBTSTg2B3 Sg fSgABSS f2ABBAAV2AVRrV rfv12VRfrf rRASRSfARV1A2V@RAHefRvRAHV1HAVfrRvRHrVvf vf(v( v(&Vv rVrv  r1HVrVH&rV&HV&rvH&r&rvr&&,,&vvV&v((%v{(y{&,,,,,,,,(( &,,&&v&  &, & , ,4  ,4,((2(%2%((&(22,2,,224,4222&4,4,24 4 44444FF44F44F2//2MFFFFF4Q2 "2442 222 "&32  2 Q Q Q }~  ~ ~G ~Gl~G  "3"33 G~G ~~~GG~l~G G" & &"3 """&"&22&&3GGG#GR#GG#G#&##Gz#^zz#|&|###2,22&(&(||~||m}}}||}|~|~^w2J^Is9JIs+9:s9+:9J^swJ_^w:J9s+:M:sMtwstwFM+M2//2wsMFMFsws+w2~2w29sswsF42s9+9+w2w^2s*9+Is9s^sw*+99IssI^^2~%2%%%2 ++ 4+   ++2u2 +  +O u +Oq++u2u%2q+qfq8+3Hfu]f8+*8+I]^]*+9+2^^2I]^98+*98+98IIH]8HI]]H8fH)*87f8H,-;`tLyLt;y`/L`Kt;LKt,;:W;K:WK`_xKt`x;tKW;,W;tW`/x`/K_tx,MWMtWKtMWKM:W,:MW_x`/~w_x+,:MKs:MKtsM+,M_sKt_wtx,Mx/wxtxwtsMst_w^w_Js_wK_Js:KJsLadM<MLdM<Jd-.<MdJhahdMadhdaJ<d-<a-a--$:Jh]:]hd]:h:J]hd<JJd:hNJnhbh.JDJJh[hnnhJJhJ:h-b-$--ba=NMJNbMhNMJh.=<JMbahbah.<J=M<JNDn ND =DNn D D Dn DDnnb$+-b-D.J=.DJNnbhDJN=DNJnbnbNn N=D =.D .DnbhDnJnhDJD[DY[YDnz[D[nc[z9Y[Y9YDYz[Y9zY[++nzDzn[zDYDYDYzDYzDnznz+ DYYzz+zYzYY9zY99YczYYccc919c++czcY99cz91c91+9cz9[+++$++$-+-nh[h[[h]][h_A[[_A9[+c[9A9[_cc91cc9+9_c_cc_9_A9Ac[_9_[A$+$+$+$'$+AB_$'+$B___BAB_ BA BA_ _]_] _ A_ A_[]_][$$+-]: :: ]-$-||~|}}}|m} |||~|~"Q""Q  " "/" ""/xFFMttMMFx/xttM x"/~ x/ x xt t,;tytx y ty xy "-/" " "  " }  "}" }w }"w"$$"--"-"~"-/ x/ y d y yx;,;`xty;y`x/-/`/xy`L;y dy dy -/-/a`Lyd-;`yLLdaLa`<L;-<;<Ld-dLy d]]d  d -:Jd:d]:] : - ]  ] : " w ] ] w] d "- " "  "w"8 w "8 w ]w w8qB 8 8Bqwq}wq}8wq"$"$- -$-wq] ]wq_]q _]q BB_ q_Bq_q_B_!B_!B!B_q$ $$qB8!q!B8B!q!q!mq!NmmN!m!8mmq!88m!qqmq"" " $ "$}"8Q}  }w"8}8"w}m8q}mq8} Q8 8~}8 ~}}Q } 8QQ}Q}}"8Q"Q}""" " " "~8  8~~~m}~m~8}m~8m!8~m~~m=N=N ,=N=N=NmN!Nm NN!>NN N==N=@@==@ #'@=#, =@==@E=# ' # 7'77*7###7****  *7*7 @   @E @E@=E#,@@#' 7 '@'@ '@'@'@#'''' '' '#*'6 '6 '6'7'6'7676767#*#*7'7777#077'77'7##'*'#' $'$ ' '' ?>'   > > '  '@'NN>>' '>N>N!>!N>!>!>>>?> ?''$>>?'?>??1??1'+1c91(1??(1t1t'??1?(?  (??((?()(( ))) ( )*'' ? *'  ? *''+'*'t(t1tt1ctcctuq~.ePc1tt1(t(1t11c111tt1t(1((**(()t((tt('*()))**))L)L*)L)))L*LL*LLSSSSL**LSLSSL*1SLSL*****1**'* *6 )  6)6*6) 6L)6)L)6)6)666*6LL66*1U6U66U*1U6U6UUUU!01011.10.1.0.01 .055gxxg5-5x!!x-5U5-UU55U`r`5`5T/`5g`gg`5`g5...1111rUUUUUrSSSrSrTSTSrrSrTSrr1111SSrrSrSrrTrrSTrT`T`TT```/`T11..1.1..15T`T`r`TrT`rr`TT/`/T``5/T/T5`/k`g`gk .k/k//kk .`k`/k/k///kkk/k"k%#"#"$#%$%#% kk/kk  .   . .kg/kg/55/5gg .  .   g/g// /ggg5ggxg5x55  .01U-UU--U!!0--#0!77-!-  !-- !00 #  0- -- 0 0! - !! -! x x!0- x-! x !!0! x -x- 5-x5-!x. 0 0x5xxx 0 ! ! 0 !  !!  #0# ! - !!!0#07*77**** # ##&&&! ,~l=l%=~~l%G,, 3,l%=ll%==l,==,E==EE==E=l #!, ! !,=%E,.Evvlp%p,%plpl%plp%l%=l,l~G%l~%Gl,3 ,&3 ! &,&,3G%Rp%G%lp,p% % p% R%GR&,G#R^p #Rz^ #^# R&&),^^p %R p^)&,!),. .p \ p^\^\p)!,),v\\vpp\.v.,p.v% .p.% pv.%p.%pvpvv.v,!<e.<v..\v!,vv\<\.e.<\<e\e<!!! !<KeeK<K<eK<e!  KeeKKK KeKe<Ke ! e  !!!#**#**.E.E.Ev!#,EEE! # E EE#, E# ** **!# #**  ******  Wj5ECEWCECWoWoj55CWooW5CoCoo5))555oCCCoCioioCXoiCoiCXXCXiXiX5iXXee<K<X<e<X<ie<XieXi<X!5! )!55X<i<Xieie\<\ie5!!5<..<\i<\i\!)5XiX55iXCioCiXCCXiioiZ5)iZo;IZ;I);^Z;Zi\i\Z)5)^Z\\.. \^\^ \. ^ ; ;^\Z!)&); ^ ;^# #^ |^|z^)&4zb^b^zZ^;^bZ;bZ^)Zbb;^zb)4&)4&))44D4DIb)4ibDIib{IZb{bI;b;IIbZ;)bZ{o{ZI{oZIIoZCIICo)55o{5I5CIWCIo{j)5)))jiij{D5ID{EIWIE{o{WWoI{WICE5ECIjW{jjVWE{VjW{DE5IDE{VijV{4D5DIb{iVb{DbV{i4UibUDbUVDbUiVbhii4666 6 666 666 66 66&&&    6 6   '''666 66666oo6666m6666666o6o666m6m66op6op6p6pp6666nm6nnknmkmkklllopol h xsrcom.femlab.xmesh.Solution[ʏQqSxpwuq~.ArlambdaLPLP  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  !!!!!!!!! ! ! ! ! !!!!!!!!!!!!!!!!!!! !!!"!#!$!%!&!'!(!)!*!+!,!-!.!/!0!1!2!3!4!5!6!7!8!9!:!;!!?!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_!`!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!{!|!}!~!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""" " " " " """"""""""""""""""" "!"""#"$"%"&"'"(")"*"+","-"."/"0"1"2"3"4"5"6"7"8"9":";"<"=">"?"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N"O"P"Q"R"S"T"U"V"W"X"Y"Z"["\"]"^"_"`"a"b"c"d"e"f"g"h"i"j"k"l"m"n"o"p"q"r"s"t"u"v"w"x"y"z"{"|"}"~""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""######### # # # # ################### #!#"###$#%#&#'#(#)#*#+#,#-#.#/#0#1#2#3#4#5#6#7#8#9#:#;#<#=#>#?#@#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z#[#\#]#^#_#`#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#p#q#r#s#t#u#v#w#x#y#z#{#|#}#~##################################################################################################################################$$$$$$$$$ $ $ $ $ $$$$$$$$$$$$$$$$$$$ $!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s$t$u$v$w$x$y$z${$|$}$~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%% % % % % %%%%%%%%%%%%%%%%%%% %!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v%w%x%y%z%{%|%}%~%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&& & & & & &&&&&&&&&&&&&&&&&&& &!&"&#&$&%&&&'&(&)&*&+&,&-&.&/&0&1&2&3&4&5&6&7&8&9&:&;&<&=&>&?&@&A&B&C&D&E&F&G&H&I&J&K&L&M&N&O&P&Q&R&S&T&U&V&W&X&Y&Z&[&\&]&^&_&`&a&b&c&d&e&f&g&h&i&j&k&l&m&n&o&p&q&r&s&t&u&v&w&x&y&z&{&|&}&~&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''' ' ' ' ' ''''''''''''''''''' '!'"'#'$'%'&'''(')'*'+','-'.'/'0'1'2'3'4'5'6'7'8'9':';'<'='>'?'@'A'B'C'D'E'F'G'H'I'J'K'L'M'N'O'P'Q'R'S'T'U'V'W'X'Y'Z'['\']'^'_'`'a'b'c'd'e'f'g'h'i'j'k'l'm'n'o'p'q'r's't'u'v'w'x'y'z'{'|'}'~''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((( ( ( ( ( ((((((((((((((((((( (!("(#($(%(&('((()(*(+(,(-(.(/(0(1(2(3(4(5(6(7(8(9(:(;(<(=(>(?(@(A(B(C(D(E(F(G(H(I(J(K(L(M(N(O(P(Q(R(S(T(U(V(W(X(Y(Z([(\(](^(_(`(a(b(c(d(e(f(g(h(i(j(k(l(m(n(o(p(q(r(s(t(u(v(w(x(y(z({(|(}(~(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))) ) ) ) ) ))))))))))))))))))) )!)")#)$)%)&)')()))*)+),)-).)/)0)1)2)3)4)5)6)7)8)9):);)<)=)>)?)@)A)B)C)D)E)F)G)H)I)J)K)L)M)N)O)P)Q)R)S)T)U)V)W)X)Y)Z)[)\)])^)_)`)a)b)c)d)e)f)g)h)i)j)k)l)m)n)o)p)q)r)s)t)u)v)w)x)y)z){)|)})~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********* * * * * ******************* *!*"*#*$*%*&*'*(*)***+*,*-*.*/*0*1*2*3*4*5*6*7*8*9*:*;*<*=*>*?*@*A*B*C*D*E*F*G*H*I*J*K*L*M*N*O*P*Q*R*S*T*U*V*W*X*Y*Z*[*\*]*^*_*`*a*b*c*d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*s*t*u*v*w*x*y*z*{*|*}*~**********************************************************************************************************************************+++++++++ + + + + +++++++++++++++++++ +!+"+#+$+%+&+'+(+)+*+++,+-+.+/+0+1+2+3+4+5+6+7+8+9+:+;+<+=+>+?+@+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+[+\+]+^+_+`+a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+{+|+}+~++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,, , , , , ,,,,,,,,,,,,,,,,,,, ,!,",#,$,%,&,',(,),*,+,,,-,.,/,0,1,2,3,4,5,6,7,8,9,:,;,<,=,>,?,@,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,[,\,],^,_,`,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,{,|,},~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------- - - - - ------------------- -!-"-#-$-%-&-'-(-)-*-+-,---.-/-0-1-2-3-4-5-6-7-8-9-:-;-<-=->-?-@-A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z-[-\-]-^-_-`-a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-z-{-|-}-~----------------------------------------------------------------------------------------------------------------------------------......... . . . . ................... .!.".#.$.%.&.'.(.).*.+.,.-.../.0.1.2.3.4.5.6.7.8.9.:.;.<.=.>.?.@.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.[.\.].^._.`.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.{.|.}.~..................................................................................................................................///////// / / / / /////////////////// /!/"/#/$/%/&/'/(/)/*/+/,/-/.///0/1/2/3/4/5/6/7/8/9/:/;//?/@/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/[/\/]/^/_/`/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/{/|/}/~//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////000000000 0 0 0 0 0000000000000000000 0!0"0#0$0%0&0'0(0)0*0+0,0-0.0/000102030405060708090:0;0<0=0>0?0@0A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0{0|0}0~0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111 1 1 1 1 1111111111111111111 1!1"1#1$1%1&1'1(1)1*1+1,1-1.1/101112131415161718191:1;1<1=1>1?1@1A1B1C1D1E1F1G1H1I1J1K1L1M1N1O1P1Q1R1S1T1U1V1W1X1Y1Z1[1\1]1^1_1`1a1b1c1d1e1f1g1h1i1j1k1l1m1n1o1p1q1r1s1t1u1v1w1x1y1z1{1|1}1~1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222 2 2 2 2 2222222222222222222 2!2"2#2$2%2&2'2(2)2*2+2,2-2.2/202122232425262728292:2;2<2=2>2?2@2A2B2C2D2E2F2G2H2I2J2K2L2M2N2O2P2Q2R2S2T2U2V2W2X2Y2Z2[2\2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2q2r2s2t2u2v2w2x2y2z2{2|2}2~2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222333333333 3 3 3 3 3333333333333333333 3!3"3#3$3%3&3'3(3)3*3+3,3-3.3/303132333435363738393:3;3<3=3>3?3@3A3B3C3D3E3F3G3H3I3J3K3L3M3N3O3P3Q3R3S3T3U3V3W3X3Y3Z3[3\3]3^3_3`3a3b3c3d3e3f3g3h3i3j3k3l3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}3~3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444 4 4 4 4 4444444444444444444 4!4"4#4$4%4&4'4(4)4*4+4,4-4.4/404142434445464748494:4;4<4=4>4?4@4A4B4C4D4E4F4G4H4I4J4K4L4M4N4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4\4]4^4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4{4|4}4~4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444555555555 5 5 5 5 5555555555555555555 5!5"5#5$5%5&5'5(5)5*5+5,5-5.5/505152535455565758595:5;5<5=5>5?5@5A5B5C5D5E5F5G5H5I5J5K5L5M5N5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5\5]5^5_5`5a5b5c5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5s5t5u5v5w5x5y5z5{5|5}5~5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555666666666 6 6 6 6 6666666666666666666 6!6"6#6$6%6&6'6(6)6*6+6,6-6.6/606162636465666768696:6;6<6=6>6?6@6A6B6C6D6E6F6G6H6I6J6K6L6M6N6O6P6Q6R6S6T6U6V6W6X6Y6Z6[6\6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6w6x6y6z6{6|6}6~6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777 7 7 7 7 7777777777777777777 7!7"7#7$7%7&7'7(7)7*7+7,7-7.7/707172737475767778797:7;7<7=7>7?7@7A7B7C7D7E7F7G7H7I7J7K7L7M7N7O7P7Q7R7S7T7U7V7W7X7Y7Z7[7\7]7^7_7`7a7b7c7d7e7f7g7h7i7j7k7l7m7n7o7p7q7r7s7t7u7v7w7x7y7z7{7|7}7~7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777888888888 8 8 8 8 8888888888888888888 8!8"8#8$8%8&8'8(8)8*8+8,8-8.8/808182838485868788898:8;8<8=8>8?8@8A8B8C8D8E8F8G8H8I8J8K8L8M8N8O8P8Q8R8S8T8U8V8W8X8Y8Z8[8\8]8^8_8`8a8b8c8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}8~8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888999999999 9 9 9 9 9999999999999999999 9!9"9#9$9%9&9'9(9)9*9+9,9-9.9/909192939495969798999:9;9<9=9>9?9@9A9B9C9D9E9F9G9H9I9J9K9L9M9N9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9\9]9^9_9`9a9b9c9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9y9z9{9|9}9~9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::: : : : : ::::::::::::::::::: :!:":#:$:%:&:':(:):*:+:,:-:.:/:0:1:2:3:4:5:6:7:8:9:::;:<:=:>:?:@:A:B:C:D:E:F:G:H:I:J:K:L:M:N:O:P:Q:R:S:T:U:V:W:X:Y:Z:[:\:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:}:~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;; ; ; ; ; ;;;;;;;;;;;;;;;;;;; ;!;";#;$;%;&;';(;);*;+;,;-;.;/;0;1;2;3;4;5;6;7;8;9;:;;;<;=;>;?;@;A;B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;[;\;];^;_;`;a;b;c;d;e;f;g;h;i;j;k;l;m;n;o;p;q;r;s;t;u;v;w;x;y;z;{;|;};~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<< < < < < <<<<<<<<<<<<<<<<<<< <!<"<#<$<%<&<'<(<)<*<+<,<-<.</<0<1<2<3<4<5<6<7<8<9<:<;<<<=<><?<@<A<B<C<D<E<F<G<H<I<J<K<L<M<N<O<P<Q<R<S<T<U<V<W<X<Y<Z<[<\<]<^<_<`<a<b<c<d<e<f<g<h<i<j<k<l<m<n<o<p<q<r<s<t<u<v<w<x<y<z<{<|<}<~<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<========= = = = = =================== =!="=#=$=%=&='=(=)=*=+=,=-=.=/=0=1=2=3=4=5=6=7=8=9=:=;=<===>=?=@=A=B=C=D=E=F=G=H=I=J=K=L=M=N=O=P=Q=R=S=T=U=V=W=X=Y=Z=[=\=]=^=_=`=a=b=c=d=e=f=g=h=i=j=k=l=m=n=o=p=q=r=s=t=u=v=w=x=y=z={=|=}=~==================================================================================================================================>>>>>>>>> > > > > >>>>>>>>>>>>>>>>>>> >!>">#>$>%>&>'>(>)>*>+>,>->.>/>0>1>2>3>4>5>6>7>8>9>:>;><>=>>>?>@>A>B>C>D>E>F>G>H>I>J>K>L>M>N>O>P>Q>R>S>T>U>V>W>X>Y>Z>[>\>]>^>_>`>a>b>c>d>e>f>g>h>i>j>k>l>m>n>o>p>q>r>s>t>u>v>w>x>y>z>{>|>}>~>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????? ? ? ? ? ??????????????????? ?!?"?#?$?%?&?'?(?)?*?+?,?-?.?/?0?1?2?3?4?5?6?7?8?9?:?;????@?A?B?C?D?E?F?G?H?I?J?K?L?M?N?O?P?Q?R?S?T?U?V?W?X?Y?Z?[?\?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}?~??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????@@@@@@@@@ @ @ @ @ @@@@@@@@@@@@@@@@@@@ @!@"@#@$@%@&@'@(@)@*@+@,@-@.@/@0@1@2@3@4@5@6@7@8@9@:@;@<@=@>@?@@@A@B@C@D@E@F@G@H@I@J@K@L@M@N@O@P@Q@R@S@T@U@V@W@X@Y@Z@[@\@]@^@_@`@a@b@c@d@e@f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@z@{@|@}@~@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAA A A A A AAAAAAAAAAAAAAAAAAA A!A"A#A$A%A&A'A(A)A*A+A,A-A.A/A0A1A2A3A4A5A6A7A8A9A:A;AA?A@AAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA[A\A]A^A_A`AaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}A~AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBB B B B B BBBBBBBBBBBBBBBBBBB B!B"B#B$B%B&B'B(B)B*B+B,B-B.B/B0B1B2B3B4B5B6B7B8B9B:B;BB?B@BABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBYBZB[B\B]B^B_B`BaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBvBwBxByBzB{B|B}B~BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCC C C C C CCCCCCCCCCCCCCCCCCC C!C"C#C$C%C&C'C(C)C*C+C,C-C.C/C0C1C2C3C4C5C6C7C8C9C:C;CC?C@CACBCCCDCECFCGCHCICJCKCLCMCNCOCPCQCRCSCTCUCVCWCXCYCZC[C\C]C^C_C`CaCbCcCdCeCfCgChCiCjCkClCmCnCoCpCqCrCsCtCuCvCwCxCyCzC{C|C}C~CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDD D D D D DDDDDDDDDDDDDDDDDDD D!D"D#D$D%D&D'D(D)D*D+D,D-D.D/D0D1D2D3D4D5D6D7D8D9D:D;DD?D@DADBDCDDDEDFDGDHDIDJDKDLDMDNDODPDQDRDSDTDUDVDWDXDYDZD[D\D]D^D_D`DaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzD{D|D}D~DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEE E E E E EEEEEEEEEEEEEEEEEEE E!E"E#E$E%E&E'E(E)E*E+E,E-E.E/E0E1E2E3E4E5E6E7E8E9E:E;EE?E@EAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZE[E\E]E^E_E`EaEbEcEdEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEuEvEwExEyEzE{E|E}E~EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFF F F F F FFFFFFFFFFFFFFFFFFF F!F"F#F$F%F&F'F(F)F*F+F,F-F.F/F0F1F2F3F4F5F6F7F8F9F:F;FF?F@FAFBFCFDFEFFFGFHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF[F\F]F^F_F`FaFbFcFdFeFfFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzF{F|F}F~FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGG G G G G GGGGGGGGGGGGGGGGGGG G!G"G#G$G%G&G'G(G)G*G+G,G-G.G/G0G1G2G3G4G5G6G7G8G9G:G;GG?G@GAGBGCGDGEGFGGGHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGWGXGYGZG[G\G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}G~GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHH H H H H HHHHHHHHHHHHHHHHHHH H!H"H#H$H%H&H'H(H)H*H+H,H-H.H/H0H1H2H3H4H5H6H7H8H9H:H;HH?H@HAHBHCHDHEHFHGHHHIHJHKHLHMHNHOHPHQHRHSHTHUHVHWHXHYHZH[H\H]H^H_H`HaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHyHzH{H|H}H~HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIII I I I I IIIIIIIIIIIIIIIIIII I!I"I#I$I%I&I'I(I)I*I+I,I-I.I/I0I1I2I3I4I5I6I7I8I9I:I;II?I@IAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI[I\I]I^I_I`IaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzI{I|I}I~IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJ J J J J JJJJJJJJJJJJJJJJJJJ J!J"J#J$J%J&J'J(J)J*J+J,J-J.J/J0J1J2J3J4J5J6J7J8J9J:J;JJ?J@JAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ[J\J]J^J_J`JaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJtJuJvJwJxJyJzJ{J|J}J~JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKK K K K K KKKKKKKKKKKKKKKKKKK K!K"K#K$K%K&K'K(K)K*K+K,K-K.K/K0K1K2K3K4K5K6K7K8K9K:K;KK?K@KAKBKCKDKEKFKGKHKIKJKKKLKMKNKOKPKQKRKSKTKUKVKWKXKYKZK[K\K]K^K_K`KaKbKcKdKeKfKgKhKiKjKkKlKmKnKoKpKqKrKsKtKuKvKwKxKyKzK{K|K}K~KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLL L L L L LLLLLLLLLLLLLLLLLLL L!L"L#L$L%L&L'L(L)L*L+L,L-L.L/L0L1L2L3L4L5L6L7L8L9L:L;LL?L@LALBLCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLTLULVLWLXLYLZL[L\L]L^L_L`LaLbLcLdLeLfLgLhLiLjLkLlLmLnLoLpLqLrLsLtLuLvLwLxLyLzL{L|L}L~LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMM M M M M MMMMMMMMMMMMMMMMMMM M!M"M#M$M%M&M'M(M)M*M+M,M-M.M/M0M1M2M3M4M5M6M7M8M9M:M;MM?M@MAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM[M\M]M^M_M`MaMbMcMdMeMfMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzM{M|M}M~MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNN N N N N NNNNNNNNNNNNNNNNNNN N!N"N#N$N%N&N'N(N)N*N+N,N-N.N/N0N1N2N3N4N5N6N7N8N9N:N;NN?N@NANBNCNDNENFNGNHNINJNKNLNMNNNONPNQNRNSNTNUNVNWNXNYNZN[N\N]N^N_N`NaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzN{N|N}N~NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOO O O O O OOOOOOOOOOOOOOOOOOO O!O"O#O$O%O&O'O(O)O*O+O,O-O.O/O0O1O2O3O4O5O6O7O8O9O:O;OO?O@OAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWOXOYOZO[O\O]O^O_O`OaObOcOdOeOfOgOhOiOjOkOlOmOnOoOpOqOrOsOtOuOvOwOxOyOzO{O|O}O~OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPP P P P P PPPPPPPPPPPPPPPPPPP P!P"P#P$P%P&P'P(P)P*P+P,P-P.P/P0P1P2P3P4P5P6P7P8P9P:P;PP?P@PAPBPCPDPEPFPGPHPIPJPKPuq~.}ME½1 LP}>_?>&zȮw?FȮjF"? ބ!XշG0WNXb ?Y@m:K9İ?JPf #9ғ85ٯ f~͘9h?JH?7?a'+Ӛ?ѽȾ>ɜྊMij?q9p?IKpRij?Ano?@g1aA?HAyLr?޶W1& r?ɵ]ѳBf.Z}?XKWh?2tHo?c߱6h?nZI->.{>jvLg֛ \LcM?#?rZ Y ӰgBI|Ќ?$ Y?g(Dݍ?qZ@>?{0\r?~>_?>"zȮw?ȮziF"? !Xշ$RP>~mW^Kw>d*WZk?LҸu#?@?"o'?A[:<?R. ,?pe>hUֺ=#Y?G>Lؾ4;D >]ܾ4yU><0C>t!;%M2?6 ׾Rgf0>o:? $fOՃ+oSb?S8^>o?̾!V >BAȮ̈́W |?~ $6?57ٸ׮?p{M[ѓ#?+mMǍ?dg1Ӈ?K?I-?^?|@ g?#w@١?X@?!7mʳ?@ ?nY쮿==Nū?ܷ纯`#/۪?:ݰKO.z?$±u~H?B|?Lg,6[َCyۮ_gѭ}}1qjRǠͲؑdN:bD ?N(- qk(?(q?ʮSBUB?!*@$n?(< xA꧿;cXTů?SHV*?[ް?&8>?Y?Q#'??R7_?Qʳ?\yx|?𮿊)sVm? E;fz?ȅV4iwoMH? Y_ 9?]y$ߩQ7= `"z>CZA$zߑ4GCi^?ຂFkW-WB%*˻d?6&3cөE? "J d.S:? C-M¡?JT`?6f?"?<#[?tQ!A?qF?&Hrʡ?H& ?)%?iDF!*4?Jfȥ?>r6%OOuQCQtGY}4WdxPk%Ņ"A?uHLjr?=/@?~j$+;7=S7:>>]?(#\3.L ?LB־79?$:>sRD>-MkԎ>o]&>_Q{>R⬞?m˙?Ӂ2?:,%??_l}?=}Ь?})W^?V R?^E1e"5?(L@ ?a.?IyWcڬ?\ ypc?dZտfֿ ׯ?;5整PQ*?{a֙?h_ܤw?vg?QQ[?XS?B%೨?k2?,KDI j?Ե y;7| ?fqa]H )?I<.?8qO!ΐ Rlg?$>Du.F]=(/?nUWt{wi? I1+vA?42A?<(ذ?ti ˦?>N2?|т9rln?3=ճ*Uʅ?a?Np?`VH?^վZQ<>˨0>Ey?ݒ!,#>{$1 T s+@/!җhA̶ҾH>:n.>r jd>7 Sa>F>Nnh$o>x@ 3>W[ *#nq Dx,荜\Tˬxxmst<-ἱ,uy?2.oذt?jwS?t+h쮿מ٫?p'R?X6˝}?0ˑ@V]<ٸ :곿$}tHSV=hͩ%7)ѱoLl^E?)*&7!uyť?h<Ji?4R_>׫?4ƋwY?Xax?fWŏdai.?ɖ\P[ 4DZH\_KG` '` p1GdzPXAud N7k<3K2x?Xze̊T.?g9ߩG&?L٬U%+X?喬?DZ|~٩\?b~͇?N5||@>yIj_η?y?ꅿYІW% xwd?;*M>{z>FPd'[͔ ?l_Nj>"hs>T>7>k_XW>brپ~# ?52&6[J= HQbXAD$ h>ԂDmȾ>cvl 9">` R[ >h > [>->m>|rFT~1`ᄊDg>q7(mXE?g@v#?PLNMRgދOYɾ%YV۾B>K$+>>*w8ȮT?*kd5.۫?"=y7Nީ0?9@:ooI?C^. .?d!)I~n?}3)?L,? (iD?P[C;?/~U?:L?D潿?nez?>˃ɳ?KMz?Ѯz۫?Pr^36#g~?QOX?J?gК?s = _=2y?KiR̒L7`3%)rⱿ.1YbR̳WFP["U4KcHI,lܿA?{i{??ҋs"ʟT fܫ?Cz-rK?/)jw0@?ZB |!?}#Ӎ?n?kD?WӮ?f?E,- ?sJM?#]Z?Z&Ě?/rJɳ?>!{?8KѮ>Xmܫ?KL7P`?x6V?P;^E{k?sD[7p=f&}T 0퍙seꇳ6 U-B 𳔑+!|In>'d?""r?9=?p?6kN`AZD?ÌR?Pga!ͳ7J==1?f@6}M?ɔi~оWt?bȰJm\> 9^6 7F|1 > v7[ɾҿB?@!?XqI#?p2*">B)>d3E>~&#e>SbO>i&I>h:BOQij?2Hp? ũij?-Z% ?(=?:? nJ59A?t%?⣘?h@?8{ 4Gm?=?b?N;Z]?J?ǿX#'S#%?ij?X`H??Hdݚ?M?,PLu?jDK?ۡrLi?t,m?$qz7?ڔ1E`v۰?鋝Y6?q5h^Jh?g*l ?;D?8/< ?ԕX`V?68#x72Ur@?}(I?vr@M?8?SDMlr?GhL6$UC>?p (YTh?C(?⚜cT3?[‘خLnSNpOWpm?lCvSȳ?VfT?N>?!3?r}q!?ω>l\?{8+X"?LØdQ񄁿hD? T?Č??Dl?:Nf?d4'Ͼ[1[>n-u뀤剫Jʥ2fJ>EO/? Ύ@Ѿ@9/"Ⱦ:vD>o=r3>~k>Q!^H\>>'Հ*4&fLB9(WFH‰2+ܿ S0r*L%8#duz,BӤ8No?%@![… 2?loJmC?OFm4sSq?ZÛѮiQ?jgc㿈 Kɿj? |?M:MJ?hDŽ9zFoܒVBZ#P1#)`+Mg/d; 4a]k/琿>A)*}?ꒋdjC?Z,kfM vF+~?"Ѯ u}?%???w?]t\?;?!U K{)ҽ? |.N?@M<D<곿$}H'#Eq{4\`Cé^c,3.͒J/?P7V[Өn^ᨿ5=ÕeË?Rw1v?w[?qqֱ?P}О?B lz*? V'z!AW?-׫<?JSfiY{;=?Ds3끢?;*M>{z>JPd'[͔ ?Nw8ȮT?tܿHm d:e \>tXǽE@Ƚ`c҉?IKQDU)3@x+53 lNYCx sS4@xL|^8 _b'^$ʽ%;e;L= 0EȽ\YýcԽtY0˽ccqh=6 E*ZSUܻ5' m4K`rJm5w*st=dBNƣ>=. v=/SS= [竇O=Zl!=<=QxdJ=/>l-e=>j0>ZU>ѻ@i>*+TG>R:>ք!’>ܧH=*EjSy=:ƣp=颉 =~=̙9ӽ?h=9=F ׌=I)V=dbjR3>xi#B1=2x>o$i;{4>`.~=m[\GY>o`a=\#%r3>P|=R9 4>vRI=.qO>1E=@= aDҽ9F=lf=?:>T6b?3HTB>)1_;;WD 2> 5*Dө>UH XDC:þUĤĽp6Eֽ 4+ֽr@ؽWٽ%'8o#-] /Ƚ)ڽq#54ͽtf4=NP:9$v=r_az=̄7Zws^@0ƽ3*-] ս(F3)c8 XI2=N4[罰B=nNVTU=̾եy>=wfa&&2Z̶=Є=&P'5x1=JcW7 q(!=>3n=7;g=a=^Z==L½e Gnὄ]Q=^P搷=Eb#ɽ NQmlj)`1+~W0Q)> rr0>-#>q9.>%vDq%EN7y= a @xa>޸ ̂!(q7\=L =~L#> .wO>'>j.7cGזD @H{=bIm0>AKRa=|U(>xW=tJ[н ߧ$@!>>07L==>mTa4>1[=ܧTnƁ=[> ܐfPM!>Oj6G_TVksj^&>h = ' 6н./ >[1R}<>aiR>6Z=E$Ἵ"ff>FPU>D۝ ơvl9====j]l=(‰>x,lcf>Ҩ >P%M$z >8w>6ޡ->[<1Y >ep=&>5HP=%\O=M#6A?ǽF1νRZ=Z@N&VU=n+&ѽ!{8˽ ÓlNdJp,*s}\C%dۧ v/eE&>n2q?6|鱤ddCf޽RK%>l2V=E4=c=O;KE37* ?5E$/=%3Dǥ4uGZ#($ >qݿ=̐p*E-X= с=DK=I6=-g=RD҄=(wQ9=E=ܷ?=H=sW=+ۡ=(*t\Θ=^CN=󂟞=C 4_@0罻 Q{½@=s^B8xnJ}-==Jl ;?̽lS.=PPJ=c]g|=ǽhs_4w=$QS9(Q`vl[:[>:40%}>[`5&'߽}b>i[h)3>AW)08v S >А'>Y>-_BOdGQ>ޤƽ}"\tPO9>DZ=eTͻ 뛍>9z>B29=`XG+Wi|=>e<İ W=qrV=w8>D8`=|O >lr=. [; >P=po|>pm{y=ρć>ĩ"Ħ=miAr=j>=LMwν+*cŽ ep= nнO="еY:8-=f5 k(A.zԽ3d=:)tLP>A뜸boy⽛q_/=+,7ƽxFo꽀 4[ҽ}p=R=I] >m-@>޴u>e/G>Pܱ~=e"6>2l)̧{ tG=ygƩz݌= -婗\?,=xc(Z=Q½R_=#a罘k=t] ν<[ ,P0xu V= V խ,Hʈ|.t=+=ֳ#2׬>=oP2j+*wV=eM=ԖXk=}j3='£Ί(">=pVy%:-;4->4νR`j)Ɗ9%=!]3H`-#>P| н!H,mkI|e{2+Ry)I 'Ș`9xUY>[1w [̹>ga=jqZ÷b:^= :}?= G=j`=E> db:e \>4>= v=ԍ[>:> ^>34$ݚB><;4"ʱ2>YD*T`=qފ\>qލ~=r9:. ⽤5p=Ќf,o=+sg=qKa=#+=?8=|gI d y7 \>nƽ<νU40~OٽLs_罴$~sO7ޒ%Irjn{ sMvfLf""pH2GLF=athճhʽx+H.cz.|=/ ̽RstجŽq߭-A1Lѽ+ү?~GUZvJ^,?oƟJX~K"=Rh kE =~٭=Ẇ͙=%v]Y=V|=Iȵ=I9y)=Vsf>hZH=(>>G>i >K0[>$yP>ocx6>X8r=|Kv=)=eP=5=©a ҽ9.=,5`=c;0R=)U=F0ĚJ>`j=ng+>Cj>>0r=ʄ4>m=F(f>M=SC #>[d22~u;>s 23E f:$>BLxU HZ=r\J'HM՗|ë" XqHQ̽)Zƛ=mdKNڽNp ׽%d2[> ý^ ۽`~>nҽ<Ѱ½"U3RҽsxPBi½Ԝԑw=*=wJH戔ͅAŪ{&m⡽ʲV5Uz=NA3=E5I0=?;;*)=E"罆=Jj޽+ =V$˽\u<=6=zRw[=z*ڲ5S*tkd|Biz=s0=6DmkU=:>k=yhǽ"W6˽|yU|=0=pFv%.= ln=El=@=LA=D& ?t4 $>_J '.6B=? ,#>VK.>8? >F)>^SJ"T=*eb 0~R>aP$ӥ!@͆3i=Ș >3q\>n>Z.>M"ǓO~- pT=}PY+><=A{6 >D8=Hȓd~=[i,%Z` 6">Ac=о>x>'{+=ou;i@Q=, m+T>hqT}4G#>fN*4e(i4&>T0'>&<> ^ T};>!=jګf> LV> =4)9[$=E=8-l=ٴf=Fw3c->lEP>O >N" >dVR>Ds=q61W>5 ր=u)C>,+^= t= Ƚ*\VteǽHɀ=;R \ =aZҽDV [ǽ:q?:i^^rmh}uä(@!AQJ{Tr˒ i39̾l<%[㽳]d䗄Uv=XfÓ=<+w'^j^Y6=*:Z=U;B=ԋY؈ =ƉG tթg=6Դ9=215n?=^-.t=Ɯp=x)='=f=͘=Vx=ޥP=ow=Tr93'0A⳧^Mjiýٛd%=q}S=^ X3G{P=L_L$ BT[=F,J=c8BB½4@P+`lQpǽJ~op5~9=v13 >Ro% :fY<>g<7<?=滑?&>>&^2lۉ>ϯ[u%N׳Y~">da7,>,>Sofy >XC0 $*>1t I: UX= ?+}gi?^=A}e k>=b]Mg=BQF>߯% =36M>P~O=2p?1j >ػ=9Y:>@7ҘB2+ F>P_lN=G~a=-E%=?z%ʽȒRMý4g#mh=ҽIA=C(|橰]NJuܽWc_;콢4);ϻvp\&|Sr˽ueGn@1E=2AH`^=vv ӛԽ3(fЇ=꾧rC0=y< >?>><D >]00%@>`RL=o Z)>Ѹɽ= b=H<+Zm =5oXV=о'˱=+P˽l:w5=$\ǽ===VP)ס^2=;Fͽ3=(f<0`=*,2='/{=jl ~ʝP>o-=s?hxhrH1JPT:wz,Aµ񽳆?m= : }i!g'w> N=^=?^=?JbYnlGd6&KaC ><Ć?I"zn( >Hu@WBGq`SS=副;xA:n~Vt ="#+=?8=iI dS|7 \>E =G~٭= 8>E12^fc;>hXe36dI$>^,Bs(rn!'=Le+s={ #?Tl8ou2皁z=l+R~>0=\U=V+|?~M5?\x˱¾넹*<ô TK6Sfw>?zqrmt !?T?tCE),]ނ&о9u>6Ww-CL] >. 9`ᾴv ? ? ?ɰL?l0?`UG>ŃY2W>x.H?(0/gd!`D׼LBs _>#D`?Z=kG5@yx\5>4󾜞>-0Pn5 Ⱦqd> L^3?qN"*Hc6>:A *>>+00?y$^҈B)LKQWy=xR|mo4كB'?E'w[9?ӗg1*?uw:?ƳaE`~X>z2jQl5!?4%1Ⱦ():> wNnZT 6y=?901Px%[5>9̲4#S,&?r_[(z6v1 >4> lO!>ziV|?|N> >$PݣNW*ijO~6+hCNO!$n7G?FlA?UFF7Z(Jٟ>HA>FE$?(.h tnH?(0 @$rSnPK#zߙr>nfnY?9+}O3v>?tD?aeiQ>ȥؾܠ7Eibi>}]pKV;$ ?}` ~Dо&+>ETAྎG׽j̾|rCԾ ྒ Nk¿>~?a[Xd}@(تC| < g?ؽ-Bk8^F-H;R^?翬#/Nu]} ʪ? QFE;k:2WF`7 \샿^OkwS8Q?J]? 0?|.n?2c=YF@ ?Y Z˳k00DSi?t@mlz˪? cT2[\y5?>2?D ?~ :$dU?m|?A`?AWl[XK?S?z ?F3y[|gvھe? qyA?kb&T$?:L?pճ?ˁ26?"!1q[p@Yf?~gݿ9?w䵽?Q"?UÑWjer??n6F*FUrlɴ?|\rIzȿ]?cпXa?0C?|fzCƿ^1ÿ`^ ?_Β-M?kPaeKߡ?.˧?.@? ٳKp?@cPؿZ!I?|п\esx"??vN׿Pm @]`KHƿ\Tb&w;@= W?!?_}wny/D1Ϯ`n?:B?|Mr?Қꕿ:En3ȏ4FNPk Mܡ?6-?68?4??T ?a;pͮ?2?Oi,+R/?G1wmg?oxNY?* vH?(J@DEljqP.#<6s`YXf?&ȥ? *t㢫>wLXu2Ջ?ؕky@!Lc?^[? eP󿸌 %!!" ?c~?oXf?Eҿ5`M?Y΁ݲ?AZ{,6:@vzaٿJ 'wa?'&ƿ}t@<|+4!@UrSK64?ц?&̗ ѿ2F s"ĿC RɿlKB?_Ew|4࿐]P?AWm?޻?rిl ?G`M"٩ٿ(d?xGK?9L=ye+}¿`9d|g?@E. }-?0?"?u.?&7-|>w8PF`۹lBV?3;?n&{@?~2 {?F4꿆J3z8m4?Ֆs&+?`鴭!s?h5f?1+s3@J)[z(^>?N8M)H?.Pl@bՌ?u?:q@??ӟPY"[0nKp@v͛2P6wf@#? 'Aοz:/@D}f9?.32 ^ֿ gC¿*pMǚoh?l9pE9|Dz-e? W=?ZsΉ~?v<`8¿lx$?ߒn=+?l~6q?P+X ?,g0X:忺r4{1 lS*[?Pҭ?Xd࿈*ѿ޲n!?u'Ŀ4aѧ?U,?%P:?}jb{ف?;:q?5;Uy}[?J*#?ϋ?P e?w b˿>gOFMſ)Q?VS]?f=[?ĶZ,9?}Ѓ?l >?W25@(u>ҙT>fZFо9MO>Lm+ܒ>L !H ֺڭ%e+4S N%h>q+Bɾou>UNҾt>>eweBϾ'a>x>>>pY[> H> -"KqyG(ɾ:]W49{,Ò>頍 ?>LX4dl>L̾鉯:ݹ>kDӾ(?4ՄĈ&?2N€?J|>~1+?Mꏙ v_$~ع`A6zHfc?Acen#^u}? MCz?ϼḦ?'@"vk?lFt?6i?~(?53z?t\nO?yJҁu"[bpߝ?A mt?豾L?F?|ήƨuϯlM̷oϑ-p~?jm?oњ?V[rQ(NxLmIP&١?4{>CS/>1)\ Ԙ9lU>'_ޫ ?DY6wk!:l9?-)?֣7>nO>sd9>XfD)?+d%u@ CcP(?yDB?!?Q>(?D\{^=?D᛬9J9 X .?,^D >]A!⾼G> n E3?XUÙq}Q?P}>OU^>\=>C(]|hھ $>^a>;.s >hI2{G?1 _M1#Æ>-޾`#ͨ[$0N$`<ŋ>@/9u' 6%;EE>W/01G?괹T, $>,箾50>V >O(>zh_7?Ӻ@4Y:>V>Yzړ>VKh>y.>GYqA>~d+pʾeS6>vL3""V'?J?YFAP?\6х8>n{L->B5?"Ahh.{I>Zbu k c)?nk!F$> P@?m.+,?~,>P>>n@>]>p>oL>P@>sK6?>hf 7?,L85G5t$f\"#I 1 :s3 :dxZ),xƫP6|)^>^ ?nH%?;H?vq6?U."%!WuR?ɬ>8o? :?lOGjaF["&:?!8Ρo9Rz ӣu:?KzCtsE8F8/?$: s侷7X۾z +X>~אC?C-<ī>tep )V(n(c GA?`Z?diB:?>%hq>XY?ڰ?`Au3? dya>>w˪;6Fھs>XJ@'>"+?s1ϓ~ܨB?Faz9a"1Ѿ`lR)d:!WD`ꐗj5?.0=J^6|XwE5|^arX$98(t}>bHk־sQ"&kG ӀMRj x9ɦq>*fO[>@MQ?uZD"~68\ĵQ^U1`%Ry02?<%)%3?>?fk D?0.&?21?bLjd:?0-x4@?|P% G @?9"ƦS_@?^zWE? ltG_/>% rC"?L(ĕNA꾤ȓ"X>sCiaD6BƍU@%.64V#hJl?'<-m6V $5^޺?&?4?דVgH?e>y>!Q>Ja<*7ľ#¾XT?Ä1Ŧ4>u9>QĎ-Q?6@J.q۸96 ?bGl־LE? H>6-r\W>ᇆ >(R8> /Z?TV]Ldh>vN|W:ѾwP\">Rșe>L,*>N>uYd>( yp>4{{žF6cf ?p(qneN7+ 0??!>![/z>"J!Pž4{z?D6~8_߾չ} 1kK>Xt& 7/ԥ?Gss ?HleHҋݾW2n0%Ζ \ },'0O#Hf>sHTRNr> ՈྮuŽ޾"ɴ<>B:[h >6!1㾸QP>zVlF>6ܗ{%ˉF?g >tg/>e~JMk,ҰU9*>4ߋGQudH`=rRFJ|Q+W4uDə0iN%g>  ?TUZf:?H7zꄿ%>-Jྫྷo > 0C$$k>e=f6wdi> IR'>zi{?>r߾&k a|>q ^2v ?s@&/?3>̚:A?ʚqz{ X9]HS5!$/S, :?0c1Hp u>,?aH?Zlq4!yQ ⾪l|.þK%?Ym0*ɤK>vQק!|>rP49O߾b>M+h]`>y&9><F2Ѿ>h!+V9XELS?A4 H267j2"IpS@բz3{7@>BC&?lKL! ?um}L?2 @6HrJ?en9BD4c>,sԾ )S̾ {c>)@~{_?g@qSEB\0hX&>H_ ?̄"\?ѶJ?gHhT%)"`'?OgDTŎ,>%QξLq>L +U,@?U)B E1?YP2-&9?w{ cY? I?ϟvq>)Ǒ2E*о?PӲGGC>!r"UPsQ> a d>OW{|7>-p\=⾵J"x۫?=9[m? <ʳ?uH ?C[xYLެ?ޚ -J?򞐝ˌ)Vbΰ? Dz?Lc?%k?T?QE(>? %`?`+翳?Uᄚ?/qfѮ*Ǣܫ?^aXkë?2ܑmC߯Jɭ?Ǯ 27ey?fuz!?ͦh?{Vo=g^T+APZ|~?E`fuE 4 诿)xl'?h]{_Ztj`?w@?u@ԜݐJ?̘$:p\? hRkB@fzD蕭?] Ѫp?%TwneL?RDJ᱿mLY|??#Гc}?|Y",1W#Q 'N<^_4eP?56,?TV<=?iPP ֯ eU?kM?ٱ?v+Š?)mMt?( @e﫿?/%\Ĕ?1$Yl"(3Sdkyt3?dEVPV?%<?C`?|R߳?W0?%?MN)?*]x?OO?N孿7v?Ab*i?Π0?۞l &2VǺ?N PR?]?7gBfޡ?wx6H"`t=_^6>b0Vo?xTq!$XXtv3MӊR11 G,I2A?UO$s{7?S??0L,xӜ?NNɦRGbo0?:${? ;mk(W?w)Lpcf-㻂@ec ?u_Zκ ? i/g?ԥM?tnǑP<4`g܏ HF dϳ?y~ʙ?ȓ?? \b?XOzR*h? aƲbӒ1?I?˃`?*g ?ݯHA=)XcȕZehH} -? B]!y+rfp?P8:3>yD? Y]3]HU<hL?UX ?Bw~?+Nuaݟ?Q,`f9?mm7q$?H눿 kD>﴿@"ޅ`gl?Ӄ?{t??d][C鄈?`?&u?SH+-?'X?,}g쯡?`u/?PM?(ޜ³?am!?nԳ?#Rb?F5EGR9?E4e&>" ?*{8u?(?`yu[7,?|?lcR(M{?تm`Yz+ѿ @f{䃿FVY?.˿@goW & %^ͿѾ$?f#Ql[prhbJrs?4뜿:S/֬“?$T?6d5x|?Ftg!?7?=#?1ITÿC&?Prp²?m߿q.jP?էؖyĿ@">?@g2]0Fͺ?rbԪ:? &? G ?$?ZM]?z?!!4±?9&~?s g2?VAE?\4?m϶%?;BԿʢRm?N%l?Pw_i?co ?@c%_?6jS̿ GL/,oO/87Rҿ9 ;?~O<#?Q1?t "?Pv#@,%$1 1Qɭ*@ҩ?jտDYɿD@ [7ѿ~ u?/nп ?!Zڳ?xZS俁W1@6PoI!^ӿؑi y~ȿtu\@]֯bv3H^Ӓr @"}ϿCM' ?>cĬſ "|E@? [븲?W}~~Գ?3X?ʡː'tia} Ja"_(4[F? f "L)&P?oˆ?Ǯv<OJ7?qn恵?ޱUW?tH:?^D@ɮ֫?n ?Ҷ/՝?8],?B?)J%R4ު}?&6S?y?yU?Nט?l"ȰN0#?)b:%(?s2iy?z*??j鬿i-',!-Ԧq喾/vɚIICk=2|K\.yݸ@UQdjʳ?r"y?ej5?)%N?elbZ.ՍprbEuC ׳?o*s_?ts?!?P&?6ԧ?W$:OZ?(ΖP*U?i3]ͫ?CH ?L>w~? n' ?m"KfWvSjp?"Nw4?j&b? ? B?@Cs>ׁ̜\ [ ޔe^0"<!!?vT@D9Doy?Q\͖6:IBQH蛿5SbKS:KLc?|7D?޻Wlղ?w+~6?9&_Բ?_E )? !г?!jo?b{?X)?mR?@|{n 3>LMPG@5-4ٻVw?Zʷ?VL5?fE?V y?B߅N ?f.Ij?vL#fIĠ?N =vZ2C6Ж?S/GWi}yT?1P>?kD [FzI1? rY)B?3 &ij S$'hF&!9?t%-p?(5 _wW- uL@*|ȓ?fWbشTR$ٹB)L@0Y?ҊTμRoy&?wʷپUi}D?₌qSR?phF/F^${njBy#|0CDŽw1?<܄2?bѢ!>cl>/c3{C["" #xO?  u?b`T*`SVW?0XȞ?==# vH_F?(`w?:e>Y? F`n8?? \Xȉ?t$?A!?Fnʱ b?Dy@>I/@t?àTW'@(KFN+@b۱d-,߿rurZW$@Uqxw%bOesܿEG.HĸF o0RQf?vo Q߿Ł?kjhd޿ `lд9k@gN2mȿ`("0Ԛ?3?;F5?+"_?")碿?U?jԿ]9~? 7S?6 W}HoxC,뿒'*<";{@5a?mB./ǂUs1"@hT~32 @[5(Vtc<迏CvN @+[@b)%2J?L|г? ſD(?&[? w!d"j-Rh(A.?2;@*kMC0?=BBٿ j/&@Ĥ<0@#C'@JA)M,@ a'60Xk?ip-_>9U\2$22>p @h!?`p4.@õ,@-mAκHAMɸO @4 @ܥs ~KF@c0ry+?I?5nͽoePҿW$H2?+N/@w%=|C? @c TM@kTӨZ K.?>y?>l@Y-SY3?ّn>?Tu;V &?_-魘?&s + @= P,@d['x?-n @ =ͽ7?L/E< ҽK@g @0J.e?%-'?CS?=ݴm4d>٘&o 8y?uu`  ׀QƆc[Q? n/WKi @I!jUW?ov @8 ?DB @v @;̯?ؓ$0?IFܿk8?zwձ`(n?@4ߊEr@i??p3տ/;f穿`95Hͳd =~^ sȑ?4lI?k 3yۑs8\?8jt8r?-N?P[0 q?.슿> yDѾI|>hU}'ྒྷdMEiTϟ>X*l? 8cJ?9^)?lve)3?IU>(?}1L> _3x>a>ku\>R`p>ܜkw_#`ڛ? hi?^?>k?v6m( m1g?Dԋcɠ`W,?ܤ~?QKrI? ْIxzy #6?{ 4?%O4agFf_#֛?rNij?עcy?=XU?Й?-ʣ9e?0 T?+X'.? D4?aFi?0D@.?۫v>?(:cDc>tհ?-@$RAS??$;EKjS?*PS/4P?^8J{ʿ7WuԿҟ(>?tdrѿSă?ӮkR|$߽@%5:V?|zM@? P 쿿_}5?'? {\I2C<& "@*n7z@UY԰?r"p tAwp? OQl{.04Q?i;D$z,W?8?Bz}zx?jC+?\Ĕ?CԿ?D?$xl(?^?XCR?V]9?XQ@fп/?:y?we!O:oF~?0ˆmO!x10t 1xc?ƌIJdxt?N"Lj?+C4?(Q~ۣQEx?)Sd+?dl??hs'?,C9-?^{l@?tX[?"hUhͿf}u?m?<3>{{݇V1 տϢ ڒ׿8jR?&y0V??r3k?]MmI?;vy,?i_i?VW_hφ?Lgl~v޲@?\@bs\v?0'3?n_, Ѿ?'=\K?&?\@7!vC?W}$U!/qSaR\!||C?x!mzef/%q2>R-i.?5:?>kp?%+PPYi3}?$zd?- qYϹwܯ? t9?yU>p%Z?)1AjtKd_'V?x&`M?}' 5?,JX?v?RC؁'7{5M?S rvfh%[?e'8?4K?_^1Jl1"l?Gqw8Z?+mz%vUu?UEw?[bc?z̫?9?}5?;{J ?<ϗx?&>?y`ٰ?8:&%@!u,uT'}z;\&@N0@fلpf?뮽?aJz87i3UD,?̛ihܿsKĩD4?c}G{hpBO/@@Jпݩ|V)$@t.3U @˄erK} :?Kbc _eD-0ꕻ@k힥z"@gJa3V1A5 =e ?ˬ?H?ec>?ݑEV, O#GֿT 6?)?cI?4cKa-oJ(/T @1R-@JjQQb@{7~O[.@Za^=@}x쿮Xg@*]}ѿS4?bEOC`"@Z,wQվ~J#>?!G #@,70:M3@s燋?0W%Fٿ#,^z_?{,Կd&|W<@* !]ֹ&@|_e?56ٿ|{&mOqLn?ѥWP?LOi;?M?4qdީl&ɻ ¿pz?Ml˚,@A23 o'@-~8TŚ?7?JiA(?RaL1U2ߴ?QmW?Y[ؿ\6?!wK?2,{6 @GM^#@aR~>;fIF @)9M@ЄCLa?ʰv5B@kJ] [dB2F5&(X~?7g"c@fԳ.?HHܿ{)ڿ/ڣ?vM%{0s2M?! Ŀ/ 㷑?rm<IJ.1r#᭙?C櫄R??RjfӾ퓢[>).Xؾx4۾>=YUM(Eo ?hV=>e# <#?P7,?WǓ??4 6~>>7>ZJ K>Dt> >ck>-櫾\(1Q?jgt]p}-s??CQ߿{/q??^GґPA?ԧ_B"@ZO_~i?wcnjMX ?2Mo_s?3u|ц c?Q*/ ch? ,fF~{ޘÑzG=@j|Iث? ҝKvOfRwu5eJ7z|2꿹_;Y7 ^?7`b ^?H8"ɖ?5P Fǿe$NԂڮI&ڿI?b3UWKѓ?5I.ƿX b Y?a?V?^rB? xſ`XʿSҐ@ke9fp~.[ć?246y?/XQ!cE0?l]*ҁjv֠;3?hnq?4,y?ۺ6?ӻ?Zk?;<~?X#??HPr/- @?*O?+H/?Pk2K?cTi?&бvz- hD85y1u:%?閣F?-pzm"ZrR-v?j O?r/ҧ?qꢱ?;_$]?0bQ/%x.$ؘ?I>n^*g\p?,?9/ ?+1X Mt68A}5˘Q?ή?vО@{ fϝ?PM 8 |q_r?gBV>0/;Fl˲̚\ 7!0-Met)?zoK{-?|˚9A:.x?iS??kA?7{V4L=kpN8?tGJM?۝ڰ>+Gn㾰ʜH>%)>RKeS>93>NQ>žSfheF?7jC0&D ~22?r U"?kxeM?DԜ㒫N> :@놕>@C_PG.:lrQ R7b@C?Cm%ӢE%æ g4 ӾXs3?UJ>>6TO⾷L{ྜ4e>w1}}aj3Zɮ|߫? I\1?%?Sf?0f3 ?Y7iۅ2<@?nyv4ȏ6FoA;jJ\v75?W.j?=u<˞?pZҳ?l[?Q^B%?JV 8+?M?{6.*K?xp[xgAqeVE?AH=?X0ip3A. e+n>2;?x^9B2Y?T˲?\>??2n3?!'@ AX @}Gp^0@W?h x?ZrZ?rx_?2J?[0XmM! @rC@)?PR?D@؋ѿ ߾cI?۶-)곰e?!ݗ/?%7F-)zSs,?N>"b;@iQ@DbRV?ງeȨ"Z2?fe/s?^ ׿%@>8Lm}U?sHf?-Y>! Ὼ"?6i?@~>?Fq4G (N6?h;?s P/>Ѹоƚ[d>> )m->3ՌZa[}?5+{xvs?4V'?o?Md&?g?g:%?MՂFվ`쑺+>`AԾqaܪ>ȗk>/mu>Dr>K5?Yά8?>`>a @? /)X~>n&?u>!Vo?e t?`?(&@>B!We?rYԚ}ALed?2?j{_|?nK?_sV?g`40):>?$4"?d~zx䣿TϓAUp?L0NѪI?/pæ cmU?:iԯ4g?ng뤿чiݺ?HC8H Cm]¨?&/\d] 8>O7`<?hGBN_,?IDG?p.SY@ވ?A-6!?W?*m;U֧uG1Y?p|/(ȼ>i~Njh~?m悴0?$ȾFY꾑gI_-ľ0?TH;^>8S˽>S8!ͦXؾJ>>>9vY>0= A>YA>T{61?]UDVc>LM?[oȡ&`}hL>`徛` ?.dDנ/(r@<>F4>xz>?J0ξѠ|R2D<\0S s<0!2J d?LNC?YZIxa?q&cL0?QCoT= Wg5?JfhO#߾~EK>& p{,/¾(_#?c^x(;K[>t a;>`im% ǻ?nPlu>oU ?sWY:(: B5,%PQ$->~\|a\۾ּ+>?F?FZ1X?A>&Y4 ?{(9:?.?1C'iľ"RH?TW@A?7|BD=e>~7>}L#>)ŮfuVN.> [e>W<5?Ȓ#~NQܾ>d#>*Rfs>lC)?g~!Bɒ]mxQʱ:&T  $?Y#]M?4uP cz?]q߄uB NߘaJ R7A?m 5?1+_3 >\S,T޾Lv! w2N lz,VA>"od׾Bz>ȋ<ՆtE? )GI>]t^,>aܱG⨾Z;&>a;ZI$eڍ?t 2>d>mfrA?2\7^5ith>H+ Tp1ըF{>[ֶ("?y-.WgJ~,['9~Bk!(BpjUp٫1!>W KD#PB"bktW0.?<^LA zD?otP 1Ua޾5R>xA>>$gY-ɳ?'"y? fI|z4?y`4iۭ?IҞ]ݳa? p'i?H"g?z 6ѩ?[F_?9 >?7 ˗?7_Bw?zᒑy*II 7?Fy?0Zi~h¾yY?4O(p?_z iwIr`EXy,D=y›岿PĔR77 J'brc{?-.L?cqͥu1ʆsMG?_١>>͜?O0@V?;7*2s@-![#C&}q(P#ث?Xx7ifڴzm?6 HA?&f?:ΎP?w؋L?$r?sQ Mucn?\BE >(?"?P?bvNc`ޱ6l)?Oe)2?3,]VQj[)3^?|ˏbHY5Hle?Pf1|G뚱?#`yV? >Q?|k'me,?&+1??N?_{?/?[?}#b?D"8?`:?ga?_oK?SUT̑sA~k雓?dN Ȼ?|u0J?XuT?:?zrt˙?Y'd?e`j?wwq?Np Uj?^)޿"T=?Pv0S˿USG?ͧke??3ғe̿MV]?q 9!tz?,Ҹʂ?>T?Zj|[?mm͏?2 _?Z3u?:LP?-jTϿq? )!Ͽ^O$۵?b+:hP?|nc?5vF#Cqh?r7NϬӿLwH W'?QvI@ 2'*[^Lο i^0ۚ_k+?8ಿ@6 E^2?Tߤ3ŜQG 29(?gpx#s8a!uذر}p6<62PoL?Z'-.ե?[[&mpг?n!?}@?@7jTH=@2ʉ˛0AJoNk?Ҙ?HR#?a P??U&Z??CLv̑ D ۱o1T?-5l\_+{< tf)બ?/#\QY?< (~k<%W?a1?>oȮ_ʷ?O|'??1Y?hwMɻh:վMͿ='`?a0 ?d6-&%?c#ruR\i?t]=ѹĿ[8Iҿ"?P`?7^P2 Iv@20?rƈE?i \cϿ1x?{/N <V_AR?yKD&!0Pֲ@ˬS?1D N .C8W*@hkxijYR4:x?Jgu`fIĤ?.ܿ`{;bpɿPXl@֖F?# &o?i~@ƪ)ڴ`}웿ɫ3|P 7H#q7?uW丑?A&q>B>gC\>c>ľ[2Ѿi_>a~ܛKJ 1+a8<Ť`?ă]HxLe)2?̛f#?0pT?s{"?Q s<3?ϩѾP? G4??"?|02Y?dI>RXٿ5h-?PgSa6^?yr/&?JC7>?^Ϝ?z>۸>S 쾍RD>F_#վ[ at>gl>J_4>b>&$Nl|Lн"p܎pѾw",`,gAɶĝkvyɜ2=}0yf>ljBU>6d)[>T˺c]o[>! GĊaOg[>YbX"!BR[>:64W[>F|`aR>~\)S*EX>:~`>KV>!vd> %jU> d#f>ZCűU>0cD],sVh:hd-daz[>kP@d3l[>mX9cH,߀pW>a̻M>gzW\d}e$?AQVx:XWD#C[BcO4<Ăk7q p=býtgI"=9maJ=~({=,W4==BHֽ`Riٽ$ ˢ2=W˦=A=ěqyX/ŽkpaȽEܢ_!ѽ_;=m~\ݠ="B8>^= V= pjk=zj)rmGs=@=R7LpB=TM;zz8`i!0QC/=U,׽L"ѽȼ Պe=uۊg=(]n7=*mX潊Qa] =]͏C)u{TҽY5F?![,[=NVp=PG2= >>=uby½ ll=$l%!%;.fz8o="<碾='dŷ=1ge'cڽ-ztx.+'ؽ`D5ٽDoѽ:k2彰j= pv9=xt 븽U=ێX(0=H|j=551 cg(ݽ<(ȃ\H7J=QJζ빽*=$өp1j=%<><_=B9ܽtPr2 hPxc^NjڽtݙY̽\74"ʽn="1=Zǽ=+M=&5eϱCY=pM:۽|Ckm/=L̨ýT=&Х=U=35O˔býNoC̈́b=a;=!dLi}5;=ꟴ=]"fԽ̄蓡NԊ7=^k{Z^={轲=Nѽ:r:\=P|Cн]޿=uH=ߐ=ʾ{0-vڽЅk#=˒5=@G7f~h==P5>SSc[=F*Y;=Wٲ2[~elj=d.=OTtȁ\ >4w=Cy½yEP=;*էr=qZ"i콀 Jmս&g޽*$d=uWbx=6>xh٫`~_=2HP=C(vca=ٽEj=zf{ƽ[{/ݽlؽKⴽ@2]$Xʽd #ΏA=<; Wi=lUQO#3=[hE:>"0FEjR_>!X=ٽS%\ֽUBn"'=@PvUs˖:lf=^.M݇,S9 >;=xF1=`T+NGܞ=juѽ(a =T-/ = =HU=t[X=l==GԴ'ڽHҖk) pEJ=.=ݍRc %ew=%^+[ν-.K=xr=*߽`=qwrX=B!ٞk=$e*=νf?=i-=S$B㽆>=3 =Q >BH2>baGP>K޷=4j=`N=}7o>` = ǘ=d?v=B=xMB=n(=SV=@0/=Kl=|^>oO7A '%MY=$V =)nO=@nȡ>ĽkD/ӆֽc)e=_ko߽Ϩ\k,p=ִL[=t_=(;p-q{==Tv=H== N*E=pk)=b3g=H#%= =Sh=zM=W=oV=g@es܆@t:Ԍ=kty+=|`MpH'߂6 =!=SWf9=ȫX=ga&=B#h=>|=,=\PI=rVf+=wam=/B=d=, >oٷ=1x{)[9/Q==;a > kN[ 2} >T=\h&=[+=VI=j2>h*?M=ޘz͗=d^gj(b`>Tcw=(vD =ؾ=2+ؐ=ـ6zTҘ^6[P὘ӕ}>[[>bh|/y;<=q3*=a!=5AD[=h 콑|ցѽ#y^݉F`=ԗ=xOG*=-ES=43#ý=^B=|ܟ=0 x_j=\uR=<1<~=k06`% =˰/zȽCsՠ(ڽ_.4:'2>W?; rC>s[qAP> k=`39/=[W-ֽs=d,=ʸ$=ta\w pG߽uW=(E= v=,M=k==x`n?s}=%Ľ'DpJ`=\OC= NzMݞ=/ =CrD=Hu9ս* ].=B4 =ܽ$۽4c]>p8=$4/=5`yJc2~߽pC` 5=& Qe=X9=$%]lJ=`=*=|/zzluս\#!L1 Q=PAߧ>Hjg,6޽Y0N"Qgg \Wf=G 6u(pCuڽǴǑ>*>1+S>J^/>/V߽Ą4)=$q3=!Ket1 J =*/#=Pǟ=/ 4=:sj'pjގ>8h=Ld^i E=o+,p+, {Ѿ=wj͵߿zPq=Dhghb ld=<)H=I>о=/>꺄0y={ٽZn@佂*T9jW=4ztbJ#R]=!dY~/=S~=a2\<=NO >O= >+νFJH:عݽx|=u>=X{KCݔpݠ.=0oA9=»lv=C66=: T=*fu=l-=B?=O3 y=AV65# ԽBy⽘\1;޽dV>2=r󃟏=ٵ=R$ >iY)ښ,Xj0ƚ>krCN=b?1m%xg >~[a?=J ѽ5Ƌ7=zeTQϽг48=8 Dv=?|=Ď=k}fJ=潠%=^$?69tb_>RaR>/zweq=__Z=jD.Qٛnkֻ(Ve 5սw΂\^P;~CdNP =`YZ=o$ݿ5$F=3!==(7v=By2#}=xq+^$=jqJ0kֆI=2Gy8#h?=$^$Š'mv=M*npνau%$u߽w^pP!P1U=,#u긵= _ݽ)5K=JA{_ZX jXޡ=LN*b(ݓڶ!>- 2 >s5>Y`sõ8<35:2>HY.5Z&v"\ M,7>5T::;+>(s=@= k8>A2=H=`u1UtəX=>**#$=T=U;dN)kd3f~f3PG[Z,>h#K>xx,>0qX>@<' R`-O[3 B41U=jyM󇯽:տĉ=q+9=qIu=Dŷ8>f5+mW4z0{"#V ~}>sU&>gS;. H;Lb "=Vr[>, ?>:4\K2>g͖vJ\ I=+Uy%/>RE/Gah+%>͜P?3>@ƺ,muH> q }/Bf >|\D MY@nv<>~>^O}g0>P]'t 2 *>Dޛm0Dx'J0kN )"*CW`29b0>>n-Vs#)>ZS;>­c->~!>sk>Ypjq!(0-uB!>ݻy+CkL,># >ΤH y}08SE1>Ј-Vo>a6>~2.>>2v*6?>:>7, 2P=3ѽI7&>3 =LYӌ=`>8a >UM@>DDm=ýx̽AȽЏh >l Z=>5Cl=5> "xɽԑ(,7z=$Ɲ^/.P>8*Z7)?><>X^;> b?>:սWa<Է]&Ͻ4k ;>Eu0}s M3>h P+> :(&>-c {iS'$>^;Ow >cK. V}B/II B =.J8C-$>- vun&>%߽Ne4=ROM2!)*>gF>?>d؇1>:B>)lLX#ɣlx^^=ü[-A>N0JٽQ1U_P7>2c2>^  >Cm5Z1>@c7/q*>v(鴇1mRvN $>hO?`Nf&T' =jbq=^_r =cvؽZ6GHk׽UqxrHf好y8 rým[$=qW=4z=iaϮ{й=KoU?3ƽ|vjp =,;iK;=Uzx=DJܽ,jV]{Le״4j {}=V =6ֲuod̽[}нnU=~gr2=uŃҽr=KG%ѽJO‹;g+I=h/|!}ϸGG*MTP ҧh=a=[S=ҹLS={<ܽ8P=2cP4=U(E=.ʶrgDl=R=^sԽ-…'=^Kq=^P=놹\ڽ/•@Z=A'=W8nyнvPi#FJ uRGʆH=ȕ\陵=쿽pRq4gϰ='½`aG ܤ Җ칽x@,ɽfľ0=UɽH7ƪ!ʽTYOmI1J|<㽨R3-d=&j==U\Z(AAz= `m =G~Мղ=Z7=84|ҽ0.h=7MVL ʷ=ƕ$ƽ~8[Y=FWwu=4c4XAWOsؙ>ot̽QhʽD,Q̽P㏉ ۽|==(]J=}={U_ӽvQt=B>wӖ=^ה/X=uJr5-*Xbϰ( =^_0BԽ䕳̽AĽs=edzb-0=8̳ט=87ӽ}/=.DG9%3yG/=55)<$96= \Z={RMT=&:ֽNҶ4b'[P궽'<[jkHŽL5Rǽ=(n6#'==J_=^]d=3cݥW5ݽ'm:WW{>Ve:=a/+:z8.GPJ/==_=9-`l=X2 M<< 3=%vA?ܙVÄH2feb=v@eΫPǽ3P=*)',;={f~o4;8('=`n=n=Z 퀽FK6.b=&pyh޽4-pYVF׈Qנ=#^Ы1(蕷gfB3)VYg\d!ca=LeOc[=Ϊ ]s= F'ӝ=_ՠD=48U1=968=Hm'L Q#sE=}Nŕ0@na嚽)Yg=G^^Wk tۢNΕձ9 aـuO2RgjV_!znB2=l; lܭ=P 'FU6Uh^9j#6Q z̽`L/XO=z(>ͽۺ3սr)=~ء*ʽV\j=e0/8z̽l\_u@=C';@ƽ۳+=/M =Be =]u+or癱yi='n>`^!( $%o9 ˝w=uh,n=Ա9v IJ tQi>V?Mπ Qqx4bnvh> 'b(DRt=~s >iN4 >V ZŸd vc<=mW=?>X =nwW\=IٽGJ{ z j%&$kC kBvVEwYֽvb=T$dѽWg=4 >edU/d.7>]m7ڽAu®>K(SF= x=8}X4N %>d85 >9@#4tIoKSd= F<\3=3[>`4l?Z&HQdE^L/4_?yH}tgeQm)[Xj|i/"Sx+6ZM,P`6D@V>yqiß*,M`|T><5fkj>Q3E ,=n̅j>л8 cYi>@VV@Q w4>٨%m>t.O7^j>\pG['j>ֲнӱ>t?- Jqb>@ďke1g =(T =]]>h9O>v >Q">$)ŀR>PZ`>A>+Xڛ*>ƫOCo=]x=:Xh =pnB>b7cfŧZ>㬃cqbHj[8NU>Dڗ/[߽NCA=RB)Og렼T\9>C:>Åjc>3Ce"g~[=ӳJd>z~4^'=e>ZOI~RՔS$ >BBlM^>y4Iib܅PFP>w/A/d>ߔ+h4>S(i>h3>;(kۨ>N2O=ÆbC[5'e><HI= >X_>WTI>P&6R>2SYob>>09M\ڄ%qBFY/Ud>F ӥP2EP>M2v5YYtTmC Wml.x [>_e>׏x>va _ _ XPt=zM>c8V8> 5$=,=^п=K~9"Y͝NVIƜ H뺳=Z =bXCRw=~{co s=XȅП5=(Jc=K KY=NcW`H=p؛U=D>:=Pf+=穯@){=k-y=FF=db,3B=X>Xy=s=KM0:d@[>HiD|f>dI]U>Tۏre>xΑU>wڲc>vXU> ^>Q\CW>fx@F>2ʂMZ>IIjͦ[>g庮\f[>pGEb_oR[>L 1,Ydc([>pO8~ë=?r=Uw%*it=6C?=G0vWyRj2F?ֽK)ӽ,,c6@ b(fK ҽ6Kthb~Rѝ=$Y0mڽxV@Fw̽YLP+>;2‡>=(%>J1//t;>ň<(>R _-3>!k>mL?P=@u33H?T>Iru:>òS^3`(0h==Ls8>| 3pSRG2>ڦc-)'8Gi2>I<*!*8>>24!Ŕ)El">:M-$>Ӯ&CiY >ĶmԽj==ؼKH<=˷h=s26:4pZ3=Ov4>8meb>d =)rI)-zT}>dK=Ft2>1xC=䮾;*J9>e>ӓ=(`oK)>S=kr|k1>:`7 >o6Ma Z#Kuh9K t9Kqkty1$ﯯD.T7> &%D@SS3cc_/>T ?>5oUa*>K4,Ͽ\'`7>9 ,>1>^lcfI$>&h]8jP4>3 HD!\8>!Q=$B= 9+Ј6w&=PZh{0Yuo½y2vuʽ\KG<= U nL=S 8=V`}ՙz)8=H9Zk^4rb6#Q=ҁ=޽@6x=(DTإy0I=hב&)=uXb=/ p j9yx=2b+8vjgb5'D'A&w2@=Q5MퟬD=8}eQ>mtXe?; ҽivܷ=&u>X=`!p;@ +=J=ռ; g>%)>`oIg~R'auЭy(>SSZ .SP`RU<]>EW=##g===$r=mKj%Ą` J+e>բ>H>B3zCN~Rre=7=Z,>>[Bp>*h[ gmӠ|f[L,ĺ]_=ol!D_Zl;->XP=')C(%t_'ϼ7f}ֺk>P6ȱ/m^7>A$>'=>a/(R>:vKk> 1b[>/*d@-/*-1Hd3-ԉg!l(ѳ,2"LeR~N`9,X}g##/ %H /j>d>U4UC>PՋl]>X~4i=Ż$#>E0bf,VT>PtRf>@)Wb>@z85Ŋ!> =W >k0LƞwϱoG)=m^A"93#aPwR>F}j2콜tca>mR <Ս=Qj.0d?v=P%>0g>7@ tbΝ(>@ }U&e>T6}|^>-l >7-64-ka_ >-t>@]\W9Ѯ=1i> H[RߊaT>ߐ8ӁIg> R,>>s=݌ndHRG#**E.SR>T\c>_>@a^I> ?Yu.\>іDԸY6e2f>.yBj7f>Q A@=ink#>GWn5>~诃h>|"DO>2nfe>䰐W>C)O&'am >]uMٽb` Ug97`=!Ÿa=S>>ٚcLti >vp>Y x`'$MJݦR(Td ~eT#e=[ʸ=\R⩜=M_=ٮ=N= /1=*]/A=6Kiwmߨz=ڝ=aV=2f==D (=v~ϼd= [>XIWR,nm2hdx/\t-hȓZ49y be1&H}zAba1~UKKQ7t^b1>)6b'U7R>Hc`X>rp3udL_|[>A=KG^ ӥiCr==-7= =-*=rĽ"B(@G۽l^AýhRۀxxIнtzݽK+UqKǽ7sWgؽн||;ǽ&Ж dZ!-_n4('d#>Kt6>F >,ޕ dԅf>4v:>I,$p/4>4!uX1p2=υ߷5>^ǐ;>bʥ:>TM ?>H>.o=sT%>1,g]q:>7eD3Jؽ)uS$:>2~1 .0>_b[@+r'2>ND+Z;j8>H1Aa$)wO]!>4}FE>b=ky=lh&hǽ_* ƽ&=uҽpD&ýz&>o@>P$]%>Ķ%2ֻE JzF=:j+>J gW= ܬ'6νf5d>ȸ~k?J 2>#K2pynG>}W y& mpT>2K_BA(>7 W8>WE/> 'GN>8WG@>99:>bJIMFE>4]^z,J z1^Ex2 .}X&p?)A2>BJ q1[0>~H$,{/oS8&&2o :Cw0>, !+H><G|'=;\NǹX06=%X]*VҤ:=xH=mDfLs/ME=`7hzM>#թep=aj$\=5=&=aE=[̣=d_6d޽"NooԚBi/Aؽ/=ڕXHإ= = TdEfo$T|@7 D #bνl7 !ݽ"lнSJΓ֠޽RJ8&vo+dԽrUҡc½zF?RI=.Oك=zϱƪ_V`7ŽǞpZȩ޽2ĵK"0g½Od潶_]6ғͽʙFٽ4AFuŽ{sZU=`YK좒=n5JȌTa=]f>GgU>hŹיdbfY[>g__ycZXG[>J1`qV׾[>b VUȤ\> e _U^Z>DU>ksX>+Da>Qc\V>iֆd>ҤwU>Av *f>*u'U>8f,_0h d[>iJichZ>aڭbLV>Ι`DF8H>:ZqYvm7T*4 P/nZvBۣaArFcT.x3{\P gHS,SmhPT="K߯=x/r= /֣>ۄ04֨~=- 򠽜l=k!=)3=~38h=km/Oؽ yGNXt׽+u޽qQ"P Q=ak0 j=-փ꽰䊌=v^x_Ӻ\Q>t^L#=c2Dؽy#HVoGڽL!ܽ9Y^4\нҿe4ȽqQv=Y|ýaoz=ҟ@$=y钰]=2pGb۽{kn?񽠣6=p52T쬽U*Y:=gX=G$ýv騮2^ m=I}-4=F£k='-bMս/f=*9B*',=e(4=̽N=&̿dl=_5=>a9褽=Hc(bl2l\=n7.= k[Ti^7=7@Yz=".D =%I=^xԆྲྀ<_=`[4=h`"@Ў> FpнMpp=pԴhY>=j+)XWҽZ̚s۽,".A=&j1]=L:+m޳㽊MPjch>Eo=`Uf"䷵a&>7G =XѬ˽5?/:н`Fa귽3cɽ#ַ'=QB4?=Q|ܽ,)>=8[?$ > όWg(q*a\q=ˏ'Ľ=ཁrpy{,@;)##нs{)D=67ؽ*Jd=j沽@^=(St1{=Š!ϹW,HČ{ǽc;]=Q8g[=]=o%T=40 ]G4>mϦF>dY=D=#=JsN=abi!LH=2ϯ2<ŽWʩ.ϽR0ӣ!ν?=$𾊜=C* =oܽ yC0=~WqA'\>2n=b8ꋀŽu/جڽAܽ?Q>`7+vk JٽĐó;׽sۑսnh^H)G=79=Eh@=)=K:=Fi=L= N=>{=r>1NI3 - ͽs(l ={a ʽXNGx=Ű~ýl8GO*>[;=&3=m;#=z^=10J= @L=l=d?.=h@~*O=(S4Y= E.=H$88v=6-%4r5Ľ%q0=Bqѽ3㽬bhTBŽE>W=$k2̵0UP=rEG(Q%Rӽ8кŽ?Mνy=}`J\{KU2TH=¨=d't㔩= ݽXusǽpo('߽9{~1=޲ؼV=U =&5iʽ^jZ⽐Go_]=vflٽdW=q;h׽+x =^V%=z7\㴽O/v=OL=pyڥŽ&{ p$kO5.q,= d`ҽ-9~o2ڽ5FB=N~i7AO=Bdc=(ɚ}=?&DĽ|,C >@(w"׀ k#v=ί_Q¿@Ja>齬 G=5n.L=Teuh=߸{.0=fOaT=)[Mƽ|FJ1=#G=& =Iev'=D Ym=7=7vL=1KJZeS?b[!5 =daa=Ć(ҀU^=rN⽾}̢=ͽ![Aܽ-b=TeTPO㸰=j=;RCI,g$=消H=)qѽ u>m#==syezL'$y/wHX=M=EYDp >r9=kuM/\>U= =T-ND=hYh>@˚e=l͠í=h@= +=SC=VT-= @co=>Ғ={h2>*wkKx8X=: …= qm3=GvЗ=Hd*t bFнLV=txn.?lٽ&I= <A=8xpγ=6" =ؿ.n{=܄RЫ9 =&=1)%=?~ѺB=$ RK|=s=nWϽ?jv=J=8n>=7*z:?踽E$=DT=i j=~<{Q)sxPe> <j)=;}#߮=H= d=x=)o~= @b=Yi av>kl=(GܦcS=XjvC=D2Lt=޴抽v,͏c۽]=>Ȇ>Fe"$;* =Pw꽽\N=9 A_+18_8aYA#!>DA>X=[ ӽo3&eL4i5z=mZI=6@פ/==x!i(%b=Hk =>7v*=(1X}.=v=JYkWC=sóuX@WsTn37dĽ.k޽$T;.fEùUc>y)LSN=;~̽&>=\|Ua׽!( q^F=\/Qa= Ectn&׽r'=@D;=;c=`:[=[↘"=_[zwٽMY=x0ýݟ:`]"!S=C==yjャTx6=0u=*c_=J]}:5ܽNdft=`VT n=>:9ͱTCֽZJLx#!>lϞ=o?ں=> Heo@/G(p m<콞p:=x-=4=.x=N=pS&=mQcORHQ'ٽ×,$h@!==n=ljᄪ >M/0Cv2gKm ?=m_sM彟kV =⣾>b= /s׿=*z.}IKG=n!YLOk)P]]=$g8%wɽ*`=N EnYIȎO=~?Ɛ>=^8P>Ngs2=?ܽJ.f罖醛 6=f]iH#==906W!=a|t"= 5=+Bٱ>`I=i-zGƽ2ݕH6,[=-=jp,=彈-!m=`ms=vW=ʝan=n_Q=LE=U=HeL=v/׽?YXL2ޝEYཌྷ [=~5=;=s?g_>Y~s zFQ}Vq+sG>7 c ChG=O >]>l9o= j%ҽ==qSX2|4zGҽ=.)`=/˛=/wQ]D)C HK0GCH"*ݽfZiw0B὆*A10Oq8<=gZ=`8 ]:x=N:EX=p=vK zt=bdMm.q=#=+u2r- Vo:[^*)#>eg6%b9og0>XŔv>?Zu:efXr3>h7X|t$ 'k3>!_5Wb4">"02z{=6K|n=\E''أikS_ڽ:T@;)G($PH! H% =h'F;aa) {|1GK%ZQV2> -"K->}Q(0+>iq'ܚ>>GX9&.]`:)MI{-0<#I@Aҧd,P'H޽1p= 7<=GF9=_o=@9|9>ggE=7^^1bUs>,;  >.#>@/FՐ>7kd>¬ w,7.Gx>$FEA>FD t3>BFz=i[kzrq=;֕1 (>Hӧ3>>.;,v|uD>>->9g>@>ͿR=?U@X>|u[19>}陝!.K1!>b--hJ#}C+1Զ6#)~֮5J{3>.fc0$BH^v0>Z"3>iFIС">Vʜr>ş+3(">C U72d2>2D>[ gU:d3>Hk>y{9>\01:> (>q8>aD11gӕʽ麿y}(p=j"T=FwMaνVZ>4> >?cg{>>˂N4=3v >H/=>TRِ1>b79(l5[KQ~(/';f>Y'l <>7 9>)'!8>3aF-,>(=㹁I_܌&ٽ<Qʽ<>}[0h?( Yl^->oTRze' >2Y">\? L6\Oj>nB3AO5>uQGhkC@Tt!0ln)>`*q06>uF1 bx)>b=Cu۽5սw->lp^@>TvY>e74>A cl6u\Y/{9O&u뫖=2~4+5>|SY@2 =jУ?$>?ʚ'.>0@ >'92><Fu/>4_]6#*&>)V']DB6'FȘIK=ӟ=-Rhnc=Ų r۽]ftUͽb|lXDJ=d=؀RV=T){e=C򞼗w%5)c=yRνFrg/<==:*/߉<ԼٽBE4V~͑"b4D2q=`e=,Wؽ,=@8g=d^}U=7H N f(ƽ.B(=2d:|N6XC< Iχ=&$ŵ=C]i;Y]mn=Q9gý$nꕜϿ=XK3=0ZM$= 6=f6N uOa֞=P|W 缽>$ZDQ:=lJmm= P=E.=&n=;H]Ƚ½5̽2 hJؽvW['Ž`93t= O=ōt ]L?M=4C :t=(ݦHVdBozNɽtw=G<=28W&BLak=Жk=`Xʼ=1S=lǬ7x饽#}3g=q|ǽ&3H@|}ͮ=O𑲽 Vn=Ԩdǽxʆ$=e$~Q=Qx^{=Ľ]ПO=-•2=*HDe%StX"~ǽR"8ҙ,=L=`>5<=R Eb={CXPmzk(CT+=[cUAXˠ-49P - I<= ,VŽhpTȭ=|U$3e"p*g˘,=~>J=4+=f#EнV2/ 틽:4᡽;N_@C=7G) 4=Xζ=J!=oe[=UGX=@f6ή}*Wwl_T3-Ц1ٽjuX4ͽv!3=//!.&ԽES'{=d2K׽jb:ZɽMR*ǽ?6j= =p *vOCխ=Fwm⦆#b9=6MVa9MŐZS Z]V=`ݢ۷==zJ/=Rg:8igC`g3zB0,5<&#`p+&>O; ?MqwD>cz5@ğdԖ\'c3E#>_)*fslR"sm#)5 $ě=\ez/(CnEv.8qnrԽk=YC^ =t!HRw$4v(P=sgX>o=VmG>2-44!Shv- 7G#>G^},⽔QgI-=b^8To,qR">Ḿ2>uQ&>֯ ͅ>ˡc=8AH<>]wxHjTd;JQS޽ D2>H;8hqGcOҴ2PTZd؏g=?xY* G#>X>>TAl Ol=@ؙd *>\uP@>/vrzQם! F|2R>8tAp8Z>JJP>P** tM>>l'd$@>e=#^l8:>[n>ЉV)w]ن>`.N>PKxG>)q2IWI>TueG>@픹_R>>H=']>axji >">G_E! >{$>#@Uj$&8PG>R Uρ^>:>rN `p+o4>A "JК7~0b.N>qj>xJ>sBH^ȌXt~&rK> 4(DбOI>¹)la~2X=v?A>!C"7>\i~L> r=P>櫵>x h*>ΗCf>> R(*F H>|p4> !&D>m0>G8>lG>z)I?J { žIL#,5O>^Dt+9O$^@> DjO`9>>\jv)>6_@l>ZT%>F(>:rk > IkD >3 LqPV9=!>[Tu>RP|P=V=dc=}p'5=:J<@6**;{V">fvQ&>$jAOaf>cU>`Ide> \EUU>((Vb>|pmU>݀Z>#? \V>p;>~eY>5WOfJ6[[>Û 2^~R[>-5b`V1D[>k^ bdOD[>u~={ylzlXvnȽv='=)=* Ը hF \؈VK½!"X=:8=T=f>?="P}9=rUu}=M=b=V ==[;->N#I>AŠ/Hg1> ] C\\z0xx.>>t*>ws;>A2%>̿_/ =n9)m1y )8>/c 2u=ןB=y86>|ŵ1"C0>.7Kg4>L- b7>wl(1ܷ;o&(##>r$+">*|a@1o,>bsL ޗ Qmk3=  oӑ='X= f7ΒFZ1fF1>p?o>>`>"B%"=!KB G>k=U8">V۫LR >p=l[rV:>`#bI> {ݽq6">HLW= ?t3>u[ >YF6y# KG Г5'U&?B7>[c>Bi8]'4;>}Jx>Ȕ#>fniM&>,^!q&jV_+>N'+'<> 1>'45>-.,>iN|r?[6W ;>8-"k >X L=1E=65]=W&N~vhS4ޯQMT5ߔ!48rlNwtWI)ƽk%h=Wd>(,Q~ JU=b2=4o] >I>j-Ygܽ1Onj~qNQ㽛0/ecQ4H?<5B5G>hw>*Lbsh3>p$44,ǩ$i"3Ңe)t+H>N>a{V9=4IP=J佄.9'0> q#>s2>C) 76K{S>|* >pŨ;q>RcE>_WEX35f4U-K ;=:A ?>$tE=,=z sR>Kuj n,&>>Q~tqH"X=)'>6C>xsFGD5>>˿nDU=?hC^aMW"Žtg'=8½fC?+?y=TZAB>,D(Յ?U%+>L/2!>xmܽNfFD= L0d=6fgx:>wʩ?F>ty4@>b1-2>΁>t\'!5粼8Jܼ> ̗ƨ \$DHޝ}]]&k/EG]{Y{5>=#A-V E>q-c[K4͹=6P*= E=?NR.=K^e+{'c=Lit0tN=:"=j=JP>NNwHC/>º?$)$F>YE@<*6>ۄ>X]Ff1?S\U>6.N5MgEG#ٖ>u0+>ъSBQM8>h!!;l79N>,=LG] B-sL wJK1E7>|E>B (C>i.>l q&{; >)V{E> 0U"M{e>HN73>sR>̰F2>N"hN>H?:> RGAtj >/a>>D}{`'U2i2'&(>'>i'G3>؊:(>+0f䧍.>迩ē $> H`X2BR/8*>jQ~0>v"8n = U<=Q0^=֍zt=V=v==Fqt!=co=DJώ=`ܡ)=~@s=٤=,=kEVtoW]T'=v=/d/[><3,./.h&"w1Kg!>H'bNKRFoS>_2cho7Y>DB4W|dm[[> ޾`OB+9=)~Jܾ=q"7=h'=wͤF /J6=|M|ȽZ:m)=?=wЀX[2Q=>ؽĥ>vshdŽpMx=TYMqY#œ=-+Ŗ= szQ&]c0 {IbW6GVa!>HT=-'Lq> +5O@|᭨&K>M߽pQӰ= (>0Qԋ!1>=b>(Ep @>߈,Bh=S=%RT= ?Dy)8>kH/5 T8)>.V*7r?jp4>.Ž.:4{Ю8>_s1ʥ.**b >F蝞cB>(E =>Nw(~k lGvݤ=V2B|ݽGhͽ-yQM,">@Wo<>ެ>cj0 <佳ueFTw= ~I'>hc$,=#&x9x>U$j}@@?׼*4>PU>L=GZȃЗn.W5u-> HW8>@M&)>M1FI> ՎG8> a1>TE>Բյ' ?":sJ/YGhƼIZm Zyz/>Ux1 8{0>I2*$P\Ln,=ʒ]J;%6PaA@M& 5>:bC"6ڏ>\:)!%I8z =yit3~\QmxQnI˽=lW{=9cqB=]K=I2&p=l|/=W =l~#9=M_=<6[<̽ࡽFo% i7 #=c;\C7_=$[3<_4`cƣ=dA,od(⯽ԿWR&D= ~}CO:=EP=|ɮ9=P= =riޗ=_2W:wA1S\ .C]">uo:sy\r=ӳq>o=YH=Ԭ=0FNĽ =swD%=A=C|=.w{=^63=uI࿨=i_==Z\2=⨏ 6=:O=B`V={6=V79=[Md=Oԍ=\Fh=Y=xWvx=I=U=ݩ=.=vXa=|zpw=&\V= ']=·R=c=}*[e>ţtZU>4_b>R]ڏU>䌶fd[>k/9ob@&|c[>}AH5^K [>932INhe[><>.YY>8Z>QW>%Bx1%[(g<-T5)=~L>e3s"~d tU[>~cjOY>#CubDeS>o5|LO`4;';>Ann VPKbvJKw`+S:ݽ.0;UoA&{=D=UiŐ=>=ӱzd(潥L^4R=9潓NNԽۨӀBR=Vj7==P>Y=#\96f~![=-}=p-}]=Lvª(&=YblSeޘѽ͟ȽFmI4nk=wI=jɽ܋O>I:P^zd=aڝy>hz=@HA=D!=[K=^' /+M S=y=tϵnϽඊ%ʽŪfXNvD>O``cӽ4F f=W<֙=>O ҽYRTbz: ֽ&ҽHEC=/&{F=1|8i|Rv'|W=#(<=.f䪻W`=Vu#Vy=^HTB=0ĽP7 9t='=x= ¹=V=ddW~߾~ER=5'Lֽpv=mW =E݃5==h(t8=(YTս4DlG=4X7tݽ+F=)Ddjxtν^R{Q=[rt1̽?нlލ=dC^ >L &kX> 9=c ڽY)K>a$SHZ_p>ARu=@Н|m$=._Y=:A9=mǙܽ@HV)=;^> yZ==5=1Qp&˽y/=UԽUTÛc8: =>RŽD?&=`b7Q:TH=5b0=8]׸={F l==P %|YH=;?R?nc=BSRQwY=`ԥl4=-=tS=z=ug=û==34|g 1HнY4_=Щݽ=: m'yP=VWӬ="rn{pƽ:*&=#ݽ c& =0Og=mfdb5 =_Ո=)ⱍ(ӽh=#=GF϶= &=*̽8L:A=Ox{=d=,HnԽV B= 4߽Nb8d佐HK(=ӼԅqrAֱB=Uî^3=r&M=.SQ=HGe滧= ̽5`f=v?=h=9^c=m]wXo엽 +Q=2]=\зrqIƽyʻό+LԽPýnF=Yp=oV 5]=bսKyXnZ4I6->=#O]=?=8=N|D=8P=5rT=ԡDfsDg=L)L=`0:J>@I](=7[ = X,"㽃7uu\$> %YJ-NĽ8e=ֶQI]mн rw|c=q=!{c4R9=tRG؏WLӄf_fӽZ=\<'=2"4=~=zOa/=žC %u=l/֚aҶ[ ѽLZ=<9?źt&4%=$q}J짽M pʽJyڧ[goGŰsrz|л=R8z=ƁlH=i3?Ľqڼxg=k"ٽ&˚1P~mKý>sP-"d^}c |ϧ 8_=~@#pGayֽD$S&J*=+J#J6w=Y=Nd轣MQJt 0fؘx^6EuD=A1+=S==P_s!ƽ֗"ڽßRy2|=\"<=`=62 %)=B}] 콃^S>fU>z>>{!>~I Qciҽb&Fի ((]Ľӽ\汥S#  =zȘ=첻ME^Wsߋ>`=@OY=>ƪ+ZtzSݽ)t=x>,=LkUý>Hd/Mpq=q s=ɋ4]5 a[B"oa<=c)t|Wܖ="8=r Fʽ<\J=@r:=ƜP=PF&ң=@)}=*=@| ѽۼRU"Aj] B!8w1нVC2x麤|YW=Oq,3= }=5^ӣN[kཚ1=2ċE=L>l=O罁ߩgͯ=\6(=]{=(em>Q7) TT<=Z:簽z2=̋, =#q ׽_@=z=RcԽhA(.f$>4>I]ҘO“_|==1d$_'>ha>>I&>+k >$7C=I1߽8&>UeGA/;te7>ddC">7rI>]@'>E >E>j5;7I& CK,pn2>`+>IԴB>^>+=P.|8>! '>*K3Y-tHb&>8d  QY>A>@ybZvl/y+*:Yڊ=wB{%'=;o8+U/>OzE>8hAv@2[9L)VJa)>'uJ>z[hN+3>{^d,v5>L>ۆGJT4BDP> SkY8>vN07w <ﺸ:״8w=k3 2= =u"R*нwɧ6½#d =4#l=!n௽_Di ͽb&C$ݽh w=5g7vPs潄x>=нP{>*=0$T=P}C=Sͯ=rQ2_zx=hx=t봵= H=|W_~4vM<=܂xz嵽pZ]kmIe"F=^P=0 ^=W觽%ɽ9d> 'b3>=3=GPtEVKݥ"=ͦ =, ù̹sڟ=^ B3=IϬD=p8Y½KN_E6=IUp]&ʽ)ch= $$kV=rg=eUux= tEpZ*$!Qz=t.Ɏ=[}Nk= ' p=0;ջ=oww=Ԏqrb'"S>K׼M!4Sѽt(7]3Oq=ʫҔ=f=, =L{>r2>W&->;æEv6A`"TBmү@C>5et:k*b@Ih~fнYo=Ƞ=j{D7jh= V=wRM˧O׃3w=> @D[I>#G2>&~{!0#>DDgϛN@?) ;_m 4S>~%V >;y4/>R& &pl@jB3>-D>i7Zj>Z/cSDhbB֋k>cИP kD>w]:>/B@h+A>6A!>U U>-;3h>yIg2[`> De]A9 ˅fXo(}G0|s 0pνߋ*gX(h&Jѽtԓdhxa~sChB <k%m^ >16>ޣn0PxJ{5&.fgN&|iV=II{1>w} &yeeקqȽd d멽$w|Nݽ./J<=)Ǐ h*:/$рý½N?}ֽ8ܽ֗Sxqνt4'ZN/yc\[>e+/%`[[>bO0f>y.aPU>`PICd>믽3 rU>)ra>/Ԝ&KV>B_bǔU>XƣUX>!Z>v UQ;[>]}b=ΰ=B Y坽^ ѿֺIDzѪk ^>&QVASLF>,סT9=prj"aCA%>:x?ґ=;< X]T%T/=>Ŭ1aA|Q 5F*> >hS#>$~ADkFNK`ɶC>>G~G1/.Ύ C0>!Et3c5bRs5@c600>(%sa'=@ ʊj!]Kl%OָΏT=4or= AU5>}j=OsϪw5P|=`j>;H@yc>An.m7p>U_+I=`=Zr>* q#>WNl0>("0>+:X9=~׹q=>k2ʟ-Gܽ*sBiW$>,߭*>_Ӆ~~mv \Cvd O>ܫ%+85a{e@>ƃs.)IÆVw>/D} [- wͻq?]yܽڥ>AQ qS>?K$><*]>zRW5>ɮJjm>'9y4оoy<>A6L B; w)/<1 B~Z םS! ~Q>52F>g) .;>2 ,/C6\H =eDe;>wz#o OГ)_@9sP!½0pQH۽(NVD٪%Scc=V~Gƽ7aң<ؽ>zbW轓jaσ˽ٓbw=:A V>X+AN-^۫hcn4gݐBOc5}P73{Z@+lhYY v֠6i`=qH>SxP=3T=I9f4=̽2PH=_B=μ=@k^?^Q=:==/9{=@v=(Um5/=FrʽI=+9=hO4>!^78>Ûl W2?jF>H~$H>՗==uL)o]>LsSսWp=A=h~dҽy> HD>Ol1x3<vI/>/Nt&wԢ>\P$M>17ϟj{&5a7A">2X>zG>7)6ʌ?.> kDTVZ{V3̙i=͹=NC…=lYWP=[.(MU(: ">hrXh=Ny>W=Aq3C0cU^Phox<,q(L=>Ӳ=t=4Ƀ==vc=J7=kT=h¨=l48: =Gp\0l=^m<=Tͅ2aw]=^Og=W*1<=M=LGUwn=ȅb=(QB&C=BD}="Ȳw=(F =_=V=ʽ5e>U>Űc>әEU>{-^d[>Mbbdr[>;\ |[>A&HXҵ[>2) ~G>{,7Z> ^>OD+W>(ڧ2"/yu+h89J98k.e ö%3xd|[>8pђcJ7 Y>7(bݍIR>0X< ^(1|^1>oi?,UKԳQֲB yGOyl]ڄaaZw=pEԑ=!jW@gIxֽ\7Ť(= R=>[=$3v=OVAg5Xshҽֵ]i=Լ=͗^=<=5B9z;lCP1JQ,a=?l=ƽǫFȽ>@=7q#r]&?=7=e&Nڽ9C5=&tGAFŬ >PwU=N+v=H~׽278&=̈f1-G[B=F`z0=27[P=׎x=򹍒 ߽{dUBG#5d[uu4i=(A=,ծV$RG=m'Ƚtzcc=R08bܽ;=y,v= mvP=|1ӽZ/=fIo&tŨq Ʃ=$Ґˬ=0S=^:,k=v$y=lڠ='Nך㽰$"<ؽŽ3x2=$$@=X7=:E"G=je<=g+퍱=wb=Zl 3^ VSFx5=ޏ.۽ܗVD#k޽FURE ̟ՌVةy=ʽk=Bz-rLngD=XK%qͽZ =| ۽@J̽)q"w'v"e3YϽ2b׽< w콈b½{L ؽJ{[Á 8½>=`ҤЮuf@ȽTYFٽ 6io0ý7i$";rOɨf[($ѽp,؎׽"aj½VUŽ} vDH= t&>?LR@jy=NY$=x&I=vJ=ƟKP$#Wh=kU=̽GA66#OнRѯCؽohӛ򽇒,>KA=ҕvՙ=pHJ=*V=wkpɽh󽿬\ .\ iv,ux>` =kYRߥgtp=/7=m=H=n=+ͽ;=C}S۽Kҍ^wPmQho G@n??=/BC=ĿɤIfxKKzK`u۽ޑ͑=tr>lP mO=չaʳfJ#轒Hg=[=9*=/>;G6= f޽* =D=(Ujݽ߼@3!^~>34cف>+MP}>PO(z5>6"SMU>j ˩kߥ">ɖUY)>z+p">ugxH>D6>$>!!BIL>[B!j?Ͻ:cb Ig8A}l(>+BJ@j!U=TKm6 ha$mD>lp3>-g5`j*-gY,8<>W'v2@ <T<8yrh=(\C-⚸@ǒvxqY:$^@4=.EJ]|=NߤL=yQ$=D1 =y2"s9Ⴗ潥6=(D%=h6:Z,k =Qeg"=vf B@ ~W=m X= ,].=}Жޱoݕ۝=~0Ÿ=Q""S= \T&4=>R=*4鴽]-=%0Aݸ=f½8gك=v:߸=l̈ ߨ:AeY[ӽ.7- >VRs/K=Lʼn0@* Q=ȠA$@ȽHj<>Nzɰn>y-">wr KmM =t=ԫ"YBc>.#I>>7 fڲ /֞Ae͗)ȫXA9bPnf>-tbRv0] =TM= ;SCZ]JedcWM=fX@&!=P`F䆦=!̰=<ox*Sr=vN~Zg٢=%Y35 8==8S/f=V%u@)c=nw+cTX[>ݒa@ַڻ:[>t_)f>«U>Tod>J(dU>XB+`>"SRV>@jJXR>Y%SJX>H52"B[>XPXgLK[>"mc`T8$@=4m9 =0;n=ZF=y5EB=B~=i9= )=|^6=X*j=mk=<5t=-Э=ĕlϫ=XmL#>HI'G> 'U<==kV>L`@|k齆(3u3%>7>#>cH%.Q1&>y|{LT=dvOY3QI$@->PL XNQ,n=\pzm gw]zTbȽ t.>i Jyx=jl^R貋>i=iOQ ؽf>n:#(M<=Dh)s#=.[mkDxtm>pMn8X0Af?&d]EFb5yj>3n^Q7K>v(=c%|%)UK3>@IBn>"#|;>l`jQ ~E >^->u\(9ar+>ROi[q o%e>n+wI$ǚ\>gbX,Ui`)m^V >O 4v4d^"=SZGA=@=F@cGoBJĸVR=n٬;'r;Η=QaD'| Qr|M``sneD:bۋI9c׬JZW>F^9-'h15ebNfҗC>c cgR W~͕\;"̗a(juM>$օK %=6x0q=&-K=N*y+=Kq-=w")=!w^=NE= d= =,`E=X=|.+=/ב/=(t"7+%烐  yH>`9'=l][k>0sD#->FVp|Jfv)$N6b-j/80>0$>)cO>4$ZI+>RybQ(==4ps=@jDR!(Zi=Y!('TE@wOn%>"=5ԣ=0e_tv~f>EݑU> e>dH׉rU>z,c>C(XBPU>86Gq=A޵Kd{='P̽*{dA-[><=Ya=gN{[>1gY߽$x ض%Z!!e[>( C|8ھҮd|KA\Z>:$ "н,p;갽N9UM>ƖY>pGa=>нPF_> 򠟟zV>lK=,ivXŽm#Y P=0d"[\>xqÜ,hh\0XS5hZT8>dM[> \XCZ;̽}GcFQ$W>T|"== av=P>Wȩb"=FZ]Cc>avg (T.cαT"۽G=Ƚ*3FЏ%0b4/}ɽlٷYb,=zfO=bT2ŽpȽb6W ]x61ש뽼mr/=gI\б콌K_52½oڽ%]2)P6z½<O= 9Xw=(]nyS>=٨)> Bɽ߉ K=5L=+P=u=hLm׽,W1!η&GcL=x 潮 CXܽGw~jk = M!=^?1; =N_N Wӽ =M=iWP}ǽoɽB7ʽ`gн3EW=kD=S=8R-ܚ=F=$OC@>i+>}}\= яⷴS+&{i Uy@ު=\.5}*s *ֽU1̽`ls=0E~uX ޖ=8eGA=@\"~i>{M=wYE=AM`=*ws>ؐ4ؽD†}=@Y 7FĽ<e{]z ln@ϯ?=>HSC+=p isY^WZv4=i *>S?=J瀩*ne!==hoQ=l콬^/qӽ|T{4c@ý-I=.8~=G>$Oݴ=4){>@_=z8~;)=Z0=꼣=ͽVГgȽRx}L-ő^,`ὠ6r-1 > h$㼽L!D=RQ(='OZ}t 'sν$~{6ܽ^Y={H=x2޽:D\iJ\.K=Ke =p=VdY½e|=tN=n(=TNIWԽ \=FOh>%x #.n8=;L4A哽F=pU=L'>n*q=b=l=YMͪn,{=/+b=3Z&K~Xз=L(#o=E񈗎>cf= нg= =*Eн -ҽTR‹%6R >pu~qI>>ࡗ2G=B|޽$# >_7 wvFg$s>p=Rj-<@,6c_`=+ۄoݣ=o=R^Ҍ )<=XBI=(Z TZP+^|ǽ.ۄ'Խ9=4Pl'=bȽKԍ1Qٽm+,5N&A;M2 >&O,>;ksr=xCs=3>5>f#=(ZFGr)ˬ=/tAͽn{W=AB)혽*s=K s="mMd=Pit*l4r˽ёv=Za"nfJhc=VPқ=G"2+= ٜ(Ľ*ə=t 5]=4@j|Ǔ=,!: =qK=@"=)/8P7H=ض=#*y7~3x )нlo=0iS:ûCúֽpԽʶ'Ͻ 痽ސ 3 Ƚu >=xҟd߽{ RY(<@= = w{=^^A=SZՅ׽dlgU=0qo۾Ľ@1?;pb02= w(=l_ƓC5=0M2t=NýJ Fܽ-}`};= *psV!~W̰=HC9=x=nm>B=2ɂ[׽^q=tlQ=M/=!ǚ X?Af]=ЁTcwֽ>ѣ=,}۽(EV罬.2=@Í}=򖏽^"Ͻ=1=:ICkS'BH=$/?\=Y\.5d @͈>b]ĽdP=Z\>=Z̧н$6UNýH+7oཕw|۽/uSZCҴ=%ǽ͡=t Fv=o~ÜӽIr=%%==T=z+wɩ=SQyܽ IQv`Mwpȴ=[_~X:t=>U-=iPm̓޽@ΊZ齯ܵsE1:lƽ2=6*1=%7f>HO5=˓y=S*:Խ^]`f8=Rt=,X0Ƚ"Zн9X_=v($>SK= j=VX|CS=dOJ.="tT=J=~.ؤ"8R3V"s#=0DP{<%DW=p|_=/nd%`=kRQ u=VyCڽxaF̤8%(]稱ٽj0s @?H0rg 0ZF٫ާ=$l̽l}oN$b=x.=OpT0@L&Qmc꽷aՁR⽂3=.0-Xý|ѸP=]%=^̽Ecr={v|'=6^X=qe=z =Kh=S9nBC#_vM=@]S= =-_=̻^s=獓ףCQ2˽v=K|=w_=AYh +׽Eb="ʤ=  ֽW_!=:@ß=9y?=~?2i)T=AF=*;[}Z";rY=Zy#u=vM墆vP \HpL|1=X) =E?Tb=N{*$e=pB=ivεgN=4=!SkH䞽K[pBn%=P=h(2=f =aucvxQL=3A%=yWv ӳl~=hkm=v_e=?@i 4F=5dA=d7=@OlRԽE+=;5e=2֝fA(滽G=o%h=$ $2& T- '>OǰĽ=ϛ}<>V1i=$i]=&{S荎.=RǼ:=Y|ѽ ޳=ӗ^Ž] =ɎH ,=>q|^=]G=ʪݳi=z=!cIM\/ܽ9U=__=.=!( >61[y>а=Q=l~:b=jDѽ,WV =#s=SVlѽVqXT=\w5޽24He*xzy-/b2n> c}=1H3"-:lk= >Ő=<&w=['#>\W&=:=9N*a]^ Pt4R_ڴyԎh~<ڽ {Jx>֍>>Gk~>ϥJ{28y!>gI >5ħEtkź> u]$=:/a @=Ьِ{=vA9ei뽹yMX= Nཁ큖W׽c ':ɦh >R7w>.-V:iw>5dO>@7wC*A罒HP>ýZ9e0K_D/!9\= G½]+gA6߽>VQ\k۽-ˈ=ͽQt^뽻7E=…}=n%<=N4=t3rޙν9 =<t=ɏ׽+Y1>^Uv"$q,1:+0jȸս@<=X0="Z_U=_vigA<?J=hP2A=ƒ=\@qn =S뽀>H=*t-T)=K=}t 6L] E?=2=xvN&-=;"DGΟOdX `0ߑ=u YDb,^= T\==y=bIq. =1Vf=)h fKO==G뽡>] c=hK=3x~ Z$\Hl$'=\/d `m"D νd7,>n,t%P=η9#=kR= =%MC=TF% =+/-?=\bE=HE=Znuʽ1u 2="Y/BEԽ.'J*al^=;>_ =욥=7ڽbO]a(=$>s㴽Չ `-cҫrɽޒF3&6=2|;uVhܽܭ#u]=;Vl=d;O=ٍZ»U뽼ZҽBB6b=C Ă~нZ2=f܉4>і{(XKz>eK>7ry  a`z=dн5w ?z=\A76&нKH 2Æ,=`L) h(L=oGXn^R>#.=,"=RPsI]@ ؂xc뽚bI٥=ֽ:9(i[1ּ=6 vbÊ> ߟ=7=ecB(E9='H>f]R.dИw=KCHj*g=PB Y&$e==H={a[=צAa½GYҽ8W =4@= i=~9={.ڽpх@>=&C37|F5c;>%\&8$>nj|:>eFh3 Bq 1,]6>vtB#V[7>-hotlD "8FPjk%9s hQ=#4O)>\E=% Ͻ'b0):e=LR;UyR)Hp?9)zUx=*?>NkG\G$<#²#=  =#&R>ᰑc6=4( :Os8杢2N^=7{=Z ̽>w >F4N\ɲ>ڻ}>^ ,>1yM0\$>5 >⨼?8>c|t= B;>35c5u"VG0UG?b%9/:>:2 &>Ǿe&|#'>7q>-M9`E$5]Щ`/>EqT>+:mf2)>kf>elRC/sBbTQe6L%5(> 0>F->j[ e= -=dԸ"U;Bv,q-P a>attXF>hB}j@=>>0L:>fNA{*>U o|@>+B7xáI;%+Xq3>iBkZ&5'X!> &}:>V%}q34'Κ>"a̼נD>s>"\$ =d|]ui">q5:>*Nph4>|;`սe]]v K=!Xi|a=; ǽA_0#=ȩmY=# >07>>0l=*+>(-G>A*Pə!>5La#>1ƽ+gsVཎ Z*ʙQ/<>!/&Eq=_fKG=~AB2#QH>cZщt8:D"1&+>i&$KϤ>QF#q]Vʷ>{@἖ >l:  q.>?HI>q's<<>P-`6qB>3Ɯ >F Lq8Sd1>zBl5>V%_/v=LR|8>WH>c4!uى1>!I58/41޴H>;Wa(&:>+e0 j|ӽ \l"J@>*=>>;"*)X>Ttȱd7c.ͷ/>\}}qL*Tnas=k">: =m<5O2*˽;euý|F1x@ 칧='2 =ԪX,= xL=:=V{=%Ev4/:=.tBܘ#Խ+DwLZ:J-H=o=٤'O=QS-VԛwSnآ*8`=vZI5?(7=h|(2; F3=^h&b=X=ά=d=v=$!q5Nɽ9Na }/N:}2\x=ޞo3=iA@yG=(#D+f=ݑ$Q?a=,!=mLsPgr~h1M=jpT@i̽=#56=iJPe=3xF=|ӗo=U=VPo=%P7F=n*aɵa="6g=ktmFšb"޲=F'і=4_Y뼎DLs4=VmrT^H#ٽ0z|VJ]} #ڽ&= hν^=ؚ+Ͻս0v̖׽j׺ֽ&[ؽwJ1=8\=:X"y,=;.x={b=J#,=q%M=$gIs=_IqtSlcOнnlҽ>drm=@Y =tŏ“=yH?1>D}t#>½R=&y۽8gb3 EM;",Pa=|IB+>Cҽ}dȽc[O?Z-G@.WL~_ fL>ii(DՇ >Fʌ=Y=rhuƟvX7= G>I+0b}׽)g=8=ѷŇΘ\i4\ Ƿ܂=f"[`d=㛰>,.M=.Nq=h|/νfٽy=m&>.A$>-$_=r=n U>t2P>.B='jK0gR>6 sWE L=ӵXϦ=G;o EC&,t<>3(> =*<>]B.$H Eo5{OI->4RsH19QE/כ=+N,= >o{c> G:(?kRGLL!NB{?R#DZ'3>XWB>&}9{C{5>X J>Fi3Pa=H(',t% IO>fD3=7s5n$0!&6I}E>b i>БK;>i oB^>>e 0mQ>uQ'%?>'H>ʌW>@ӱ!(S{pԢQd>2,sī`8z >pw* >bH F>]X]P 0#=s1v"0a?=d %>8"W8(y M€Jːq6 .Vдqsd ; k>LhN{pLd J8#??>I />T ۋ8^="i#՚=c'$>LW !ǁ>t>d(߄aAL>iZY2>ΘauMg@:>2aL:.J>.y!il%>!/>ha:P>"d]$77}?L>IgULRO JJcDXm >8>U 2LxzcHg >KN>G]^z>V| ՜"z?Rc9ncཐ]=tWŜQus=D>K@=F$ۻq?#9/=P\OWёd'>p9\ݷ=>1 ^%ݾpѽF=$)nv= 49Pڽv&k%e^ > .Q:* 9> Zߎ>|HW0d<2ʯ ɽ0K=:нd}=%Y=]l=h"䐡=TO$=4R(=64ۥ=jT(=R+{46=kZ= IW=ڎyf%ub=sR=AYݴ=+/2~^/{=l5ߢ=@uMo$[=O% =;N= PWý^ {=G5=bLo D ML.\PPf>SU>ddQ[>HRcx1^[>X=[ad|yk[>$jdADɠ=[-EJo<=NZe>:]) Ć=ށ$[=Kc>DxU>dЮq=MOڽ{u,[_>g&cV>w=uU>&-8.M>).Y>tif=ZJ>4>i-AMI|[>n:L=`=|%xD0Z8m%=h&={^"__>=uUPs=`,`>J=TK٩3x̽y|hD7=Z=쩨yW.iYTݖC̈ٽc5=D'%%=psK=Ġ$N'mu yl= 93F=<6&Ž@Zu\o=cZQMҾ::s۽NԮ )|=^佝x\f_;̯=&1pL]%U׽h򓨡hrc =VŚpw揗ǽd/g֝ύ<$VB0hy ب-\OF,<)>"f>8EW&>E3*^QH6>Ad'FMJxW+C5>0ٟ.}@^Y$3B}B>bS6& />(#=*72"=x'_=Faý4&J=*wϽsƖuk=6T a&># ٕߧ@>hoG8͈C8>h$=26H#>g|1kK >,o 9>*@(\*IAȃ>Lv=Z{mܛ=P*= ˛P.vė"|} *X >/Y/t:gl idսǍWX (}.=~uttfIMB>3C?n7VgNH/>yX *>li*">@GA콅WL8>G634&>A I[뽂4?^@> ?>ld,G'CkfZ9>M-">?Uo* ,K1>Z3 1o=(c7>&s\3}; #>8Ť_=+llI&=#; = ;M>_r1V7^0N2>6 V=d#iӽ$j<%F=j"P)``=b\@=N/,3ȵ %>=d=k D!X;eJE=Ʋ%}nЮs1bpx=wϽ|D%=aM=D6Ƚxg=2SQ@=| 6kCJ T ِUTsm4;4yZh|1 >oE >.i%~b&ξ=؏qнc=Ot_# T7,s=-DRtǽ!Aҽȵ,սnKPQ:8;½͐u >O->=-M`=wxC=\*#>S>c|I>܇BrVt`qԿ=/!>tgD$)4_>1vx=LQ|>ǔ"'[=WƟ>1F>XyGV&>1ɽ;l6G>ȲQ&>e%> ֺ>a;-">%JE\}4S/m!{/=ױx=n=C㢔4F W &>5E]>.=5Dh!kM>~j fֱ)r4>z!LuD>@ɽ ' ՛%h|CgsTM>V{EߔJO`Y/i_r>&QM >gxO.AfVtAll]&'ۦm>kJE> 8(>x=t'E}:tu= ŽRGB>kDP>|8QB>gK">,I&="^hЕ! =XYyK>liCttc?>(8<]jI4>Hb^LOD yNDe*{o >6=ϡu=*fq*">6K3ȫ=v{{bq>n>b#^"*2>nXK>bcG⡔fXÜ=_">>gt*>K!w*>:4R=H=].68]>ҡ|>?㊀.x|^>fI mkPY$F>k;]('> pk [M~3μ<=(xj85fEI>bFvc2B0ͽf8# K>H\ [>`G> Y '1EL/{>x ~6>#&M>* )(>EyܽgY=/(/O'+K6 7}>n$2 >[C>ZWnuy%I#>Nx8$>]c[aV G$)ǽ\AxiͽPl L%zE=@Q=u8?ۣ=(8) sL=LV.= <=ZB=(=]?=oƥ= %f|ԈR=<.^z(=ژa@24=}`ȴ;8[=z=`"ݬ"$ν!=:p=^ ĽH\!Vƽ$`m=$cBH=ېZpp?\fWoJ9p ^+,)vލhսd4%T[>UW1d.5( [>\( -cfkW>r:\ =4lť=^ήG=&(=h"a/>xE=0zFbeV{>Qսv8HS T1al=g7j uo];ĩE >Jg{J)=L N/X=ba5P>L=Mi=!ƙ;|+}=*5c'˽Q ގV9@`OZ=Ǘ=̒Zs{+}$"C>[Ŧ\]+ֽ'A`ȽF"-e=HS%ž=q5*6;3ӡT=ɥkR=J l%罼Uc`뽧7Y 6nH=b彨_!!U9l˽nzOfd=kQ벣9y۽V=3/duʾ= սíUj-ED>3)C>a`9>XK]Pdmn+1 > BR@>&i>V#M+5~m5>\%V/S~'8>bs=D> !H=r\+}>S&=$*0q ֿ0w,=K<#=Gqƽ Z`t=< 3F*[rQ=U/'>RN >3W@>}7,f8>=zBMZ1pp(>Qg!&>Wh44>K L3N)wwؽeqF˽D==Έ= @F >8l}H﫛Dvx=L&7}E1>*ֽ O>Zl=Y>tab=( h>&I>I=8Qԣ651x@1>"mP/YԁR>rGBnC: Y=z/qtF >=T҉ZN8>l܊UI>XӍm.=J˿9Zi5x>עEbL=e  :>RI0P7L> }b/!p7%>洡L>QFT9T:8#,0>/d2cc7c<]=f~4o=8rt\=Hx^=u ո=AjWͽ[7*#= z.T"f<=5YxG=2ǹ{dcI|=uB=g%쩄=paIs8=ӀzO=dU ʽ؆ =4aK=v{q|̽[മC u!Ɔr%(hpTnڽ0 tYUH=m#^= n=Y驽>ūt=@2{꽶#>|N>_: _Zr߅[IW?= h=E=>H*=i Li|4>jFb["(r'렽s6f`$W@O.Jɽ:Iɯd7plfF`Q%X=Q+ѽ8y=2~^O1A=v#ɽ@^7=WM )-x=券%qnk 0d@x = =/=K3ڵ|82y{=΁=Nz$f=vSb=_~6=z2Kܔ==u=D= Eu)=zힽ̕Ph(q l70=nb^B>N7 ƽa]]S.p 6grk.ɽV&½5trl̽&1AŽI!=KVlýh-ͽM=p55=Tր"eL=>"UIIhl>}Gz6J=t@*sS|f>:%U>["`e>HqU>y`c>zU>`?Id"x1[>j:NAZc&Ӂ[>cA`[>/f `dil[>@naN ([>ɍ<S2 [> }Z莯M\>-(>6 Z>|ZP@c[>B^$X>o綠W>E*M>“) Y>sib>ltjU>䚋|_>6V>`i<=e>jݛeU>l/Zf>7dw8U>9vd\\>*H,g"h zH/?aC9hhc7ͿALANc[u~+Z>du/3dg:[> EkHb7ID.U>zR#K+cGf'W>5m`-LD>1XaE=:P> 4`Y {5&D S/R]`V/>vcAMx%E^{(| S.K _uT,G?dZdMV]uEjbFe1RDDgX,Њhi Ogɽ#ý"ݪ·z'?--o_mҘ= ="= t^.h=a/=Ϣժaսb ?+ؽ%Q=⽴@U4@ս]#=4:=:y 6+>pm C<?ѽrE%սtӹ3=,ơ=ESti=E5=J*}"E>(:vtnLy5==R=Fg*T˽Bƽ+&4=UV=N7u"<~.Eq޽hO%6ὡS:=3*Z='˽2nuýhx3> 3jҽXnOս1dbF=ѬRd.\Ͻl}89Y=~U&Ŵj=Φyz=~6=VLڶ='b[7z?1-==1Oygs(ֶvڒ$=8މ13>=b4}ֺX:4߽=.nB>>0=3ٝo i_ڽnvr&ٽ~Mm|S,Ľ0M=(m8=ZACt;qٽݖP= 7t6=r-oy 5#tYzL= L KlѽǛ=5r=dIڽ hͽ,Nt=\k=-5=lЭ޽B–&VZhͽd<0'=5(>\m'I Wؔ[=To—Z=̎hE=cKgpf=M>=e1i=#UKO=sFTֽMz^.=+B=*Խf=~ϽG߼=5>j=q(_ز917=Io߮鱽?=DN8,;= ߽7St~=' q>C۷HUA=RO=FC=Ffh作d y=˟T~ t =F=bS=@ q%s عR8":ֽVD㹽ˍQ"z̟H= Y!( >q-6 0ؽ񨤣%H޽@㿎{Wݽν-P0=׳サUwh>UJƽYϕ9C%" >ԁَRUR1 =yqkSg=%.3n@C¾^tW\1bܽ0#+ɽ^eyg:׽Z== :̽TcWQJ?>6>и>6׽2QT<彔Z=5"N|ɽd7=o1=W.5e="ج=+6}>f>3kdy=Z7">D ά >\=RE>bd&= Aٽ7E=EsDٽ0@ֽ8.ĺ=_eK"rE-=ϸ=y8=AB3zBQ >$pн ))==<@!V㽆%0YԽ ,=_=DXv׽,޽01ԝ;8Ɖ=5Df=U=^|"1ا=AǽD==׽qT:ڽx}ss@=zO^ > a5ͽ 0=Oe˽(^=Th&P[sȅ>hN_vG=>F7=@Ω4=Mr== B+=陫bT`o׽Qv\=.K,}=H=]{I_=^7FLTi'ϽϣZ5o 6߽>ཹ=PYԳbfջ=a}uw1=d\=D{s@ŽÍXI˽.$-޽(V.=/k=RZ ɽ}=OK=@: g ş=? =lśrYĪ^=~|C=~ΐ~wα;L\=/z0=jVorɽ=4c=>=n4@½'?i0=` D6n=0"4O>h6mԽ'U= 54e1Zenf؝j]=)3dr۽>b|d=fCqp="[yҽ"qD{=IJzu^sѽGHM]=&-"$=h5ψ=,=J=݄=' ӽ4.x6r=Q=n=|m >; t(ͽSAVʕ!1I>Yie]ҽfzS=(:U04 .9=È= B )gߠ1$=lQɣOѧ@d=xX=Zi6ݣ_K=L=GO>oU>ڰ򉬽[ )/= ="UP=P,>V91q=˱ z=s<3F=z=6=i5=`mΑBhd-=x]j=yb{I `K, Q3X|(=/5 >=1N7= ȇY=f3ҽ6!>ٽ3Eeה=ef=DL6i*Ɏ=_XL§~N) F{U)=5H+=TF2jJ š8~i}}|쾽 pph=)ՠw)L=}geŽy=Uaas&z= W=Ľk8=2KսD.㴽0*T6=RF=!1ŔŽ=[7h=\@I=ZO( =\!=1=l==^<=k0F=BيZ~Q=IWne=ؠꦽh `yUr=-;|-혽 4>3 =H{=F k]ѕ8AЫ=|PZ=j Z=6KA:=/{?4==}[VH=Hg,e=?y=N=ө>qp==Irҽ\"="Λ=fF=/fJ]1jc=^;V= N*=[źǥ=FR,I=6&>;=oP͒=%Fu=ނE=Ⱕiƽ6c% >bvUJ`Ïd>:="Ԥ=R=އ@y=Ktj=a[1 -7=356=U=/Cн>@Y=8Crq;:>Czj=|ޛh_=.m =?=Sc͑=*W=!?n=́x@[սީ *>!>S3=N?f˽_0s='5R=>9L=k n;ҽ"0=w6=Ov{>C=g(a2+rc = Ԅ=y;}z#@5Y{.*=VP%=x=d=D G$>{ ==׼NJ=%&=ؤ9Na3$+н`5V=.Q5>Ǚ(>ʙ=[=z/M">4M> =h>vASz>|/=ӥa=#S?nV=;7=i=[`_?h{ݽUp=d oݽF$@5۽;*i=\:Nr>{ (!>< ,s GнJcZ=pJlR"Zہ 13ag((w½ťNnཀ;$1=ha&t=In p |z~ѱ?X=HT.ۥ=%MBveB#>KQ=At_av`&Jx=qwgZ V 8pЮů=!t"p#ʤN=t?u=gj Etouڽ(V4=rbA,N=C3=lX=EL6?1{ѻQwD@E =rU9بL9qװPϽF̡ؽ#J>佩r'S#AMw߽4 ==ژy?޽0=s=@`}v^=C1ֽA=4QR1=Ne.?=ɢE/> aF='W޽Rk 򽟧S=USo罐@򽺢#G}k= `5.]=ɟ_&/kE='J#)>=ND -V1ȇF-X B=ף"=SCٽ:V:(=-jpks=CVi= =4.5 =ct=|!Q۽P5v= ]w(=wΔ@^8콽==Y=A}͠꽷=A5=Мi#=.i=R!=S&2w?egu׽HNk=P.|+|,8۽l=\5=cQ|Ϭ=DIW>$aąlB>NQDɧH=K >;l`=]@ѽL=ի=nnн f=$P==fr=RZb"^ r(l>d_#n|=A5jbL1v>>SA2Vge4;eXv>a =~?|!ZJo-lt{eܽuCy=Ene=iڠ&?k=k=Ǜ>r|={M=yHP@>ߕ =NL!Ub7:^С=:BC `=P\=*e3׽{ 1sz1=(Z;tX}:xP=oLGֽ9a=g,B.묬=:'n&4ґӽoDz.>$& 5Y)> #Mx >g%S==ǽ\cJ01 h6>H#ļ?%hn=cah{(^:B(νKt6Ydx*" %]d= 98[/'ZE(Lx4' a[:/> gs9y'>Q\fZ2>h h;x(,b*樣(:o=@47:&7=puݽiN.D===Ƞ?=#A :>X8"%D >q]>H,Y*>vA"#Mh)C=&B=THN~+3>CӇ8l(>^ow3Ld\c+>O ! "A>`6>Lي0Q~-xI>CRđpC_h 824Bp؈J@Ww,7k_Sp *5>t^'>{!b5>e0SS$Q?0b p2%Ãg->up5>BB3E1Tz7Gs;>1>^pF@>ԭ 1>N.>tF(,&>H20>, "( >V4]~=ɒ "ϽD!c=J{x1>[ vlmA>,'G]m$<>p=>3X2鸽Iê=7aTὼyE>=udҽ8>MT#E >YhL@>(@t9s׽^k= "ĤJ<>` =& 0(>Gg6@><쿗bG]ԆT! 7>"=>5>wpXdv?>LAK:.gP$>:(? =y>:|>>6Ҫrm0IH3'@ǍD>T0>e9a)>|M-Y#څBJ4yeGb>O=ET N_=cE>Ans!>BQx 06v;3 !->{G_#ҙ'y>T =|=RRB>,*>n*>;^b C>guo5;81+NF#D0=T”0k'>7E`>fk@a8>Э/(!|~>0H7w21>fRS>X?`0>`=5-M3:i+>j.A>6 ~+>H ˥.n@Fb5Ÿ BL j>=LP-r½|.O 晽!f=I5#pɽD Bߙr Č=`OyoV0=A=]sHӽV=U"~R=9^۽v6u=i.ӽYʲIȾ+&x5-dq{O9O==n铽rsq\=QCҽ'])ս+MʽyS|㽭>,= >-$:}=8T=nh.eý{):=P6 =xWyȽ%H xY: l$p=y b=~ɲݽw =N첽֥QnU=aT.$ֽZR=>s̽`hM==A=]ouҠ"r[=W5si=H(Y;`=:+w;3w=T0n ,i}ԽMN?u'߳=^ ^ܬ8=t#Ji˨멽&ﳽQlzIŽTR=Tݽ_y=|+=n =İ =u5=k_0M=ؔ;>y]gWUD"vL˱=:bOғ==XϽ :x㤽mcx½"Ɂ[=FoNee& 'J=ZRp Ð=^ =CCO h݉M=c 8.%n=hYA=g=n93Bb=8G= tղ N:ƽ^o\˫=+=@5%V"kB=_H=:*=-# & Q=sCz*ER:k څI ĽMܚʽl=LJ/νhpϖ=!g#i=b;=36lپC.[O.|!ν2yR2QѰս ="GĽf˞}SqveƆӺX=͟,=4㳽ʵr='«0-5Wнӡ6=O5=8TN=xSIE,QO0Fчx=,)ٽ Ǜ={R=ia-iWͽXE)oV쿶ֽh2=5 =XL=VOyѽOd=K=07=Tk[ -P= }?P='ӑL =Gk0>SޓOGA㽦&A^L=L4=?ٽ=Ka=4@MnH=tCY=+Б*rn=EJ @s]?S6h(eQj=?C8kpG=#)j(.F7=Dv4`#,B#=O4Z nILb|˪CrٽJ\ý B ڽ ý)*=ӽ5!='u]ӽoy=*/޽jr0=U5^2߽]K =fW1=O=!s=pj`4@Nk3D#t| o齢Y<=z+^OXɽ > 9-`|>\gm.\7`\ہSW>> >V=pԽLHdp=E[y>yd&lSVWv8#کf>.!o!>S Ba.E>&CA QI?bJp+==KX]И aZ J dEm>9C>tkW~"Ho?=ڕԽ&R x`4)< 2o&ƞYls@%nVR$e(վ=Cq";y⽖? > ģq|=V[ ν9Rs>ԚnWJjL>Pܺ}ֽc(Gs./Qu`>>=7jgk IEAD.DEA> hE8t\Qo=I5k8Bp9mkJ8?LbBV8h:CVA񽨑FI&6 y<'=8bn!eȏB6?>|Cpb[=tυJ> Ql>l[0>8r:GF>P8cϙj>^H_T4}ȓG>%49[5}6s=}l>z.&ijVF> ,oT>δ@c>\K%?N%9`ÇّA>v\f>mu"(dvk =>8 oz?ehYX>9+Y>|SqB>0|9>ôv<>!fMH>e1>6Hz>fSmؽkv=[.PzZN ~2{mmM>;c^<>*HKya/JU?> wͽ?R+>UxƵff;5|YK $q>VJ>A3 Bhs &_XOIe>H:˳ Y#ƶb>F2=7 ОYf 4sVb>,]`lDGGF>V|g>tN Wh>WG >JEIF>lB===]-R' a>6,Y" "# M>?0Z>X>M2:>C'Q Z\L>U(h2آ^:>wIC´]KBYf0@<k>\/>!@=}._E>X! U A>C0vX,RLA[I{޹?$>LgG=Ɇ=L_4_ts=UîŽ@t R=ܿCm8ϙkK>d%S=H"MŽ 7dl=3 >Ѱ-4zTO&x>@Ch>hCQֽyd=r6 R~>lc>m1 ('|.Rq=Xs*+V=&G=װZ熙=a&BP=Y=8ݸ=J%N߹=R=iS=-`vS=2):駽|vu=A9\o=g0ưV=\+;գ\坽~=[IW}ˆ= fS2{pWc=*a4`zD0Gwh4un=>V|٘랽N[,P~f>(mU>,׸d%\>@}|d^5[>esaXmgU[>8e^f>ޠIU>v>(Ee>u([kU>oe>Ns+|lU>RAKrb>J@U>M9c>4HU>z}DվX>;`MĤW>S2_>ܛVjV>HhQ*>J[> 3L>$S$Y> #$Sg(n\>A~lCZ>''`!e[>aTZ `[>:}UclJv[>]*dV[>_y=yۥ (A3=Z=%^J=bF=Gjf=HH~H= VTKq%?Txs໾=(=t7I=wWvӗ}=]G㽽~]guH ﹵d==&QĽ lx=ZC,ó=cU`V㽩h =ʜv=δ=\{U=x[Fͣ =@j7p(.ٽb=Qr'η)ͽf.\=^ө&`*1VLH%Y5$l8*$>)wۺG/r6>Zc+>S=>~]L޽NK7Hv(:HK=n1p|B>2&gǁ {xW1=E2qPt:>=/kZ3!t6]=.#Y=:F7>EwD2`Sd%>N8vi팿k,>U3\$kT6>fU0qmM!>^ "0>$ Z$A '&>up@iȆY=8ȭ=-@⽎`=`!<;]X9B1(>yќ>FU.k[u-~b9`Kj >>J0=ބl>xW4dg=Q.>K(= 1Gv0}] />Zͦs6>X `#>c#>4s>69Ü7&!wLBQ 4;ְf rhCT0C:>W]K>ywG r >ť&y94> LG[Pv6>8צ=)>A'Z\*>S00G%D8~6>+Ha'>/8wʯ(L&8P\7>=0x=7>F=d>ZS"ħŽQ8>j^0_y K=dLVI%?=Fiڽ7@TI|5X4 M=w"R=Ų0[F9= 26{="/egv:X=b76 b=w0AT@ع=x!tz~ATYv8]JGU=(`== l'bq=2'r1QV:Eq2,kT D[q=Y6`^<=M!Dۋq=jrJc>kyܞ'=A,E>W>S6<4{ >oa&:w>G1 QI Dw %'>fj>&IU!>pR0?bA2(݊; >4:M9> JFym=o@6T jǙR nﵑ ZnZ6 ,0O>9@ 5yxUJËf>lv`=A|=B쇴"u =ʝo>5A\6-<= 2&i>xDGC-\v\@{YB=c$ q>n27>ݘwI>tPq8n>O)>L0kl|=:}biC>锈~% Em`5>L57O>0$vL>G2d#_?>&L:\uxdQns:> |S3| xl>j0i Fi :}q^<ژ@QZ7;.bi>@$7\؁^_C>K2%_%t >·) 㽪Co>?|T\>n`>"3.1>/݃Zq1>v&t' lT틮׽}]̽*[O,>\*NW"f<">ήQ>)/8VVa>.(+bɢDz֕0DAC>0={iHuYƽQ7B[>qJ={6g=6rfi=k½jii'=r4d>4d .TC>ЇUU@Aʜ 5b>nye=`">Ŏ >CұSS"`r岞 >!xS~!J-aTTBA+y !>j^xSW"bMc`>SZj >v{i>*%fA.* a,>>LmKCX>.JZ>;\ c> L; xT.!>f>Ͱ&->ݳM>| e>=b٭XP6G>|.S0$ɒ1D> ;3h>B\!@8>u{tlJ>gŚ{^B>'^a:<+=>lKdCSdM087tt*[AXZ>NSK>>C6T $>VW V>܍-Rf`7eEBQijQR ?ioaȭfm6=#ZzET<5=tzΙ=hw=aܛ=(>޲nv7=X#u4w=B(=5=ٮ)ƹ=Zš=:M=/t4=j;PT= 窶=eXS=a)R=jdw_ å=# @=E{=pρZ\(fmP*xrx=Be:Pkk b꠽4lUbVR0C/Pd`\,fh3ovdNl[>Z)gC(K R,iXhv2֬DgZ5U0M):hl0vL?M%ӥdA3L9q+[.*s .M (]8MG>IR0bB-$Xl#7CGuvT!̈́KT>U` D>@.0s]d>*[b!XM"U>-za@9P>);Lc˕Z>OߢWdd[>X<1Ph =F) Wė=@Ssq=wMMDDFinF= pbC(oL=bd=;=%}/CR e4;npo_5ҽv Ṋ9jhmHཔJ= p6@н4dGxwbӽŮG=ۥVbŽԣPؽ!uDȍ`4: ν3N- `dXx!=qJ92>S7%rM,>^Z9>ז4=8R$`]=|;ck=j&_kƽW&''9&@?=,@E>%Ɠ;|!>ڃ9DA>FLn >NIc8 g3꽷ZT)=D?v:>%϶K_3@=v{7 9> 1V1">-!5n1 ,>F7l%Ve6>ʘp0VU! >tζD>\.og|B>a"#&ɣu׽ΨUnOڽUnV=1nE0>H qA>4%t2+F:>=A8 >pR9=rֵ**0>x=oNaNbmང%LPV2 uvɽ4?&>U':S,Ir7 !n&0u >$:<><u >QdQO>b( qA>z)dY->Rl[6B>lT(0n`1P-*G8 /r=厹0>Em!p9->ˌbr?n#ܐ` 9cd7BlZA>UIw;>CΘ<6eY.>0?uL?44>zKBA.G3=*=aAHP=ּD=mXͮ=hАa߽іG($C=#:= )l1}&lN/Hw'Ej1<=#ԫ}=v=Δ=Wl=P> fΐfn(0=UJ 'Uk=^m4O,Wqdg 9bu]%b a/ND=Ƽanj=S/<-RvC=)(YG AG!>H%\mk= ZF >CQ=Q5c0`Җ o@%R-~@-Mm;#F={So= +Z= d!f&ÊA='X ? ڃ="𖴧=Me*=3Z9 H%7?hw*?-{Aϧkٿ9? yac?uM `/?5OWSEֿʸ^e??uۿ蕘V̿0_]W8>h>ql:>NJ|>3xҼ>@Zݑ>55i"?)JD>f+Ve^50?  c>H>+A>}|p>%.)?ىS"k?bv2?, z( ?5!7?lX>+Ʌ ?NE3?elP6?\ ]t!?̛ZB7?ڲd3?I8>|b5ˋµ>>%Gh?&ßA*_}(@Ur?]͵6>ʖJ~Aƺ&9>Q>gb$[>}ҙj>t>۾"VNyr>C͵CXV>ğP 6Ze}#btȽľL$u$l5! +?douG!p.EB(>cy1#*ůn<&?c`M>1 zϾ:6?(9 > "?hCx>Rˬm:[c(uDHOM (Z6RMj?_x;S$?hn)4'6?z6k!7 454>s9FApXݬ>IҾC2>Ҿ >*:yѾ&` >iI%Ѿla.J">g17/Ѿn]>ޡоTL¾-}վi@ձi>HY8ԾXaI<$>!Ѿ)`;>~ߖq!ྀM>Ysm"־cξʣeqU;lm>t)b.о81^>HǾg> O Ⱦg1߆!}r?@>Йs¾۷վDX=ھw$>ީ;wѾ}վ&׾1A䧦a%2k:ry#*'>n=W5;TI M yf6Z"A̾T1f$gVQ)y>Zl zP- ?tFI,_!?V{OjM ?f>>@J>ޮX)A%?~ @1.6?PZr^?&?>8W_>,]b0?[E1?ge>L*>Yŕ>_)>Ϙ?Zk2>3'>6y[WÈw>o~:RV>*@A>>n+B@ ]#Wҏq> NblTi7[ 7>Vm!7:ٯfb'Tq*NscP*_YpH,p⾒g}@ V(W1sǫ'-u2?Vvn Ц[Q>&Exy$?lN81?>894Ӿ$c";t QPm*);g?l2:/#1?)o8?4Zn[)"?C}f!'ۅ1?ܩ%2k=Y!>Vu >ç2^6?&2:Uo ?6Ѡ Qi?~as #R@?hl 4י>Px>3MYPTN>ƛ>9C> "~ ?+slƂ'8??F1$$?bވN4T/? hm?0ĵ4?x׭-isd'.?hkb,(>NN L:?Mv>4wMh?Yq_Zgut?Ǹ(|y$?84虾8 M>W[ >?>psE<־~_Ծ !ھ~d4XC~>6K u>7E Ɇ]Xr˾!8347h?-e+?eYZ?|mQ`$??5@?SXLоk܄Pv>eоsMMl>tϧؾ a\쨾 Zþd[>RIҾ>.֦Gо8Ik >>kо>"sоt >]~dѾ(Q],邾D'f*о4r>k0tIžjÙT>$n! Ѿ4ȺG ,99ڇоqʫ ٴ>Kоfk>!Vz?DgCgIـɣ?젿<8$d?@K-"?G&P֤?jvucӿ7ƊпVOAB?.ϟW?3-bxrؿcw }ۿ`\NEؿAw@̏@d0hŗ?\ n{?CP|ɓW*k?OnKb3.z?x" C3?I?SF9ֿ<`q:Ig ?@{l"XǃA?H{;ѿNׄ?ۗ}ۿVWxɿۿ]qþ??&⿻`&kk@@fV`?\տz@?3>?:Q? .;*?oZ T\I @F?qƇWM ?'v?,Nj??W?9ϼ?bHh5˿ ,lUY5wֿ4;S@ 4nѿj 6]}yoMt qƿ,;?:*x8P?v?Ze{Q?_wr@s&?fs_NFdп,JLRcLn@/B )PԥiQ8fn?r0KPvgM?3\hsla?B{??`<}Bb?fk>*?sz<ֿ"xv3/Q_D?(b%?qo~>˒ȿ Eitt?azrl,-|m=࿵?B ż7?/Lp~_h/?L!Nؿ!Zv?u@y5?Qί@ b??ɷJ9"?@莉?91?B;ʆ?*Zzߣ?'?P[?R.l?j?֝N ?{5?^$h?И ?Blv?M>? F(?+*p\??7 ܇п:p=?|:J?Zq2jw ?Ƕ/?/}c@T__P?tSҜ8?ѻA`?r"?)%?tLani~fዿP(?}_?&FZͤ?B3f7x?7.@?Ax&?:'~?Y]j?B]?:FϿu#1ݛ?$Pg??Α?8_lPϕM'LO?H ?~Мd)?LTwQ@M@f@؄_TA}ȣ?ueD?yǿTxy㛮?$?02x2:B[{fWG? >nǿ q;޿nV ?3꿠1uPok ?P*bd?ҹ% Dbu)?Az(? E4{?͸hVOE_PG?> ϿP<msIr_ڿ-O{͙?EAGSc'-ݨ1ҿY!?L|?PQῪ̬?7 ^?Hq+qf?Ԕwn؀*@c#gr'A4>B@)(&;,y@r"c`c?$dX-C@\ZV߇Zw@&_W&@Yůdky?Z jeO>bi֤?q$ڶuĤ?F]i?P @b M~3"ڿG?%u L@۳J+[$@nDg>?& '5lǿS֔V+?U@q @z?WD 6@#?֖i*@:}A@Ls,A?7Vܿll?e ?j6f?Uw?} z?S5@$ @2V?G$@;.?>:k?t>oޗ$?ZD;EZl?SF?~?@ N)dڿhձ|z5w› PN?'xѿ匂ſ@/h:g?uZ`+ Ut?fR1]?8FtƷ?E\ 4E,ٜ?qC@sK?|# @Aá@Џ"p_@- @z_ֿFF}2t}qɿ`?tb҉?8;l?}oƟ-YY[?L8߿'ߴ?fٿ۳\rª?8 l>Z,?"VǛ?^}2?k<Gū?D^8* ,E+?șp;/ň^UWHƐ/Vڀؔ:&pÄvN:{ՀꬿS tX%аy5p\_?@N˫:No?8ܫIͯ?dD뉫DX?v_Z?z?M2%L?ŲZ?Q0? ?엳?^UM?&A?˳O{? #?]n |?`5}ɳ? YJ?)I3k˳?^lxxr?n)Գ?1X E?Zг?~?L^?[?>->?Ҫ?|{?H`?Dų?8?|3 ?RVn?.{?#ex?VO8?ٟ?,@}?10?(i?#F ??*7?)?N?l>W- ?75B?(Æ?T׌?ǩ3 u?3{DsGH}{VHVB}g1 %ż1/ S @WHjB3Vv5rEۊ󐿽mn=.p^Cu:kCmBp~x4NwҟPP'V]h˪=˶T`sPEAF7pғLVm4=FqCyA3WE=O"@?uW?T?jG?I׿.?^]H?2¿#Q̿otr?Yfy׿B??W;ߴп)vg0?! qz?<|*1?#A?t?WzĂ? p?e%$?_ʀ?wX?M?ׅiԷ?+bf?<F?ɛ>h?mR?-??n ہ\?p鍿ƅ3WV4JĿ&j"`?nP)I LҎº?Wǿf?ٜPڿ?FX-tx].п?⩲P׿HZ?>׿cv[0?ͅѿ?uG63ǿ7Kd?`h9*?I㣿4W?8U]e|F?F:mD}?8 3߿@N' H_?t!޿w?A0Y4'줯?Gauh(i ayӄ֘8{+q_"hcp%8+w? HЖa>:e?=:I鬈rv?l Ġ?haɡ?sQ?~*?&E?f_u]?􉟿¿$f?9ͿX C?6:E??)9d?co?wy?D0S? Fy??wD?%?]?} ?j J?NԀY?xF?0?^c<ֿM?O 2Q?h #տ JH?^:ۋjҿ:f?A8\`\F?ſ~7ŮdkͿy$QKHjA׿rWֿ˝_??yP?Z "fNTnonxꜟ\R?6ġ{cpvw?mڿo" #?) ҿ dյ?Rп ɿ)?bƿ۱Vxr?Yпއz;?wAtǿS?֋VÊR]_ݏw=hj%?Hf?"?@2?B+]zRtz?Y|VV?O6yֿ4N?:tпU{ni?@YgPֿxo:y?.Rel˿:s?z߿\Hwy?5W9׿of(C? ᇴuؿ윖AʰGT`e- ?vP뿼7˿SO𿩟Կ"{:̿_M"5z?XF?H!Z![Yf?f@V=\lۑ?4?Ph|?sVG A-]?>Jn\?Hh?&O/%??"u`C?-;J?$B??DцK?C:?a#_?0:i?Y&{?f0Nur_?aS?ƇƊ?3gmA?4!h?V\?uB%?6?դ1!bV_T?6>:׿لq ?Sc?) qpHY&x?G[zkH( `XOsW u ?`cշE?7_(\^wͰ1a? .sTUC6ѿPC~70YajۿFq v? fҿH[_/Ϳ BP?\9̿WV?i˱˿|m?N ׿li пp?%ξ<0?8bn˿U)?̥K%?F;r¿Xk ҿS ށſ1<פN!F˿Yc/,8?`sL-I5TM_EhcKwĿj-DNTdɿX9{)jƿm^Rie4[5@Oҿ|^]d ]6˿Rl?¿}pI^2漿@pɬտ Ǫ?*2W!+?muu%lOuKT? e>J<H?BX'-52"2F?ߩ/?A?ݵB]<ۛCU? J?HBq? ~?ɜ| ]BYtOo6D?S|s0@O?ݩpR?`Bz?uF[1oM?x(?Hn%?~"G|X?0najZ?N+:?Co+tLI?E? yL?[;I??NHdG?g٣@?Gh<.[? ]d#3?z@et? sħ8%0JNۿB:~VʘzRv?XfD-gA?; Al? s9?H 8N+ ƿ̥oc?Hrҿ?! ?:!H!XB?#`ոϝ?YȒֿ]L*d`!? 3ԿB;6?W~I?`'x ?i𽿈3;w@YZW R U@36d? TH?z$MW"? r^@ @1ǔ4@O~%@r_z@{1@޽ s9zuݞEs-Ų?*8?3iE? FBL?db[屿툼Z.?I )z$?$cտ$ T?MSD?Ŧ?znDq?ISEȑ?D0Q&u?Ps&|?,KTOo>KZm:jÐAr>wBәlJ2? Q C3Jпq?d@Ū.8wʿh D? @x$?̷='ƿtU#Y6ÿї>_"ř俰AѢ奂?X=]?^-翔 S~`3@9Ύ@ H^@-x@"6q%"MZ?J?>@s߫"ژ?YZo DT]?=<t=2@cqő?\l#?^JEt?ta- пF\0V@2dYv`%B=2<p@SU?vC?Ee%?Lc0?9>깿.Lyl?M)?D2ɦ?q#<91&XCƿS6-Z@&kf1ؿBvW?mGgN?,Z0ƿ3O#?|O/V2+(Y-?%Bjbп؁G+ڿiܿ}? \ֿ$iWܫ?P[t̿4Կ=Kz޿4|gͿ10?{ʠZ?/5K^ɸl? RʿAm\-T;?/ 2?Бy?e$?$V<gwM"=WȿЁIl?H"/w!ҊiW>)Zso,ξ}gss>Ѝ__8/Z>Y!0?\񃟧3 %,?}P 'צ,7?{||ԟ3k]!>ADl!>f|A>]{&ض:뽀`? THq! ?5>5? ;:Ⱦ>8>k`">gmw?UXa?ĥ#7?ˍ:4J3?h6|"[p@?>oY߾OzPTtDZo$h*k.:>|~7! *,.̵ u&>NM72=S^>\!9-?¹32ԭx !cդmS` U3xh[>о |v>s}Q˾G>m{Qо82>hѾ^~>6(ֺѾ =->\ۦgE+ξS{,[`kŪ~K2pnL$ 1G?NXv>x5~iv>f_x-#? c`?b:ھ_TȾ c>K9̟>gϽ>n0ξ>A]<"}MB˳@|>-b"-6>\)侢1v09P>P)h<0ϧ( "IULd#2 Z.sCpo(*- 9ߚ,>!Ζ~@*&Y]Ze*:q>Fqi[?lea?ƔhP691[>oWվ~x֍>vq;ؿ?>ݚ`>Xe>wF>n˸>8 c>XſaPh)?<@cu澂>@޽>s ?򬗃ξO#>0%'>ov #?kbԯC-⣾xS W9|_>k2?BBx.?+z?5O5?Kv Ѿ7&ϼ>oV'оƃ>ež3>L {Weھ•E{ ξAˀ '>PfΞ,%?2,̚?DDYpؿwkJտG*@ V@x:@8%\@2<@0F@t?wܷ? R7vTAn?YѠ@?+bXFjB4[ y?m]2D-?["풿TЧ!wN @Zը2?;1}q翶WD7m?_2m@ "Vo\ :?Y?A۠b?R ?Rk?KWnXݿAz]내?8-˴a? 9 vhm0FֿhݿwؿɊDI?l2d[MB}Y?t%GxN>6?𗴧#p?Y5w< ?ݰN,%~&y#e?P;E @܃p?{G@RkңZM Fc1zJ.^AR?Ȁ { @ ڜͿ\KWVc ?`Z˿tB @WfȲ@Z=;W@q׆+񿂀n }WMEfUݿPpϢS&ѯ*ï;s?w =勵@+2N?솬V?DlB7? M3i3'>?XJxaz?b4 X?'V׿\? пoq4_:Z:kN+?)A?ފ;G(Ŀ? H?ys"O&حV{lxГ'LT W{/~}*uY֝J:dpV6|gZ?󀿽i?C 聿 ik= DC&0ARR*#j]Ǯc ث?{ 7H?0R S?Nt#D!?]c?s[?<Ӌ+ -?7sDzvkơ$ D7A/ Wo *R4gPK-\qK?KXo(ʡ[ߨ?R??qJ?y*'?J"OY?6?uK-??γ?'c(ՙ?뀳?"b-?' 8?}"5? 6y?W#,?sv{?Vx9q? ?]OТ?~ ! :K?ǂ~.?L?:E?[2Bv?Mp*ٲ?4oO#}'ɉ(w?38X?HB/L?;3?hs??n+7?~ֆ f?Ja-?=REg?U)Ԡ|?~.%޽?9r'?2q(b?Иळf?(UhMlj=E`|X%csӊ?l|| 2 Tr೿Z/aJcxTcBuVrZ'uAv> 2` aґPb%3@37iKҴ7$Tm}Z,$DJxllty+fBzrAoo@8Ưn?1Y¿/;?[?Y??R ?*=U?bBɌ??ڧyٿ ג?a?3\+?4Qؿ0i_?I,_?q?p4K ?*>yzBF! `4?/bͿHE[w@= p͘T>?i㿧\\?1Vu?T?H+?ž5"?j?d?) ӿ~UxX(ƿR\?ä5?rv ?o?Ź?c-jBR?t׻? "ޞ(Q ?҅}aʿ%xECؿkտ$n3տ$wݹ?}kѿ …; Ϳyw?Bnw@Gѿ0T6?$ Iyٿxsn?^݈ݿbſn㿴ſ1B ?ek ?@V*؜C?Q !YEG䞤?9(|ο@D-Dk:?_?6?Dӵ?.g??(FO?:g%h?cM?fOa.o?awSB,?Y?^Hr?)f_??0 FyB;ݿ?25??dX!LO3Y@&(S(@\3"6ة@Oa @$f2 @39\z(Q ? @Hކ?) j^׿dw9TD@ gKK,p2)ԿzP1Ϣ@9K>پڥ79?1ٶC)?o; 3?.2; ?x?ea?F>uI ϛ>m]0+2~52Xqr ? ObY>}>d]mc'M9>dо~!w\Rξ^Dپ:Z<۾. *|ŠG>"jvо}W9}p-E>V! ZS?\_<߾^R8M?3T"?MY3?+ޗ>v-֙\#7aJkWA  ^S g>Tm>N<>iP4?zQ/6*6?^OHl:g(2?zȇ?.aM˦ždi>S(6 ־mKW¾D >֬8L>8^#?\5?3|;ѾkwGճ>BW T̈́Ē?tZN^p?U8?X&?+漢S?c+8ߡ?iÂZA?0{*bÿUR3@cdC R?\'Ѣ@9J3ҿ H;ަD"0j5?T󸿘Tr @Fa٣1bg@Y.>@dBDп*;u?Xk?eT?Д?Fn?s֭?z@?v+M ۓ?]x? ֣?V"n?VtvT?&? 6A*?@"? ʣ?9@ %Lg?%Ҫճ'dU=59Wr]4?ˍa?2$o|MBؚAteH3a-? z&Tx?d>+PAӯ:?ͳ`ǖu;%wȘЩ#J(sy ϲ81屿_?'/ױ t#?麬[?qB; J?O2?&HVʚ?"ܳ?vh)?mH޳?cK&?>lh9?Y r;8?7Wcs?p͜?AT?}xf? ?P)?9~,?XŚvx?:U?ɂ]pKv/?08`S w?KD%?R?b͈v?LeSqK _N?c _;"ٺ?%3p( ??p^f:k?NG(6?, \b3Σ?<朻+q?XHFrKf?{P̰0<[dӂ?ղhDzX~uc!@ ~E=GEhng(x<esX2P훿9b%}V)xwyլ|=0EE1?p.S?w ?Yy0l?᩿86?Jܙ?^e?ȋĒDnv+?c< !?%ɿ<]C/D8˿{1?U6j-?*h^? $<#'/ ?62ɿIcWBxh?UZJBӿ՟ize?G>ڻn Tn?M :k n&p9ф?@u̵??X|[0?YƒĿP 4G@阋?$?*T?_"AX?g{?,Ib?!Q>S=?D-Ῠ8d?!ަDQ; !|?O@rÿ}K?Ƹ {`,?~R瑲?O'˿-ҿ`T޿w¿?&,˿6k?:~?BC6q4/U!WV?\Ͽx%kȗ?xPz׿f:2?ߵAο5+M?a7|XWy7?͂8OϿ ڒ?1K¦*?ख़砿 O3znNkMt? m?Oʼ?~";ݳ?ʷ ڿp[Qe?u֍j2ӿ÷D?\Lʿfֲ?(vB׿>]/ϿT$8nn^ԿQ SݿTa&{ҿB?Zky򴿎4D?rݥ^An3Y?#z`?$OnֿQf?eK?B_1?#O@f}C:?"&fYdȵ+q?=-dqCܑ?t[8oB7e?jHE˿&D]ۿZfϘvIWP9ۿ+@w?h0 4?V->2M?<ڊI2b ?DIhI?c~A??7,^?l?xk ?OpTJE?, ?=?(,p$)錺? ?~(?g92ܹ?$KB V?JNJ ?R_tafdk? s2eV?G\IيؿrhͿGۿC}mӿtt (L׿,eRzjĿ +mc5c6eP`1пfWMdؿ V?ϴj˿/͵VQcfT?˿u\8C*ɿCjh~."пW6K2dʿY*mn X}??%+b"?W%ZA){LiM%1T?(]Dxq?;ZH?WYi?6a*\?:He߆ M?#sހ?=z~i8?{UC?jgc?d/bHSei܄?yڔ?ԳL+s:pp/a F?(D?z_jRsRBI*3 b Ds:+n6@?vDȿH?%U?q? 2/>Ը>`cK>NG~?t.0 w{>񾫴٣F>վ>/}?u,?I7`о>UqÿqoɮWjEW?: ڿ|o녛BDލ? %yt_ǭ!m:}?y7г?&Ƨv?l4Ƭ?yr7!?-3愴?`s\?V򮿢|ϫ?5}ɮ M?a3rαӫs]?DX~Qx?ksLv?F6?osֿ9&иKuZ?Ү? ?\ [տaj?wY1|?Y?SչمEh?Q`v*d?`*@?7)?3e "?bhpC9?A3E?4@`lqn?+ 0 ۿ&u?/?F|,餙M:4l?S?r}?pE7ѿx?zDG?^cO?O\?v}?)ow? 9\sZڿxMzR@mҿh?%y\gӿ '?s7 G2ńѿ#?U?Ǜt࿭{ARX?ݾ޿Df8ܿ`%%mN>7ʿ=t?=3q?t߰Chs?O^ۿ ]j ?@(m?φq2ƿfh:#ÿw?*?&fu?&T?p 7>?,X?nDC?s*?EaF?5^?L}ȿTg/@%?4U߿ƿ ҿccYZx1ҁ#ѧ޿,zpyѿR2٩,`c?Ͽ$2)p(.3ٿ}}`.=m9ᇄ=Z5M= ~s6AuqT=) Qnq=Ĩ}=_@/+smC&ztct=(2~vj\=0h|mMNbd6=3Fż$<=8EZ=U(p=S)dt= Ic!hwvB2-Ko._=TJ9=kh T\Ar#IB5D5Aʉ=5nHT/[{{Upqog2&=5;ZRAXV"p6仒QdUf gՐ7=j_l߉=A8=C9/\@w RnR=EF7(!0΀=j7} DF.C\":粽f24g=4?^w=TWFT=p`[}pOξ=}ռ=Csƽ6=(e䫽GD=`+=H$qv~oNHw AxB2=u;F=ʄ =7>;ž<0sS=F:AI=}KZQY/K3`=~ pjb%tt a=jȦ=2{=i3˵=j{*=dP塽M^o ==( vh{!=X^2=n`.dTk=Wd,V=~gW,=7-[+ 1gR=k[;۰=7'壽Pg[ 6ӱ&^=AN=Qm=47 g>-=ȑ=QIu=c۳I=ANK{Z+=xb}=bc>= =st=%عl=Xw"8w궤L.4ھr=>k=cۄGn=\^ƥ= jg돽Jxh=͝ˆC]cL=P/=v;3Z= S=6q9 t;:Lξ=}HC=UU7â }lZKemi=p;Q=rq=KYN}=`=+=tl-=Co?rGE=sWpس$| (`t8+1G!ν\t4;=Jƽ,Vg=8i*Ԗx="Fm½-)8ⱏ"E$ /[tޢ= N;tx`[s:= ۝f==\R\N=i]%ͽ~:8>[p=jE\0$=&ߛԺ> FqIhPUm{=1Ja@9 R=Jn#*z*x=0 =L*:K ztͽ Э=-.ʶI)6=$G8=ӁʒGS&GW' =`N-5nJ=\aC\*yj\q:=IGv@XCsv=0oz<6qNG=vN:󉕹#o1vscwaѭw} 5蝽3н=8`ЛTˍ~r%(dHp4^r[>פLdpP[>tϭ:cOkKY>0p bΤ#:M[>S\b"uZ>k}*]?[aI[>2 ^nڒ[>Ӯ>_{E>Z2>*ܗa>Pۄ X踢>MAptF aTc.jX>5 a!5!U>XaoW>VtXa؝MOZP>Wu$a1Q>, ɨMNzȍJT~\|^Ꞡ='"t104>NX'g>@]/>ǂ(Xb>-XˏD Db2pfSQ1MN>jb> 4>Z>,f~7hdkHB]Cb6\W?RZ!FZ'_U ڻ|~FbpU>kF9#K>Hb>C}Ɏ$P>R^+)_>1E^@R|g>RQQt:=N+h#AԽ>ڑnnGe>!mı;=]=е.:= ӽsE(nt=@~Ƚ^yf&>GڟE0>樑Vt>=N >A9ܜ˽^e]= [7ū^Sýy\=)v>Β> p=O[=z.ö=V0>B=Z2>>Cʽ0K1==!H&>NGaoM>P<{)C@P+:>cPa8zӋ(Y>ydi* B+O3g^VQb>Ll۳?,A)Id>ս*< >𷄽7> [Pn\>MPн(N177cj~]>b6G>}? H[>e5', >6D;Vb#>.b>z'|O1\&G>ppkN>,0|T?Z>w ;MY>C[0^>sxLM>9]ri_>殊W>OX XPrU &sW"kP"IU>ʕEc>1Ce>PcaS>nHe>LfkT>έ)V>`O+aE>x=U>.V(C>Mn߹Um 0C r"VZRv~?ExEf>ǑuU>Ơ f>dK U>* e>GGV^S>bd>JxS>f>qJU>G7d>}! iEU>^FZd>qT>b g5pd>!P>k#pc>|RK>[]e>>nR> n 8>|a>0/ͣ>W*>t !>]H>`>9n9JV>l{a i{DX:tb>xKS>.sd> R>.?Ud>!b¶Q>`mc>ٝyJ>xmc>LNj5J>Mqc>(P͟7I>Rc>8WF>4aMD^b:b  @(Lg `>`Hts>:b>zv;l:>AxiRo@R'a(>6@ >=Be{9-E=23E%>2R >*Y5\!C)Q>l >{|\l= ي~]ݛ>.= 6Oc=v_&0#빤=fxzO=-aS"=)FT= Z=LSP2-i=r<=ްԞ=./=T =vҽOýHz >U^)$mٽݨϽ%+=RC+7 =̒V_,!{1=zDν=qC3T<)">(i۩ >vϷNh|n 1A>uYMj̻W̆t>NWDd>o_p.aM\۔i^ >Oּ=D#,>޻>aXAT >&Mπ>-AXz쿗5Q]a%>MY>zɪ<>2>p`>ڈiV>x9y^>|vdXV> cg* b4 >"#>CqeZ p'cy_;dzJGh'\> t@HT>^[ኺU>[QaOQj7>_<.9Əo<> Mw=uL_>nu:^a>~It>k>-VUhM>̀>|38T7>Au #./bt+CX>%[S/c:q#Y>pwn )bMD4X>,nR>B@LO7bJ>~uϏOY7[> \t`rF&Z>|%ZN>B3WK8"/[@4V[>rbѳV#[>īB_r67"Z>bo\,iZ>/NF&d ]0[>sU'GdJ;[>fUAq$=zCh_H>Ǡ_!>+9wSH#E=b>-FjZN{_adzQ>qVFxl&ȌQ$*δ]$7)nC#IJf=m=ȯNK>O"LC>ӘB}K&,E~S(C>L`RbԴJ0 qн j^kp&>ccq R>=Y)]S_18>KHa 0D=-SeVرvűھes 놔e@E =52eֻu1> m}e>@LQXTz:"ejy%>olUc>2Mj_`f< Q@>+< d>$K6Ws˴qf{|4>ǖm>?Pd^Ojaq 1jw6@>?n`iK>@`D+6QLh0?[,>)ͳh>D h+p'{h;2>~ug>u(%Sg8#s3PTgCq7%g"GVe{0I+D|OeN"#$h}>ghÛ5^#sfzE2-fgb43eǔ*Pg SϷ(j h:bx39.Mg3">$"ó?b ll=.0=eZ*%$Zٽ Z=azMA齶%ij=: 繃H %㘣ͤK̽~ò=R(=Do=L M=,1fsc߽8y=Ew:iüݧk[E>$!=Q::h6=_̽(JD=B ="g8=g`=)A=II\zW1!^= - =>@r-=Kڶ}=MuX=ԥ@EGy=Tw =cX+\pɥʒ=Zvs.=m ʽV6S=ra]57=hG(jӽ4KY뫽qb=D{WT=#{7ǽ1KL۽&=j|yxЩ=tdo{׽b:=ƌӽ "&Nϻ={}Nx=V9r=f힨=UzA1=ThwA=0grq p½;^=Z o(n?o=dOt䟖8:X=U5ٚ9j|9=4Q;=WZIƴ=Cv=|0I=>aw@py^2$vvŽgTd+r_=:ҞZ]#7ܽO}`GӽvF=$_޾p}˽"Lݽo\=x6tȨD޽ {T1ʼ̽tAy=azn=Yh=>q=GU̽$ Ɓ=j=BD9=ŪG>=Sك>@ηmԽ=wI;ȉS"=f@|=X/0^=̋Rsdy ?$V=r`yX=p/5Ndžo81xU;o͢=܇==tQ A==tXY=`&ؽ=VCo]= _{=~t=>tf=n s=hPJ=L*K ־+=!n=Ƹsx9>R苂3%Qp432|"|+>x1&8 ?1>y4)iqg>:{N>O1.:>;@z4 G>8Ϲt= hvc1dC)@{8G|=>~\M.> q(xPO>47`h\=Re`0:3h-*>GՄj&>!.nY#>yxa!Nx:@SVh=6 g ܇]0@>I'J%Y⽨Ԩ >G>˭,콱 zU>Jb6>>[vե,>2 >m],n xPӟ=f5p+-) =U>@&jXc>k`FByE>9) =WHv >g->GA>m> AM8>X1=C2 G֤3Rߘa$>Kd>>W>;)xOC>\l 4>娃D> 6QC>H1> YqM>xW!(̉Mͨ]>B4NB?L*=MS1 ? 0#`.=;ĶC\*`8/>_͛6>' m E>Zp>D>lD>4btTl$ᎪDGn}A>+03uQ> \4;>R$@aɡ%>ԽOH4| 2M˦=Fq,o=(:Rn4Lρ3=A*+3;h%$>)dsiw&v:01%}6eCU23> 'WV1n,=σJ;>7 TK>;͓Rb(K>mڽzme2%F',xX>#wR9>"?i3+>؝2N`z,B"U;[>7hly}S)@:E"j!D(>r`ʊ_e?p&&(P(>nP=)#=V=S S62ImJ $7:/O'XI8C:|ɿ':+B>#>_9>Wl'>89N`>+%qhM:D.9d[InF,/fQA$P%`lK="t2= a. !Hۢ#>@1gK vD'iki~=н=JX:+>A" >\vGXK 0Efʻ)R! AAݟw7>uc?">zm3>Xx!>_3\&Y#;C>$>1䶘:>[s >t4=oF0g#74LLT@VFwݴ>s62TL^Ѿ$g/QPF>N\L*!D><>CLx#*yT89b.w!d89 lgK>,O#:[`>țt$,'& cSw@w u<>z2>6Łc^ ș6>g(#Gbأ:>=,uTv>: ]@>dƎ 2>^ bs]/.6˓jv^snJ639b5"@J>_3a $,b:&>OL>Z#U]+!5 >z`;{=2KK233l/T8f!̰R6r裷N> dQ NV,:FqV3h@MPo֮V*ExB>) 1IxA:>mCZ0I.>T"\u$<'>=54:b.3q*Ϯ.A>3O;GK8AskH>|t0ַ)`U#>VJUR=^%7C>^_D6潞M>>Ԟ35 ]K88>,>3|cK>vBCIqgn FGe J>$[e=>?FM@ZA>1rh=0h 5d[/>tƷ`.lU=9t8>1Z ؝=݊g= C5># n/&5l@NS->d*Z7d,%>5  W|EnM>]5-6>jR |w@> M1ow( >&*>#!C>2՞0mחK>,i 'Z (>%3j+pHS>>t_Jo#$>S>@ U>->Opqzt޽ >- >|iѽȩCaڽҽgs=32Qx|=p_W >i*n= =_b&w#?$PF>eIf2>xѕP> S;$8FD>UƩ9 C>0NoU|=#hZ!>@cl}>I`J2{="VXD>x ;Zڽ,7<>(%w"+>H>\|Cm,>Nܪ&"BA>S>G4qC>.+>,@>؀S*U>*#;Q>~G4$Șq2>%\ uqd>.%> fBR7>bj=Un׉)d=oF{Y=i >ɮp2>d"J@>6&,3>UPB=ns0"=JK4>3=2?Zn3>[d=Z3ὸz6^q@ ʷ<*C>”>DE6@> -Xx r~&ߤ=wr;a(z{u F$>Z=YϩHjzyd"=9[=v|O뀽f1}=hJ5~ 4}3G=S:6Gx#or=p1$J1څ^=J'ݫ|x5ϊг=}EZ}Խ >֑Dz="QXn)'_fFS9@~=:0r=Љ1|t$zQ=0<N`4g=b! 8qSu1>O7M災L7V= (u@=5eǁ}oo=Ĭ(jfL=!&vGu"]=&k~ެSI=MC } `n&T-sq=pSzMe;NH; ټͽfFͽWMc=~$hOlՒ"05RHV-.6=:~h3\y3<` \>~$x`%ۡ:40>hYd>PĖl]a3PH!d>(4%(h0>yI Qg>)WwSuM>7Ϲc>GP.KW>J>#DVM>lPZ>xX]>ҟHC>[VOs !܄al(("C49>2#7#\>EBx=*0Z=;N_e>7t ( >k #߽ ~g= ϛ%; U>YZu'> l4>F$B$>r\#*>fX&$`ν.>U#/>υF,>eC<]*o2 "6= _r%XߑǷPۋ!/ws`8 'J=^ &=!f[@Hz*]z">N( QfD>,ϟuT>|z\_{u ^>nfdz~c&`F\< X>vqX[<"O>Nb#bX[Z c.9J%4>Ͼ#{2l=.. BZ@dL{F<$m.avi!tߖ*Ku>id>ͤ= Fc=6(έ>sQ3vT#>"1"=2?2Se~lIica[5-Ou#:> A> F<Ҳa T>z0>c9>Q鮎>3Cۯͮn">dr 50i U6>ƚ3ϯ>xch>TD"a5Y>3V`E$J}>@Me>/iK4dr6><$i>pH.>[ %*g>pUjP>a>O)a|{;dCpu_'+8=pq:=9H=Ƞ$ҽ$ a=X0a-k@ t众p=Th:ڽ`S֎n~5l=/o=*;\-tнPvR{<0'=!:;`٪æ=N= Ͻ=Oo=µ3d=D\ԛTDmṽy;пLoU|==L]\wݠ<%VN=GWF,=g <6)@=]^={IetV._zfz $^u=`Qr>l=μ&hPp}`x rORsAf0/xX`)hFi̟= Yd7q=[C0ڣe j =W" d{yT=Oז."!5>=K =G?6Iѽ^M-vS= ̔ӊΟ=j$گ&tEE=@"j0X9;νP۫ȷ\Y'q&jķ=UDOI#==g3V(jʵ=YEѻ@=&eMŽ:rҦ=e=ۅQ!֤[= $koa=uСFn_=['`l=6V󍸯=f=+؟e=7]k=8N =@³  ZlZ VrIQEփ1=aI=V!TIċk[=fX_AԽ87x=Lg%=qGJ^丽*`Q=Vϛ==Nc̽jOտ=DY,/|=fjƽ/Xe=؇͢=*(v1=ӏb~)CBǽ7FWy.񉮎U=vd2ོt=qd=Ex&ܽ"#8l=2dx}"= eY)a!&=O]K:,r?:½.9秽"tjɣ=f=z3=$9^߿i=h5s)4N:=AA\^v02oB='BȽfe4='Zz=6dI=yKƽ]c=gǶn#=ޙdb" =|wF=|Mͽčwؽf&帻1M8AcE='=RU+F=Mv: 2A=<ڪ2=v,=6LuĈdžCIZ=^A ux=jG)/=̒VC'>=³=X67=葋Y"=x3\8|]Ck/=-II}uEס2L[ NIU=׶{gP붽 ӝWz=R=F5؅ݽ6K͟ خ33=m8ѽ :_[]R-dSX&6o=, %zѽ*@!!=J}%⢽ +5v@(ý߈xƌq~̽I=ٚj^=8QoDk`ּ=2rYZ=s?"=qIEi=̰">ǽj3LCJu n=ٗj=%sTlLl><=ll)KU=' ҽ/GO_ǽDk(|g Y=wzpIaX7ⰽ0;U."ʍ.&=Ĉ=v;y}4ѫ&<,=ٌ`=Y=3Ov1Q=3oCSP=:dBJK.q4I E0?YwGl=(MpBnbݏ=bɏ3sƩv*{=˺T4v=>=L3Zf½~ =wXXƽ- =֥Q#=,3½3,=+:=ý󑬯=Yr݈rc^[>we[dv0݅+[>'bm@A)Y>J#aOn[>myLb]Z>?@[_* cqY>C)ǒ`S [>% 6IE>Yܜ`>~DWʧپ2%>B즕t- c1".LMX>Za5aT>s~@ubsÄݧW>O@ya=AR>\b? jR>zįT|(&cxRk@Յ-a?=x^lJ&6vƏ B ȟ`bVR3"Naȩ&@E>8W\>R<>"{]j>[> d YOB2|]Rc⃀RKz!`䥶Y% ۻ ;`{V>{bqR>6KE>g3>3ޮP`>t1g'>)'$h;i>KG \`"8&d^_aN } e1Hߖe 1UY=i^&XA ٽa=潈wdxvxF#>ݱn s\.dZ >a =gHp4i>@SK>Kް>>"Q'B>J->q`l>=p#>خ(FR%>P,EU=Rh=xlx0J#>Ï >ryB=$O=)>jب=0QA> a _9}>8XIVݙ >rf3!bq>9n$|| ޽^NɰZ0(db>>0${7:\>'b>9tw)*3v/>PrOj>zÿ=F% p}Y><69>c W> a$>[d'>,A>B-W6F6>ulZ%R7+uX:Ix>V):VJ%od|L+>sU>jFXsgNϰP>?W8c\>$[pV>&nX^l!_WSNwAYL~c>RT>8\ c>< ,T>!kke>!+\NkGT>c_{[e> &T>+Ϳ(V> FE>U>^ ,FD> TU^?D0# VD:Bf>djU> u]e>c/KT>-e>#wS>|Be>Eq0¨S>TYe>~ԕT> d>wh[T>Ed>-:T>ƅMd>/`sr]%O>E;fd>,y)L>k0e><*"Q>.DE->Jq>.*q>"Ak>袐j>m>>=&',a>E@U>iWM |Hg)oib>"FT>S7-@d>3TS>z쪼d>^.ƜQ>ήc>oJ>E)c>^Z*KI>kTnmc>*CF>]m0c>4NGD>dz-b5zCA_M[>2!b9hD_>7t#8~Gb>喁Ve@>KfS$v% 6bf6'z,>Ei삲> Pة+>uk>9#>L,>Gw@ R3!ϗD>Gpѯ>~=9mzu=዆'Ru?%>O/^ (>, 7 .N5`Fӽ2\s0+'w7m(-S10gq>W=н?V9~} >-2\=""=2Xhʽps2|@̵@=: =2Vy0b,ؽ >$`^j=%ȽCX듏۽1;_ծfi=*Ip =KI09ݽE d.>d2_T>E"U @(m@6>y;3W>ZeUvC_#ʖٴJ>Ki6 />>}VR'偆-F y+>P8 8k>B}2P>`,\(A>AB9 S |FH"wF>B~:>3.B a>1fU>ٶ\>lnoV>tH0DW|A!vt >C I>֒)-d_C`|E3U䶤 P:E]4Y>_]U> m[ Ɉ=>RT7)ɮ> >M;:6Sr[moT>Hk4=h >e5/|>v|*>Z":HWbX%>|) >Xz-6h'/>fd-bě@Z>b00X>bHXX>gHHK>gq DWM{s_J>ݩ[A[>{b_T0R/[>8߉hL>jxG;JDz\yJ[>Fva^RZ>"^-9/Z>TbB3^ыZ>@3dcF2H[>6w/d:Y [>;y"0j(>ө)w>-dT4>xmo0#8uI So b {t8R>6jAJVR iJ{ Y3bq44o\p' OY"R>0C>)2v&"m9={,^ E>/ \f g!=@뼋>?f1WcrYjP>aCTX,稱2>ww b)ŧҽdwde{8gSf Kto Z[/fONd/d1>^h~e>iI0=\YI?e\>mwwf>T~46f5>> Vd>@>n6i{B0fȊT)!>ʐ#W>a$%=˵@ `ý^Î,ݽh(VtM>\xXR>\],L+=h0>+>h`h> ȶ+u5hēWz1>v >g>)xhgУJ! #xfxO/&F`gИKZeQirTufpE\MܱeCM%#[gIz5b&f{J?v.?Qg>4jeZTzT)~ g#u)'^ah*O1좻WagɄ8l=K֬$=9)C=o*8霮=$p =_ =QWɳȯ=}=f=p3#氽vU9g=S5xL=ܗM=(:q=ʳ;qj=H ½hb$=PƤ=;n(== UW=&BfGսr#=ƽUzr=u2כʽohDȽ&]RĽzI q=.Glb&=MvK!=:g_e>qν 3=q@нQ~G6=` ъ=ڶl=C78=2E&=oX=ْ#pm=ZF=86 j= 4>$!b ;{=:,xC=یFpWśTY5=X~lu[=y:bj(G=0mT䊝=4>-=Zٺ=X]H;Ǻ=fkn=R󳞛ួ§`&=c$=JLn=c1=< .ϽRͯ=B`}T,X#l=UӐ=W*=2 fȽ~ = 9<>Y= G|hch½񤞛=el;=R]hĮ(A Jt&=bj Y==P="mVX=8Zqz=.Qw⥩=`!!]ޙMg+޾AUe罐uN=c@=Z?>Wǽ>_Lb=H= '`Oe޽ʡx=OheY=l'$=u`=.RP=(0=I}<+=ׯ~u=GF=(P63=3̗x=nMܿ=T D3=;`=FV㦭=֩ =,+=O"/<ǽzKD=,K=ԫҺ>s1ӽrr=ҼLİ=Vʁ?=MCΊҽMlT6,j=H?Z*.=Ӗy2׽4n3Ľ= H;ѽF.=Vf]"pʽD-[=ŝM_=~^*=:w<)d =MC=vN <=ǺV;~25=}R͘=L7:˟=8lKtvӚ=yloo8ի=ަxlTb=* =Lbq= DV=T =B_RqڋJ&[2{U4I~,>F9j+m;3>tҽ=EIbx*(cK$=P/Q7>1 8yE>l+;LbB>HL4: wh<+3ta&HA>poB3>,;Ug!U@>9?U'Xüu&>OʟR+"3s20>3¼&>G{-.4o >z-*ނ2$~ %:n162|6>* i|߽ܽh K>X!=֍=gD4M:#>LhF[>J$>h:D>8F48 Ef >4{3ağ#i`G>JK>m7>>1É՟<>~ˠU15>u %>ΉD9>Y+>Fru7> $y=-V2aÇj@4Av #>Gi@>a{6>rMR%>&z1Bx2> gH@>zrL<>:2,MmFB>(5FdqD>3?$ً vGn( 6/@}4Eb* =_r֞In?>DVjqc=h&KNE>fq@>>JY@>SE;Z26>*"uE>-h9>c7tAD :gto'>8_4= G&=K o<_>4o!2n3 tTH33>*"uP@>d*>7 Q$%Cj@7r2> bg68B%%cЧl=>(Ӯ<>UɿYDl[h9)>v㲞2+NUpm5dx+>H2|D>.HМU;zRID "b.Cxf=պ@T`+"of];?C\G:nCG ?A\F*>?hCΞ >Se1x(쉤@rqL+7 8[|=n85 &/ 6Qa&r2/Z6~1L$Ԋ!>PW$|>,;B>>n[+>r]JN6 @# _OA* Cp y'oW`;;Z#҆bF -NH ]-!h@>HO7}!вo!I=d4*z 5>_e4>ƕ`7aE@ 5`ǐPE%3mδo3 j)i8>#K!>L("6>(' ">fD:8#F;;BYԻ'9QZ'm(>r\>%4O=0@Mni@\P|Bv(>I>H4f}}6#3<4>l:-4>M$?/>`\bO>&P"F͵I<.>(gꗍD>. Q!$ǎv9>R'>yw>21b8>nG5>@Pl|M>>dXC"0=(>@>VǮF? ^6H˗5u"W5؍v2md >TO-4> .>@_.|F y>xHs˽-ZGDȪ)|k@gs>>fu@j%ϺH?o?,qM: ՒIL14yteN?}W6>K }@~E3>%O>j/t0>F${5\I >ړ0;+Ʃ1&DA]fcW^z5>7>2]CƑϓ- +-'>~g( p&n}oM>>&`@LW2>FBVk)&l4>vzCQ/|c@> 6x KH>&=,\A>dB\D>IA07sԵ0> %nR6-=8KͭM8>-^1xq=f R!~5 &;w3=lԗn7>0XN'8&M1>HB3^4\/$>$X$ ,c/D>gu.<2>?H zQO;= e;=>9>:ȑ,$FRL>lO"8saF">ؽҷ3jJB>6**>JI1> ;@>&|Ͻj*qԭaxH=>vC =qdju|=! > Z=bZR2>Lwm>l>X,D! >P鄻tVB>->! >V~kA>v#wO"qxB> 0|uG>*ӣ> / $>u|#o>P^1>=l^H><,_)E>|d/ &&^|Q"> h+L>\9">)92u8>n$vkY>Jr$w>>b,>V; @>ԶІ>ŅiF>: 8@k=~lK>0Br">%.)0>TN >[ YWEvD))l=I>, >&1b2>[1>1>lf=6q}1> =VO2>h$~K>׍Wz>(= < l;fD95Y=)JT\>>Y>"VA>RGvP\>SF=BA >PH԰ItP#imo jI@h 6=Bb/Վ=6z暽x@M=% HDTT=⢓!Jt =`|6?i*k Lw=p$:JEp[^P&7mP>PV'c2]؄@)>d S[>B).R0Fܱ%gCZ>(#>Iǂ[>V`;>V>Q0S>-fP>CP>V83V>f!S>NV'>Iv=O B~5Qb2!Yh v&>=^"[ύ">x=݊b=j4=Z a+eD>>Ĺ=yߌ>lϻk=#. >0|K0>m>m˪1(>_1>;FP=7nL=RSj/> $k!%M \zʚKg(QϨVϡS("9%XB*3@pQvY!}Lu,#i-<>avI[$^~FA>\n>>X.9*ITUY?>rQTnY`:>p Xhزy>>g( >?ux7P_vA'5%hz55PUT&᩷tdɍd$(A7|%!Sb=8[Bl=զ|tϒ7ν>!?=>qڄF#/v7F#>I.@WkJ$o|<>,H>vZ=>NDS,(@ 1>YC)>\,FiGYF>E50Be1>e5>u->H J=g},>YFh:W6>n z;YX>]8>_k2bp,&S>u/q5`W2S" &C>,PIP>68Z/4SB0'>'ٳW>`w >W$`>(k(G>9s kR>J$tmB=X.pE̽ "olkĽட"΀ý ߘL|!_ʽi= {RKZXFN=uDi dgtY=&%ȏW=ʽI=U{=pC?2Eqɮzͤݒ=aKWi= ɢ=nk{=+$S=*_%~נÔ= S=P }&Kd=VVAωX= ̝=.H_UKo+8=hP]2tO}*I%V,MR8)}=Gws=F͙={}=ȟP%H僚! 񒽦9c(=n~ڗB5ýg垽uSPxa!r8:ԍǽ0I*dwظRIRɴvM|=fe)1=2øO=\8!q=l`%c:o鈉~=0NXc=OX}~Xoj;vнk=4o?1+ II`=XOi4ÿ= Cؽ A:=4œI*XM'&F2^=]%2;`3@=Խ\(bj$ Y'j"d=Y 5c=Մ=H=S m\O\)F*nY_ȴ3܅h%VbSjk=Kɇ;=5i=OCcoH=da@˭`݇L#B󩼽Rk=%B~=+t5*G=tQ=Ny|=O"fD=;,?}=%+V'=j~`\\ߊ2P<'^G\,OSj=\"Y?F˭=p~O=eO={Ю=MҳIW{=x He=j-=)ֶʗŽ5ce涠࣮E2I=9]5=fͅ@p2ͻRd= \a=tA[=, Qxs=adI̽[vL ĽE.x$=P=4p&!qcȽݽ=aX|̽2񔡽TzC=þU̽Mc=9xo=Ĺ_$=UBs =>S="=`&|ڸĜ=./{|O[+4="e}y= Q GHqƐfO=zuFeD/ֈo=/wd.=[^53'C= >hY=tۺ=zwBqd 4 [>s#`>aUXuǴDW>USeg]b>\XU^=j>f)c0oIzL>隀VJ:j xa>U]ShfU>BQO2>ՙcb> nkDUd}z@`>E[yc>2._V Y땥ӽ.g#BQ=>f33d>MMiF52c4aV抳4W> CMef>ǴmP=W>p3q_3>S& ^>1)>~p]9b>2sPHxlky``>6SIÀkƽ(3寳=2vY.>{⽁~7 ͥz= p9=Z`v@ǽ1𯽬#!6=sX߈=gT=!7q=W&gUx),K]gJ=:]R^Ʀ =N> PqU7$uZ>(W 56 -g>#ҺZ>BP{ V['>E{JW>?[]£UKW%,P:VH_P9]_/eǺAU f>u+4U>T{ f,UHKGfAJLUeSfnWFUfNfD!bUH6#ec[SFHU sdJ+(Utd> afR>Ib$mqN>Mze>.`IR>Ev)bZ A[\e{(+Rϋxb%;nZeUm{{ebPS_`cST#Jd>#BGZN>Ea}c!3MwX`w U1;zd+[c# Jhf49C>gr\FH>RȬ Ol^Jg5~Q`]P? 릋T^>dM> svEZ WX>5/O2>9%D2 n(A$>bLi޽/7=!';C=My>1qV= ]=C5 ͼ/=MRd>l=~sk;P퐫ɭrQ]7/,c7t~L&,9ea=oB.Htn!*S*U TkY=JؤbINOm2$ {>0,]>Rx>"Zw> t=L= 3eb~Qb+KU"T>ÆF[aZ>RO:i= RѕWlU>He;sV>__bX|Yѻi@=M) >𠁡=c4[e3>ZeT>8\Z#3L_>OhF#eR=>޶M a% Lk>=&_бڤ>zj<"Y>)od> S]̿ʤ`>ɮ e#VK*b>@ABY' qh_>qm;jWx]a>@%ZTw@8#46>ġ4G>Y53L O''H6-="L>(.(m W>T\ˆ3/`>4l[^UXc>lRךY,UH]"c>;--?[T?T{d>ǿ["j҃cx*|Z>ۗb>/@GUK wd>*~>Z,n=շP= < |e{>H'<G/>_.h>%5_LW s`>Ğ~4 #c a>AN@V)b>#\FE>o @=n&-]Fc5@C<g>hL>aO"4vSc>fRz'#`>Pζ!1C#a>1:A,mb>+Bx7:[EWSa>I>( a>?# ~HEe>qV2>T%od>,O?>0*OGd>1|cHMkb:xXF>0b> ه9rVt n>?ZFUB>I$;./.x0࠳ZANHB{5\{oQ:9Xq->qGoeh> MB3>L!g>Fu?0bO AggaSrOx7fx]^*)> f4̹.'bgxn+m8hPN->sh>p%)Ԕ,>C#h>ٓ=v`'&񹳽)PAɽ͘teIySPc=i=H)䨌=0<'T:8=FY@=}^= (I=†]1=1Љi ]ӽŝ9 ָģQ=W+5=4i'1G~ 2z^!3b ӽ2E=Q=40Y=^ҍHu`5KX8&A=q㏐ڽ'=5=∉>.NTƽ٤=/doԼ=% gٽcƢx:= A$⽵=\s@9PNtg=}l)OԽ^ڈ[8창2ZaÍ=QG%=ijDŽ⌓1^FZh='Ds~ui殥=uΗ=Q}g=줿E3d^t]Wx==ͽ҂!=R_ =HOnض=TiҞǓ=RU뷽B:=X+bퟸ=7 :l=eRbM[B> {dk?Υ%7`|3J@=7.@>q 7%yS'6L>N1|=>N 3>v_xA>DhB7QA>k &*>Q>(c^J,6wS &KQ^K6To=V~fL >j}2>p`U!>lJY>pH>&Z> WF>6_v>G>/N >"w6]$ai0>/()>(T>a4,?U">啈$D"9G;$}q6 ]ݩ5xT@..>9e/.b=p=1>k">{FKc;>M(>;lx'ɷ#WP7p6'"Ϗe#x9nKIh3  >-Z=V+}!6)~ TAO݂(LIeFz<rPC>#>A+%QQ(ؘ Xi)@M~WXn~TH\->4>0;;Hr.?LCU9ATz7UE >ވJtK->:gʷ0+ fr]#Zb74Ͷa0>P*rL->xS94(I/7>,rh1~d4&g->E^.>nġ$x"#9>Һ1&/2`gI'ymr>G)> >$ׅW4>e[W>4Fp\>Hs/ֽ8.>];>(f>@CL>hi1>7C>\~>ăYCJ"Mн\*X6w] 6~=0[:>ڹ@( >J>0cMߚ$>3QT>i6Z*>"3;>'Ѝ>srg(3>x0>r \4>D'rD @B?8=;D>>A; >>> =.' >V %A0${#R l=lψ }1=E^wr=l_Ńexu}NH=Hۮ#Z=/Gt=!>^ \uF=rgCUP'NC=ࣕχ#O~=(̿v=SVo/Cx΋Y-h^+Ғx5qFt25>aEg>^=S>S\e>Wc>4b∌EKg>C>P M:>e-K>(;BT I: f>] d> M_QMAa7ϛbȫM ҄3Ao> 7uN">ƣZ\">ዳU0z*>%K>@KϤi;%icPϴf9[\җ=:xR>Sn4GC>+ ntC zIc>dRxx1&>ǍY4"҉ A"h i>ZV[gV>ϝPi 8J]er?1@YHW"/f۟ROm _ÔiWbei*!TiQ'woH&g>٠R:F5>p(ҽ@K>/a=1 Bg7s!nidpWhіkb C]Fe_`Jw_ dAT>nי)_M4~D(>H~I*> bWD({S])%k.(RTj!>wsmG>zD!>gAͺʤg> OQ4 ge>X N>&ׁxe>f*RŒn֫X}2rwͽ#!ұ귱˷@uH=F=ZKbѽH>yĽ~q3N>,qA='gclHEc+=Afdu=FǧWv=Ls=dQȪ=!=q=OG_$.ǵ= 'sЪ=41=Ԇ]xC =Mr&=^z 7\as;Cbֽ랡y7Պc ýbi:=Xv|= j9ھŪ=J<v#r7=Y8<= w@= i}~<}=ג2=ܴPi=n߱2庽X;b>H:cf=6n &=/9QA=mDUf,P=,cqhu\(pK }=`rٳ= .%׽Ƞ(=vs-\M$6[=Ýхd창, ٻ;:;Eʨn<Njڴ=5,нPl=+!k)ϽZ4n=9E={Ӎ F`㥽) pxyy=6OZm=N<=莀Ѓ\m]J$Dҽ%̙9=@=~=,fn f؋9Ĭ=2Kұ={V .'}ԡ7Q=Lֱ@Z=w~3j= r=]h* B=;ͽ_%G<ѽan=d[A=/*=% ʽXƀ-IǪֳ= ɻ=,.'s7o}Y+Ć=\:@=iZ=f$Sb= B1s=+VH6=?i= olEAc7CDac1uZ>Z(OnLc>_# [ ZѲaH5Z>&D4bhi@Y>5a>nI#LJZV;6#p">^k$Gd >׭D`(ga> H LX譄#b T>зTb3>4n>;@VI;&`=*U>`iW=yJ[>2E`@Omy:sȐ->t)*̈6>|(>&k=źj1=&My 0 VHy뚯)q;9q2>٢cx4>'6 9(|*>A4[<WՆ4";2 wR9LOyd>הh>T>QA5de>-ÅS>:UزDgXU>yD>wAxeid+Uu^ڒXkf-&UR#e>''&T>BLe:5IU܎p+oe>T>dIe>(YVT>ߤ8e> &VIS>'ync>kE]T>+c>zA&R>jHDd>-VR>͉vc>L> Nd>3$QP>!cd>JVP>ݮ?Ba>`2}U>xd>oYR>Jc>$+&oR> Wgd tSFc>̇uK>#2jb>213?>Z>|P@UMD=72_>V2 ^̀=zRB WFL >ȅ2Hr)]G>$q*u+^ջx]qkPxKw=<]L]%>P񽌫]鈙0>^@\ >=H8i޶d&/>YV>qoV_?ZQga0>X~#>4a>T>`H@a>=ZV>sJ4K灻N>z憨>/ >" =½w~>!!-">)x yv>!; Gb1߮U>TS@Y>ZRC>zaIBI>)UO/La˩uZ>`:8Qa a=:Z>~jc0CiZ>HCc+M!X>('$lYj><&-}aL$eJR>|P>q)ˡu0kN>Ssl^vax_Ž->Z^cV*mG>ΌnɄ[1qrF >*oQdJ=" d w)5hUgeUן &B>bzwT>Jpg<ͭ0ϔpXMMF:$`0a1++w[8hXX-gF*-vуg _%<ĺYhf#11R[$lfx6!+`|Eh6*$l th#Ha/10$g*R=9 s=nU=.2@j6=E2=wUrD='s/=H\=<=`f=Neԫ=pբ䩃V}ZX.f=[Èi޽䭠Yl,U+=Ĭ=[n½zqI=ӓֱ%ڃZD =&ٙ=)=$q=KC=7F>:=#ilڽ!_@|뽜ý=tJ/%ν@] )=dzX4xܮ۶=.Ӝ=;EѼ=Ӫ0=Un(N4@=it=me=@!ń[B|=w=0EW̚=mݹ1=ۿ ¦=|=-zx1Oױʽ(=윭#I߽Mq=ͽA;k=ز<|= = @^)GaǽĶ=]`V>aebA½򻄂*(1cݽfbб>LfbѪ=Ҥ=<Iׁ֞$=LsQGF=8^=͑MLު=aHe:8 Ľ8Orȃ==ݽʄ=4z,%б WC=>K=s%=cq3Rɹ=|k%N/ =26Oڍ :mBq6>}(-$.n_ >Ay&>K1*](P>kC> "0|<Ӵ/˥F>O@w8>=/5>د,h(4Cuh#>ZƏ)+6> (ib:_>8>CZvZ@ ~=v0S1>\ U=I >S*HU>#>MپОKsƏн6=t^\ж=?x ӽ"[vd0" %>>T@y>=ۘ3 6WKŽcКq~V=_;c=7i3C <ůy>A{k26ʢ >&I=Q>O*1sfSZw㽠7trk$pr(_CA e>r9A>j|I+}Q'ѽe5>TSV˴|7FF)1>1OY,>?dh>, Е&J>S-HA>fZiA >Fщ1>0RD5>P[`$[o01# 貾rd =F`8`}?Z >z0-J>݇;B> r;>x/;#"=ύZD)d ; WUNzƽEћݽ`P#>@.q>FЬ'}B =]. :DZ&!L#.З ?> Fl%26>JŢM0vB>^39F.`Er6;>J6\ej3ģa$>S!>]0,B>3e24:>h1>l3H$>#N1N=F*@L) (>>6*>K^ڿAW:+q'J!>Px">7 =#/8lU%f 5m$ե >D4$K=$!˿!Y &65>#>u?Efp0v#>6>-b;@#f]Y]j>TqG= Ǧ { 1-U5=Ֆ\gxl=H=H->er3>@:z>xchԽ1: qNHBxtN :tIZm?*M˸@GT;[O[Gs^0>]Q @[7>xPtdE1U>8G[}6C)%>z\eE/>h)%ݲK%^#0/ɠ<>niX>@ѣ@>^l)>9H&>$6JB>>iaMQ9CLg;>N>ѶQՁ>,D>t(,>H8Ԡ)~>*^iE!{5"h,m#>Ƴ>F0c F7CTD-)Q?>d߽K->B|T޽@cӾ; N>V)vOT>>OWB>:<8KSp;>JS=3 >Ӟ5>чbg, @A>m LG99}Q>Us#6>\3T Œ,>;/D'?h)>f@L&1󫓿;>hwp6f9IP>gOPyL7>0Xsե =eҳOA >d/#3G7n01>b/S&N{&y%0>U#,xa9D62> qcE>7zA7>2 #> P3>rZM DH+>qK'>\eO8KE П#>IZ>f6{I>[#Z?>?z>*| ⽠eo!n=A|=>zPp(U:>釂nt 9>LbU<#:i==R>ƓXsܽB"c$8;F>>8\1>gb">"O0PBk'>ab2C!`w0>._rB>=;i2>ܦܲ>P@DDN3>|.Z,%O-q:48;BIa]CS[>>zK> > ׇ8>4>mpA(.聝_` DF>Bm Q5ѓwSq>Y DS=Vi?=Œx:@@=Re A= >C=_[:=U6"<-B~M=Tw@;ym=Ll?txM4D=˰=.09w*b=cn@M=`7pB=,U\[0R.'*&>8#=`mYs$ʈNa~%-={g;F0SuNJ-=TY/=/.+=3=ܑtF]>hcSMN6&G] &܋XBL>&Zչ3'& HdRlE! q曒=}a N j)>(9/,>]R<*>nW%>(|v(0>isБ#>WG\gML>'e&>>}sb>kf:LRR>`e;$=Z'ޡLwD Jպ>( ȬMN>hOĜ4+>B(de>vRW !P]kX,3dB^evFJ6%_0kvWAo[7n2 zWhd?g >t>k >pU=7=!Zb&>.ZnNaֈ[P>>Ԩ=[:Evi˞-'eIɀ^]Ž*}i⽀|o#>S88\鐷 >hcH$3>^Wo(>"6>gb#>< X7> M~,>\tL*>_$oS^;(]7)g~5>80!L ݛ.]>^NUZE%1M>dH>o/=D=fIy=;Ѳ$ %= 05z¸=rK=h7 `a3=dx>N=+ =ƽ=c9M=I.Q\=b9N/i[aqks?TH}{P9=^.MĬBݣ2@lj=0n3 =#=hHu={ љL d`Ut=F Q{=VҚ=TxK =nd=+,=hVq=.0n~䐩=T z(4= ݒ=dϴ=Y7 ,z.=WiAs0rVP`*ذL/p'bժ= \i:8=! Γ 70= O"q"vn=]cVwF@D%=D*}n=&c=y=~M)=ecg=fpMwd^f[>;L>09D6DYZj>ъV2 `>|kjY!PוZ/D><8]sb>B8-V8d|`>(~HrJc>$KZ^l0ýAD/8d.p49>3/e>RZ<>7qHH>3N'/D>98UK=^=D6y=Z=+H4T ƸlM/L+oW>m[R>CSxEt7H Q>fI#.Vɦb*>l6uY>e[ Qx9Q5e>sT>zeY΁0UfHf> UZEf*Ug!Ve j5U޲ʷdNTTD+mP>һ*UbpRGX~`Y2IJJ/QcTfKOb~)N@1-U#T>&i]L*1&>G6`M *MQVΠcQ>ɔeߦH]_H[G>%h9k>_ ؠZք!=ޜL2=@p8=w%+u1>=23 "P>v/z@oymt=DŴv)y6a=fkcARUCceOY3=? p>Jń>aU>zL*c~S)^-bqj\J'UO]H[jXQkSť2m@>Dd޷A1I3_]K>(`>ƾ[9"[mםc>]1Z+3Gc>SU[Z,⇟yd>BB[51b>x+Wk}#\>m6P䮸d{3x[zҘ>4 T_>ڭZ@1Fo*a>nU̱K/AI?L>2>5|f&~"_*n, 4u2Z5RU>x#ON&>oe8h>pXOZ<^̳(a>\A;*D5L\b>+4>P}.d>FU<>fnd>5ѩa@>%c>P" UD>8i]V>NAe,L*a)]/>|a[h> 83>/f>)Y?  <<gwiH2RDxfKk->p,4h>.+>> Dh> KZb{琽t?=X>*=^-=,$2=s5wѽZ^7ʽ<QB,l=s+=D6O=Gۤ=F=V%QҽjZ^_}Ov=HSEX;r=NsR=10=l=V/1mS\ͰƽB$Gx%U Цԟ&s*=h&=d4=_l&#Te=M=6ɽlO佴(@˩Lk "+%[="4\e=1rH׾==ZN=@=Kt=,[u:ҽJVrc4h<=kNݽqSv Y-=TYWOvҽ>iMλ>v=1ljYvSi=U|Lwg=Wmn=< a%=-8=ִ(zd46=a4=@)tL"n=0Շx4E>㭤AApTUP6>vc43J2 "A4wS:>767/>7>e+aQbE>KJE+dʾ>B+2>3ɇ >KG>Q[^<&>N<&SdD>G`&e$>s͏+$>'&>l/(>M&%>Ը >8+>RnX*>1SuTG'Z1>j) >B:<>n48])>6:z@2D>"#5DHeKX-`FaIAyU6C#g͵Q$nt<4 [\/ZX3Mrjw >b>B>,5;c!؝R<~ Z/>C 2>(W/;miX11>W v >ҝ>%8[4IOzX#u8>K?2e|4J>vZ$|,>jY, ]$)d׀>>_">L>$>b/q+ @>DԸ1}N2> auH ">ö@J>W-R>3G> 5>x *RgG>hRnR>S)1>xaC>n>Q'C>3z<=P>DD)= 3s_z9o=./XwY>%|fT>ljy̤'h_&KE)0eB꽃gw03RueR>>x ->&i4†>b1#((%2 >Az1A:Rh{&pmSVM>oW1YfKJ.>,>̡yKLx:U -ADׯ-3Tp;( MS];BVB, FtnC" o&r> =a>S{RG>][!RH>2~5> 1qdU>xz@==;LYJ;=^GlD=+N=Cpbca/=ǩȽ>o߽ΧSZȵzDmƽ o"1vĽwt=A1'_B=1OA=Yv՝=2T^ ŕ+=Mh.AOI&oYGh=e2,7+ỽ(z0ש=gjq{=&H W=KA@6̽nӽ%s"JD2=Z4>=hwMr=ą w֬X\[t#b?zY>TA+bKjfV>bI+wW>$Ip :0+3_>q\I;>Cas!f<>Oy(3Աב>1*6= NqDVP4=cۀ>;5uKM>-.QAZ0cyZV[Y:sv e>5T>^4e>ƐAS>@sӧUh ·D%8 ]U>ʴD>N;?e>x"T>GloϾf;Us: 1ve>&ZU>\'d>B5ގ0T>Hb>B<'T> ܚc>afOTQ>{;vc>R M>ݯK`>:1T>!5c>-gI>Yʽ'a>~*a7>$F$X>2VHH*c`>q>wʦ>x䨢#* K=qd >YU_o> 5~Jq=b=42$'e>\0=0]A]SdF O>jA>54b>{c16T>n~^>lT>HKr8L 4@M>k>ASJ>J{XU/b^SdV>UWaxyZ>z)`z8sY>pPco&=X>.ٚa䦀7G>iVHk;2:>e&`6l/>7b4F0cF>C^T>VjG˸dݹ/'=4N.?dTy6LܫWesR Q>HP4e>\=2Pq >/!4t=gzR',Xif5c-ВKhp̰Ų6q.~=(=] ѽ6 ФR4;%=dQ =]=qA =a = 5nL=7 ȷ=I޽JnŽ0@>3izgK磽"R=! =3l飽wMB=#=I ͸$̏qW]ǽ p=' Vȶ=/|=[BIٽ<=arlbO%Խ ԑX2%'= fT = P=ܽe-=nU{=%$Ž`m W޽s#(.cБhn-5җϽfmfнbQE^x䮫`=,6_=~=k@``;=G4=HNJK_ӽ/䔈k=(>uQ0ɺ‚Z¡zū=mR=PN*EݮoսXE5'gxu>wdSw{*@3> &~4ns5(> !L ю#V3N7%>.Ch@>YWA;>lݞ;Cb*.>@|=y:RqTޤ1<6%>B\.>4C$ +XEo<=0. ԎBc{ok_>]i0yB>6 R>j3hTٿW0v==X7jm!Xgm IC=|\& >k A>>qO{GB% &r:>0-: LQMʃ6 6>{2>PUd!>M`),fopF>=&@> SL?\>C *>sܢBQ.>捖9!$ů5<]MJ>rAe&52L'@*81>9(> tOG>%<>a )5>1<ֽ͋`@)?=RzL0콦((h> uZ >NZn/Հ`p3>h$%LLSB>2>zP6>$t />K #>4-.]@Xd,c;>K(>jΫ>&=خC >aE==Q7N#$ 88)2H_>-( >'A%egt3J4>Pg4!>q`o?GUΎՅ1@]&>y;>Hq>k #/Z$>L=J+XdU< ŨQ X=z6ݽށ87=095ѽ!q>ژ.*>c$>^2i 27B$CJHK6Ȅ.@UB11U2 `L,~R{H<2C>TYWF>!<`w~Z3oR# - ,5>kYke >a U">t/;>Wgu%x9z$>}d=f⥘{|Q'>#>G0>T-V;lm"C{çJ3wE; RW ,ʙ+ >D}5> Sf#>w.>]~$w߃BP>NF$YPi9#d0># y(>Xݐ")֋+>%Mt+1>@/(>&'0+G=ͅwSY>rްPN 'p1>aI$:Yq&'2>\<"2'%~Qb,>l_\ BAX⽢|"LZۮ3PJ8C>66>2W>ȮcfSpV# qO>wĔ> c1)NY>m1T|ݩ<>UP> w4;=47`2><F>%^E_2>̱?5[ uܧ@l4QS>rJ>2҆>Ŧ'0> 6\%0o+e@@y4YNQ4lu j>]Rb:dGo D="k=)mX^,5=O)]M4j7a=lIO&'\ӚCу hS=𕕪.p"fNu2!=n%0H=x@xKK=C+fn)9:=k{ŜceS>=Hox3t$!=㩽b=.Slu2ɘ ZGX*0= ҏ(=iyG`JNLz%>Y>=1>>F lsFWy|T>)h{˹>kX_Qtؽ?ʾְ!*k=9 C ->VeIf$>*Zo>,(G+h=_c!Kc9bnmnC#ݽg.Ӄp+>6$!>lzt >1 #>4j2>3=Y3F \>#M>@}uD=lX'=>;uI= nvSbewcԽxyެwp2Gb56n/ R=Ak؃=bLa$=Fgb=|HCG`FqC0r%=K,.e%>JBV=f* K $$=6ꈸs=T܂0=jT!Ej.`ֽ%@=OkX=#ƽx㽕Ró=>S'߅ն06S ߒSt=8@~=hd=2gL=o|q SI ^c.C[9#>\.¡q%z2=E{u5> S aP:>א "0pi3=q/=}zս7D|ZV{L=?D 53? A=~ ^= =0=P]P5|`_rjf1Pzsq=f*=Ho =H}ԋn豽W|0?=IU"=d?=zM=b{@`A$>ƒ >,Mc>:rE>em]f>S3>l⦆&e`>Y|9>%>')7\ʸe[y:#mel$zQmɽ R]n=(ݖd2Q=0<=QyD>qHm?&y|\s8UA`6ǽ1B`;%zs((0Km1),7g 0>U?>P7=%>D% 8湷8`s)>bZ] ڗR5\p߭2#5TZ)>B0&l?>$^FI>,M[6>W1n  7>Znç>m*<>cX#Z)>I=?ZP*C=NNٹ@bϻ>>r1>=L y ֯;> G"+>ُb2pk Ox J>WB͍,>+E&>F mg'>UI5>uz| ܬ:jZI;/ux.>J4$>nLC=>~gxF &>s~CO:FI 6O8>)0Y=>_bE4zX5>Nf+-$>)6K2_ +1>ox0ҽXE@=ME >L߈+ ?=z> two<.>xۀ_=t >Ɩf=$=Z" u>v~ Lf <.;`4ؿD A2:=D+o5)>bN և5r9r;"C H f2t)= ԍ>A 22@ s6ؒOD<vdJ=^I&mT=FyCNqJ#^GEX\L2(%wltvV>_}UD2b{m= 4cy6xGE2#Zi:H{T콖R>XR8my >;rm9_p b>{$?>\' =攰Iaaǽ v7X>Ůޣ=AWppM+=1{h;=x"/,=߶Ts|u70\(7Oo֡`=nYyv>EJb%$>d->~6>@ 9uR.>ֹ*{ 1VP&>Ķ=TvXGHd0-'EW#t1CCXYۇ8Kŗ#E`3DB>HܧB,>p ->5*#>E|B>RRt=0gX`=w:x@>dߔb C%1 15;)tEK'K Jw'>ȁ齏I>}[5Q'>BʷU- Ω">h]>d#<->fȁ>x3B>0Zʄ0>p8)-fx] 1>Q>zgC>NS 4Y1>䲫,a]36''[&2P_886>r@NL0>(YV09`Gܸ1>O'{Z Ew\12l/>1(F7wd F(&N, >T}W1'>w"#> _+> h-'>~Wһ9B ՗(>]>mӚ>a9U3A2>д///> @'8P#'zs>66Em>tq M>1RT>@i[V=: &B@N>>T[6g$LOR[5dҼ 9܉*"CEB1lWc>0-O=@[5>p;>nA)@YAb@Ԕ5>|}~/>ĄlӐ b#N JPy G;bDnxBSZ3%t-D=ns!NESS;=G_Č=T=C|4ovX5~w=`.Ma=:a9'=hH 6#۽1I->.0+Nsǽ7|`.=ebNd>=㮩!=w9XL w==ʽJ43ҫ= UC EԜ̽] Gнmq7Q=]t5P%˽ث=FWý I=C=DayY9ƌ=`-o 3=H==`)Z)l`U|=Zfp]iζ==UG=M!2 =;qYsҨ=G_‡&0.~=lQ=>`4=$v=@Cu!cb=zј/ت=y ē,hSqɽ;&]޽.dž ̄hb=;/m=1ljX=?Y:=<e΅=Dr =Hak0GhʽrýE$`s_Qyɮ#Ǯ=NVq,Z-Т=|;kr8 ~|'J毧,(=VW$_=57MٽM(Ľ kH=(4z=,=D==||[='T D3u1=|IJE=\ሓ11Gde>ɽNDn=2Ԧ=]?-n=hgr$U ;̿Lh1|6=$fTJ6Z= 3=!=f=j;:$2,/= ljX=kXm=:U߃=R=Ϙ=ΩĖ=>y~qEy=Bk_=i)N=d8,=g=~w=Ǔ4DP`3Mp],w]=:LJGmN豽܃Y6wx=[_\=^_2`xK୽&hwl^օ=|=N;:<=Q/j=?=dWF5A=F> Q[HYDd=sGAu=*1Hk/N=<p=0Uk^eUL`ý䚨fQ=XKv觽~dƲ['Sr=Rؽ7=rBݪlL /=7m܈;=$)ڟ=)ۥ_P3˷=f`I,=-rһ= <:=02K3fk&=pR.Z%2}=:=FL"ʽ^aBŽ 2䠔=&*=`ZۋiuW/qԳC€.ω񽬽*>C[@T5*9B~Ƚ{潟cˉ=n/L9AU!ޡ=z:6=rٜ0=*Xg=) = J$=Έ1=lw Y? ½ $=TYZ=d: : 4?kK%ť=J=Ōo2>!=E1jA=Wagčӌ赋= c =f= =jC꨽b'*=н<{HA=p1e=oi=Ղ=.m=ݟ %&F=!Ak˲ݵ d$=baOo=8D/F*7w=CH=YCH).b5ϓX= TPl ͣ=/ ''~t =%=N>Ҟdc@i=t;y˙=Q~ P#9rDA+r1}.k!ڕ= G=8+*~,)!p7ϧF-hZ=OŽpDIo=؈ᄽf b=~-JZ=jfDY=?yD4mQ3][O=X8 ICUOhdzbpx@QlhȦMe@h.93=8(Qa=#IB|e(|Z2N/c=2 =d1} ½CWXŽ2@p+=;L>,?eٖzj"=:bpժl0>&8ec?='{="r˽dP=_Cڴ=Yi'kg=RF" =j\ɽWȳz=T=L"3Sž=T±y, 1 fנ=+PrC=}޼ϽSnFx8ڥ={־=_}==MM)Pu1A(Bg\N&B=Sf=z˄=Q`%XŬo8hc=BS_=Pى{=e='̥Qڶͽ>h׽0qϫ֩n =(Г=U= 6͍aPL/Ia:fg=j $:%f*=~<K,^=@MlY=vILĽZqĽd3<ʽ=L]h;=W4kVށn>ud˴#s= 9-♽%!h=h[/=['ܬ= )=F-M`h=]ľ=My=厖E8u=Pv |S0N&@}ڿ=Mڨ=;^ l=.iJN%Yؖ=yǙHX JŽ@o=:胋ǽ(zۻ=늴G)㽺B=~;#{=< =N\' =LHŽ>m=G=Ʀ=/xof=7On=:8/C=ʹa=~I2[s9=]Oֵ_=RT΁3՝:(A\x`dN=D*V\ݽ!9ܽC_ҙ"ƹB}=T1½(nӽȀ7ѽBĒܽ=o=xwG=j$z \D7>c=/D:= ڒYSc=T=f ӽMN^=l =;E-'5νUoǠ=ng==Y\L=ʣ>{=7Hך$cG0 $fBg38JRz=U= .W=:PEb 4=B`C=rrBwęg6.hb==+= $=X= P&=]lۜ~=-Pמ=ZIt=%E˽{V=} =f Hͽ.Y=\.E=8YwW=YyL臓=e.뼽Dӽ`1qla>h0 $!B(=ps=$c?F'VŽ2|Nx6ds=1ں=Pcyv #B=Uq=\ェӵy4´½2ɤػ]ؽخa~6Sq4@½ώqim=y;_b=႖$=`&mm=] 깦=lΙ^=IuHѽdƎT)=~=AہDy=z~=>F-ڰڴ==`#A=SLRcvy=̋*缰=& X|.UO |l="/Ukwަǽ ->nX㽾ګ= jXR B-=}=)\en#oĽu#=c"P+=a߬=zf0=ݬJє=-̽VnT=zځƷ}W=zqQѰ26iŽqG =2F龽s^|=\L4'BĔTRx=Lq3"I=f>7Yi=㫗M*.+M=,cxڴ=Lr{&(ҽ`=VF=7=m ߔ=iK=8$G<`=np6=b=H}s_hP8M=CUr~=@ǽg '=9.e*f=,*zC=Ӻт|}(=Y= Ɉ1Rֽf\,8E=0ԡz=(f=pZ=qxPB<|< &8ͽ ϳkҽ{:귽Iɭ7=M ZC!=o oWEϽi1GGs4jP=؎A4=7P]ٽ661½64k?7U==Yaw=]&l~=LyLzL-w =ĕ_1Г=[}pֈ1NGcR9=" j1VЪ}pVc|z,XipWEq5q=1ﵽja࿰s3"} =7kv!^F*=ܕm@s=[ Ph;=pϢI(=ɱϸ=uh=@/A(%=]q<=F=*zBԢ=uo3=~e.Yh(gV(=)Vl\tU=-{$V=[@ͺ̽bQ ="@98_=pyhhy= ¢=f cR0=fRx=|%!)=21 NzQV|8K;STbi`#= "7^=UZSy"<2=mGG9=MYǑ'Wr۸cN[>O'@57.371d2C[>MKHdmg [>fEbh K[>f#=Fuiཚcxo[>zY+=N(5$7Wc<,^Z>jb(Z>&=a>L\ЇVg1a>v&PZjWlka>y:+Y"bm<__>mcYD H>`{q`>e Y[ZL|=Z>2YT5 I>aϹGtIiMY=pM?"DK>+8xC@:߹M>˲xC;c3TƁ=-<%HsO>~PQ= eL>C8wK8ľP >^~d 9>+($<28_x= ݩ#I ^O=1y=,g}1."=pspY۽yZ(=^;=<@=APj TVBl=.@kb>)T9&x1=z=t:a:J>(\TbtUR>dTbM s'W> Or_c>BvG_vYtocl$׿X><˂>½ǽ=fa=L"IJ=p62D$p>$>H'3]>:7QC,>N 4GP>no:<>,hgc>*=n: M*7> ӴN>d@z)b8>kke>,j$>>-[#ܘd>ĶJ=q,KX 5Fŧ/bTd=Е+e=IOYAcvc-sNG~a>|CǛ >Fh6!>2-H>|%CY>C Q>Hk\F> KB>d.]1>ܬ|R>|~S>ocO+T>C2"T>IzW>X MK>/*~=I>XܨE >@pђA}=jN׶Y>IJ7>V> JA& >7]-`>[l`CU؃4>D| 9C=xvJ[H>,l%-P3a>a&(K{~L>A:6XR?I>12! 9&2Xަ>[)P{)AfI>> s%T>d >YƑ|gE}?=KO=jtҽSJͽ/+B콘lW:=) OYU#TJ=d0T{#\-^>?$߽{W#=u=_>; ffOؖ=@V)XjS=Z)=*=(=_LMӹ뽤T7=[һ,.^2yB6=&GV;<=+<\"=dĢZ{ rUE]xCMe+A>,.$>H>As JV+ZGro托n>|p>o#9x=2%>_-ZzLbY "Y%vJN7}gO>%٥s=g!S=X tp*=$=Abkн;d&_w=`w3UǽY=@#i1t,t=$x= N;Fɹ=i%s"~7G4ҿD >x Q9<մ = Czk6ɽD1urxl=>KF*2((ı%Ee?j?>]=.,Cg)<>oB*RYվT>&[J '#L>b8&!}6J>fxڽ#hl=i;LIn>B6~"[ a>187'LE)K>NiN)>jgHȰ!zBvz >5$S>ޡ˛xȽ&vB׋)僱DQߥX>0g)="iBj&=rAďBt2 lW=)]$/A81=tS/R4=ALs1>9^J#>L0Q0z b>׼gAQ`9%>hp*)=rʗ[qB>5,FhJ1D>F pG`rVS,V> VWLXlz$>ֻ p' ItlP> Z[Ra>12=V>,u/[>|m:SV>_| b[>hgLW>xȴ]> W>Z`]p[W' U6tyWo]wU>t}]W> 6R>g<;Y>֛$0k4._WA{l< VW>HП;>H4.X>'wgc>09j@U>RnddHڒTgueU zRcxQiB"=2ke>`2ש+S>^PLd>jS>$z%=FٽMZ=#ݽ6A9e>}`ET>`M}н&L=#Sf>dT>%OSE\=ehe>ڴGlU>zgeo0o;UN4_Hgf]HOUO1Hnf>(`z.U>f>l^U>$lf>FLU>"AIf>=sʰU>PG'vL<ф=`I㴷!!;=\G_e>Ā̧T>L2]=),f>g~3U>@7i=ҖE.="Qe> ~T>^ĸi=쓡Ѯ=MTFzf>S'T>fڦfU9df>p.e-U>e>zU>^V8PU>8 [hd>nn0CU>v/(A=HaumF=[իed>*xS>4Y e>S>Te>E9gL9=4\o%=3]0=eziQjd>-Vn{\R>< ק=H婜a}j<|٤=Cq½`/NHؽ澽/ɄֽHuG=O@Uc8q G5=y`ӌy=.{=<d>4_6 Q>><=;.Я`e>1R>W1j|LX=PҞ=P׽h!>B >j2ILEУ!G|.1#_|L\K|^Nׄ,+MFW<8 MY?\2ܶ@t`~NM`HN%N>\'gL t6_L&ub?L*TTbsUձT Z(LUlvb3 C)3UO]b/O}S~/=EC=ن.A=88K=@4zŒ`c%%cN,#L?-d$'QR'=8λ==轓i&=U˰bDO=0c>G>Kc>nI$L>܉ubQc!AzBW:cCfTFE @Db<<`閨~=oкLnca4aO8U{]'Q > 1p>&齒u!*2Ὗ =fNQ6ٽAxfM=SҪdl&'}Qb.-ED*}Hbߜgs;boY ZG>>_cWOpF+&-5O D#w9yHth)5M_iB/U@V`^;>R-Li]^tU9>K~,Qrz;>G>SAJF~H\:>{)نFoE>7JmXxUCH>fnM*]>YP# >Μ=$ڵW>>NL >GkUv9$>VoX 7qQO>L^"P>Pp kXHۚE0'<4=CzPu=gP=qq=a/a3=An 'fg= T=DU>vBß>QyOŵ=\< 㽒0=\I= >}Ֆq&E>ih=k1tٽb5=ХnzT=Nq[\=P33ܽ@ +SrdI= =DwvZF=oR=װse=Cs19{g߽-н_Ұ>E%E(  >M R7g O{=v<=)J=l]>asugҽ43 ;E|-=4_,ѽ;]Խ@\EIEQսqC]>+>^|jdc0=ymΐ==J D=:!>={- !|9 kS Li%%xSU"aź%RjLVn1X68FpGt,f< )'&D9v >0#R)VZ%D(Be/Ml0Y9$ ncQҥ_MOZTAGcD>yޏ5>`8n1cJeR[j5w^[]#>\9>6ݖL >.-=Џ>8ǑIWd>Ty%{=rGA`=JN끩!>0~>=OJ\Jc=>;x (1>qn1ch QSPY!axcU}%-Yqi tebr-3UE5a>V> mwN|2 Z.p`>V>XT>?=›V>=粲LPSVrgo}A>vsTC>-Hnu_>RbHV>}H\r>Tw3xVUH;<ߋнUkn=;%C@-JJ>|\^bU6n[T=ԓN m!UA>xpZSV5Q#Cs[>V@Q>c13\s~D3FvA3F>+mܻR ;3:b4>nmnA>*EHbLh+>'=L4bg>L?7)vٽ>Fս*#I= ,82>k14K«>hш>=Ա"PǽPY,g 8U+p>}¥>>A>{Hx$}>}C9Pm#M>7,>B$_^so9P>cU:F`V b>Vd^WH&[>H@gRdHb>P<؁Y!D,`>40;Ym'¢a>|$VYq.xӽoVZʽ؜Pځb> Xܭ <]> dW`<@>1 b <.6][>\e0po{D ^ELI7)D;>Gp V>9:;\BP<{Z*Z>_^a$-QCW3uqὀemIN.SxnNV 5[>@y9\Y0mg[>bf_>DPW[Gm̽^l$u=RhϽ,+>ͽ} WAa2tf[>aQb2&[>= ]=p87=DMƽbz]Dԧ= /˔T=z Bn{"lbLӟXY>@zc>w5_HZUz M}kc>Xdg[OcGH5/xc8 [>pB.dz@[>qid нh[>Hd>koeY}[d4Z>\$8c"hY>p軉=*Ft=D,hc>uX>Z8bxV>.b>._V2b>x߷U|7b >q;FrpN>"NzA&(.e=*9=0db_V>ȷnH>o@HA "v>@DJ>Rk>A"Q"!>,ohCI]cI>$,>d4]+]>"zSCl3}`>bA>eta2("S"O>fa>!6rPzlba>u3kdTY.P~=G/=ќqFཛSb1R>6N:>5l&T?\y>L=P>(&(]>Ͷ Õ;>TY(> c(u%y8KPݧ=w+G>p*>6IV>JJN>$vQZ>,}\I>Ыx aIƽs0 S 2G;T>CGR|G2X>Ep6=\F5F74a>˂T$R>޹ @-uVZa>80>AJ/])lUb>1/Qb>J66hb>5H/}Aݱ'`>-QC'f0>bl?Bx _>Dn7ؒa>BR?= މWAb(3 Gc>[Np=c0e8ԽJBQ54d>$J7Ƚ"0= ' te SY: >Nd8Zc ֽ~>&H:Bֽ>;=~|LɽE:d>,*!6_4>1cKd>\P2>k` e>0rg>O&ie>`;E@!>t績e><<`3>c2lwhe>8Q=v=D =>bJ1d>ぱ="񐐩X=:ieAݣ1Ae"d@X齎?(>_@jhV,YA#">ƌ~rF>o>>(F>#c>W>#`;>1ŖO>]sVS>EB 559>ꑁ?#>`>"0>*.8%ERqpINW#F;4;RKƀOH\oPQH bSzMCݎ3|a.Y,Bh +>XIh>4P,>h\|h>PZ.C\hT0>v$g 4G4->S|z*h>C5kSfhK/#4>C.&"wf>-~D;3iEgT8V@>2>nRxQ;g>4,Zg= ^=@zl4*1pcvfFK+ν|0)\@6=jt.ChЪƽ [=M՟=h)=ǜp(ݼxh*#8Q?:Ě=0>iI Yf܅ 'xO;agmQFft[+=&Q/=ܟJz=W{#׽½`?R:='i_>.](>F e>{)#lfpSYcjCj0؍{={Σr=Ҿٯ017%YDgFlZ5Oh먶Ƚ@rD={d1*h^6Zǽq+=++>㲳=h>K|3.C PUhduY|->2%+$h>P0d,^hDK0ʒgSf7{2>g03eJf\)z9>t}xe>O]:IeZhP==(Mb施4=zgh=Q6 =wv`ƽJe½A}c=aA~c=;/ =o|'/,}2؉=eWݛZ`;pRے̽=O =>Q>qͻ_=@<4=H%JrL{ub =&7"ٽld/=t=%=߬r1~=ˠW\kQ=pӓt=sM1=C&mѽ.@@:j='r`=@qT=;QtR uނ=i~8=jk(=²Y2̈́%-h=~@߹=@s&冽F6+  9=={dֽ,Ƚv'zPi×=awn=VnOmsy;[S=T ==ԟOo=IfD=':8W콤@ͽoD=Nx~i8=Bu=mv=[L=W2?ջ>h? =ȕ+о= p(Ɣ_=VVksJp=N 7 :ӽ' = wϔ:3ӽ%-ͺIU=RȽ,hwGU =`PG':%Ep=2Ž>F<.=$Ƚxf=&_:=:!Ž-\X=pW[x*aDdAнҰP;Qt=($x$=caBĽjK=|}fJ@!;l+hƽ\D.%EY#=/}@4=PcA\~=`r=`,w9_8Zo=alpB&P=|=}=|?=I=f½^(=l+3oŽVusԹE~䑻jҍT=D$QmMhFH\kX=Az˽bji=@w>SG+#ѽ4 l=&&*(뚽 a`ީ*5>@=Gڝʽ~ָM=k`UN=Dg'#= A׽к٭[P[! =Z=)iļp';=x"6=♧нqT w3+ ϽZ 0Oɽ\IBG=7=!dwPI&=o A=Rv1=:b8P(=)wz=jy=S=OŸ ںجӽoi(=.~o=i [=Xa@½&4=$-a>`=p4}Oнxƽo![˽m="v;%v}=\Q@7=C˽_2a =`$1P=U˸=C*kV=h=O=^SY=.ܽ^Ϗs)={C4L"p;&&Z=G D½\@q`=6LU=y쨕zu%=ˆb=[| -`=V`ѽX/4=ˑOؐ=$>';=Wp݉=E࣊=XӟIVӽZC3Ҁ=mn=8S =<6=)7` =q4>=2,WF=&={8j= _]=V=0q>Sa~=,ɯkz,Ѱ=#O=8+Gi3Sʽh =_=gC=>TL˹=zHv=͛5X=~2$~=dS͈^ˮ=m&C=Ա=Hk{X½_=͗eZ[3E=DϮg\i==5=D:h<=Q:l$0\ֽ ~T=~Ĉs=!y=BA4=B7Ak-=ɟ0v)B Q!ͽ3^⯋= |ю=^!R,, 3ʽ[ٖc?WWs!o.ٽaδ=Iǥ✒Դ>@ `=!8=&(s;&0qJ=y?=F\Tx4ཤLIVo^aWȽ_M-{=.Un=̽!ǢSc=D?ٽeM|c 0=МͽC=2i˵=Ky=0ghֿS=(r=¯*=0]*zVJk=! V=u=~m_=Vѽ&h -=ͻtԽq<\=rj䊓L=2lA=Lm&eӽ<@:= 6J=J_= ="=>՘4`fM(=A,=+z=CDz'cu=޻IdBym59d=s'>C:4vne ۫/=!é9S4hhW%KOlc}ڑ= '=jV=!Igν yE=7;={+[H o=T[닽ށxW߰swO=byGF%=0@@==PB"q̥=)ĽD!=ŁWYֽTҪT=TpBBy<<1n =wĽ.j=:nI=U*i=43v iW=6G#=>zvνx^8!Q=Aq8=g8<=)=d={=RY(?UL\(=3''%&9?/-Fk:=bۥdTx귿 >ス s珤vJQ=t'?=DA&ĸ=oD[=G<Ѩ4>vp-TF;>X326 :>󧡊?4Ҡ&;>e83hLc}+ճNhՒF>A,*}@Z6I9>[6"*d"",} - >b4#F%:+>Dv$;>.3c6@ wE>jrw@zjt :M=?zY>AN :9:S >h1_j;>doP6ִm0)Kg*H>^3[΃G->hYگ4f0]*>cQ >%M*;FS2>KT^)-tF6+>rq5 fD>jGʔM1EB&"e8!>C7f>H)Pk=> 1".:.=>Nx_1b3BX5<@~.>Yw 2 uSY#>΋&VGK%B+!>al$@Bp֭B";=]&:>U$c">lfPb߆>W>j0^Y>-H y~ >(eo >}{lJ>@:'D hIӽgoB=Ii&.=ɬ6#ӽ>FaM0wIh=9j۽b~c$W⽰A%>fW 1>Zwu:=ZD~cM#>'+=v>zq4`;6@C {/>z90%>{p8>ƵZ*>V @5 )">,$W8R>K3`ϞNЄ?>&l_ 0V>+>@M!>SR:A >xzܣ0;%>tH> f@Wj0> Z$ =br>$w}>u;->E Xt=t 轝bi0>+bE>XS1>.5&J>6| >x:[{v>F)4>t +H>XTA3鶈1> 驦=Ljۍ+  YRe >3>VϷNr6z4/&/4m0>5)ӲP>+D3o/2R> 74A0kWoD>!c >wl0#>sǨ]!y>0Zi$q><7>j%!> R(;Zd]s.>*J"?>[{>M,><{wl>sY >┕&>X(LKK>I`H<F%C]V>=">/X&jQ>gm&>|ֵrBvL fKY$==0m=l*=s >/_peq/$|\(' D,y>7j50 m=H4Fey%>p{@.:7eũ\  ( hs_/>ux:6>6d3N-6̸#>N濫,>Z>(C|>H$:jJ&~U+>rZo])9ނʭ}3>ϊ75/6(=7 ac8>9측1>`C *>A>U5jLVe# >ң)D^|%J )1>}f~*we9_)>=̾>Q*fFPդv.Bn Nŏ!]`n7 J:BW&=Z"V*>pTœ>N޷r v;SԪ"WPF^">H 1>ݛP1շ_#DǼ0>>!n]\ 9>u-`3ֽՋH;ps:T(1>=i:"9leQ&3KK wս|;e:ٯ=l<#>**cu1@wM>8ʦt8Gd%#o<>)>>c$ιܽk^T|ʆ޽-(=A}n=8bUK?&3J&9La<-3.^{7R nƊ0нfM2n6>l`)>gG%4J&<9\T؈<>Jb[}^)>:m:@q`'u{`Xe7>=f'~#勈yֽ+i3A޽W_;<ѽ!F洑5[i3%PEF?ֽ%21-SFֽ[P >pWeK>NI=S16 #Df"gK+Gz *z!P)M usA!X!QRAE!%>uqro6>np'-hq\  8Xe ݓ/T$6:Ijp >; == &F |aYg yI/l>X4=&`[뽢3ۢ7Y업>fЋ=ziS=PBϽHDlBH=b^+>f5̧>C$>>`#zPOAg@mƜ/>wP!>ǪRyZVoJt]`*|=5p5ٵd)1ms4>0O'>Ӷ0۽.K'|>}-m}+ >8dy=gl1 C>8>2xPH%у! 38>:uu->KrJ=0{=8\>&z!=et5wp] tPG3:Aw-X8;>n`CKs>r >p{'|>7W >R@_.#STV\5B >SWU69#jߚJ)h8>\\hP>2cCHt1D6)nAxGv0>G&>w؁uF5N>_0V>m8F>" P:Dy%huC?Z*ož*7>8K>d&A>]0>gβ >`@h >J$>J%ͽki$` 6g N">)J >|h! >O_i$0>)RV.>0PZJ[ (qdR So%/tFMPit;ߙ4>">T8LDQv@L&,>YRq>26>HW="&>Xl=y62J2>Wi>>^r!>L <9>^,>lW4>qI%>ev%>ʀ|=Jص=Lhy >:= ),{->Zo3>j5 I >4W2>*NO>kaNPA>_IP D@>0].=NƅX(>M4>o06>d8ʼED}7( h о>dr2uhA˽:}h%*->@R8~:= ~k4>"9=V0c~#>D)=:>H.">$>e~P>8R@:( "> pG#XuTDE >E+@IԔr>H:#5P>Ԣ_RRלycU>mP!Gx>S1@6/:Ǚ5>ӈX (UU%I;28 G+>y/g*dE>ݞ>?^ol)$Bg(> =>pԘ,T+.#>@!&><%ǿA>X7|f7L HN+,>X[B>^ED\g~8>&?-ǽ`w3=țy=^uh꽎@`ŽkT<}sĮ9>d9k{6g0>2tIu5C.> 4:U$> _.''>ErC"f=0EGD&7>⸤{1񤇿_=nb#齖Lƽ)oP=4qa@5@b|W@/>F*:[;3>&/RL+JOe7v20>ý*iH/>\-X19Y޽=2=`#gG.?BT*=[&gEh=R;=d=u(w̴ZI*>ͮh+>xs .U1 =^Z>ŀܶ=FF `O\>}hꏯCٌN*>h`\&cGة=>EGXN  E{#s>Pj3$G{&>}<>bf=A5|D05>cFԚ40 }X1>pH/L={AKK>YR[}5^|Gi6<eA>' Ne*&>>?8>RH '(bkHT>t? >&$lKn  #0X>=N%zG=:xV6/>#< K=Tiu:jF2H9>wU0=7T uyt !-=z=⋁X2۽T Pm8(s={0p8UȽ2? tRJ*1] >H*>@&7vŽpWvM6x3;'7 i>Z>>a u0$Խ>HD>fʜf,u > j꽡">Ql½㷾F5b=[9Jc潵3*~> m/kõy_*.G3>mxH(>B!k=fۂ41h O "K@8`3tg=#ߴE<%IEN=4Yv>*=m>p_y >( #>=P=>i "8'>2mTN>%PM>|K>טh8*18g[>>]΍Q>73T[>Q>'p9Q> !^7=Z%6%Q5(;>k-B>~l)L{>pPdR=F_?6ν/(Vo \? ޹Z >aD?>Dbٴ>y9>hY4>K;>70 7t^?^M˵=L=>VgL>}`ٙ>2DBJ>hh Ö2ƀ5QG=L Ž|>3>$KN}AH>2=<[== e6=YWM=RP=u۵H;-LTܕ= >h^Ƶ 5HQ={>Xǔs>*"@>VLkڽ6 ^Z9=[ >fA"+> @>N:L=l>`rl= >tvbvhC<;s>=XB"eI>8w=aGZ >01{>} FG>|@>VD:>4# >ڷ">>͠V >QEK=>4lҽJnyu"ŝ>(>>'3M,=.$8B\>BJ#@>t:_=;Fz=$ 9>0@=ƻre7Re8\G=q)= 8WmC=,bj=!b`=ؽ=3cة}kB= XXn k=U;>z=Fф>) N=CCeP=zϵb=@{l33="S@a=輂w5="҅(`=$DCUʚ4荹m`d.($ =9pO6_t#:cp_cyoWr=P:W\h=R$c=POؒ=tFg=?[=IH=r1%\{b=pO]=}ҽB bγӘ{Tȟ=;#n#=ΐйu(=`p#=`Aֳ=Z/=һ֐c=JAFH=vX|c=G QB=aڴyP=RH { P.$roA={$\/q>T|D=05 7iS_OU=4pr=@Z:,==k"=k6ݭ= ,<_= u֒=ܐF5ka.A=𼤒.ŽOz$;"=-\?RŒk$Һ~/$-dpy*=p!9 FP΂SQԴ=bRV8^YCo]o"p;qGgb \=TkKr={Jl=`՘ϻi=}=dRo=Uy~Ia=>#5=82.{=l: =egiK@=G5݄4(eqoBx.H=xW$D's@>z jB>Xj@YR>+aNJ#R%G0:F1t֘A7>XK#>lEBS>r'==̡*qQ0%>W4[>J% I쥭m/,H$JK: 7>u]Q>ªuܻ;>E.)P>Lz)6>O>2>CՇ#/T07eI>e@G;A>`/3%[/ :$%F>I>s]->dWM>Z0%::E>T)VdW8l38 `hc}>N>6ɼ%0;?_=қNȆ?>ۈ %L>"0Q[=ӆ #ub }|=4?F|T>˵˸C?ʘ"j%>I,|`e>dy4ֽ *@L,)W#>dBC5 L60CŽC=``= 3FV%O_LK(g\T>l0Yɍ>k=ҡ(y=^0$ ]c h>cE)C; ]RN-o=8jθOS1 >a0H==?>Jʙo4>cɐ;@35a _L> Ί!_>@Q>|}02N>!M2N,>~xF 轨`aڲQ>fB>6EjmF$c~Wȥ=w׽C>f}AZL&r,H$> sA܉OR(Ҿ=sB $>4e>x#/cZ$>ؐ!&>Ȋ$>m=~ڗƎb+>`+"y>K>?x<^~QWnNJCx 7\U->5|E> (MHG5$'O >2u^|BC>oq >g&m->G_Nʀ)g!񭸛P*qP*BlZQ=52'j?>aՄJ>z4>>.G0.qj4>X@>>G? G>H&><>LN'?5.>k7-H7d&:?>7w! CrAlq >D>]cqLPٓ. >M|I8>9c{m2M$>/`0Z 1+8 >edТ|B,-s:>y^Gcֽ4ǻ`,IHo3YE= +VI{ɞvyI6LMS (I~P &3T(>Aܦi*ٽȏ m%$>P ~4b=P =.}B=8 !{U=@=5<ŕ[ >z-d>"%CoNs$F>$>=ª7ͽJmZ>`_eĕD׽ G=D=d9%h1c=:0a1>),=R=.#>Hs=H= b >x 3[}m;C->8|> Y¤\N}[5[ӑY%,RU#G>8\? l%>pd7U$䗺=V8kXD.5@>&5t0>>I >>{Jw4>SMM2>a)B5>i'/mYEy>BP @r@[Bjx >^ >uM*&>OK>Tg].=l3K DAs +>|r_:>W%"lB>F*F/2>>IBMD@{{=:>왳^IR}=%+V=V+>F^.$>gF! >Ђ{=>5pG}g>…=^ZtD>+Me!>( PZA> 2)K;Zj5G><~/6M)B>C9w+9n.;Ǽ>2|{7N y~[ >#>sU=;{Ui@ eT>'F )H>EX7;.>PŊz?>bI>6})#ʳ$ XP>xb>E@e.۽J>Wu( ,JW!71I>m.5 >EW>.z\deGvS>Mh3>.iQ>>kX >UU>tT>I{@@>73ysT>Vt<ŋZ9WX 2Ն @S)INU=D,Up=Z==kSȽ9.!ڨU=+˥C= 7B=,Gv'=1-ZFCym5ξifb#8hO("_U~4w=9=Ʀn=V!ԋ=)W S=Z`أ(RPlk=Ԏ |7{I  j0'[wgQ tɱ1O= a@=/4 u=a$=';g= }bAp,.X x'%~=M=8&ڧ=a33=g"%+6Ž|mZz&s -s=bI=Hg׽tS=p韰ǽ|:S=S]W#=- Sƽ *(l=n%J|;vѸ'Q=Wk3zK=&ř=3Jr9=֓h2cǥhT=8: 5=,=l됽wK좁"0F=ⷡ:͜ 4鲽+K=Uٽ%ƨ=.QC5+9=D7*6b4=F=Ƃ7=IlfʽP|SvMɐ=1O|='ޚk-4?:=#>B:'6J=z_=jz=Mٔ6=;u|ak6kq=JᑟD=Ux.=Fp=&Հw*1½tx =wotܡE:q=2]㎬=#t}vo;w7 =C=Jdz7̽AشTeh`x|_Z=Aq2b?񤓽U~ZU6L9~=rH=%2=P=3ihн 'ݽū }=>н" Y6ýMy#ֽLB=à\N=*%.="= >ٚ=S=)=Ĉ6=*p`= ȧ=ǁC23*^z=T)ǽw,== fw=zQ=;qh&!}=:#=q{=Ţ6pb$]_Q6AĽZϽy,F-=O(6MFE/~Ȅ8ӧt3=-MU==IDx"K7h=sIƵ=\O4nQ߰8 =HяC~- =^šf Wc.#پzΎR=*rSg=c'=x񢌂=d/P듽Ox|[=i=$(嬽5[;=ffE /ɋ=h=5z=. =3wR5%>Bƽ3̚(=3~ؘZ=@@0潴vV[@5=ywޔ=&G[v Tg=8Н?=*l$f ýWӸxb(=Z!=5ܽMm@vp2=K9ګ= "dY=:=Sg=z>=q=!D6=3r=OZ-uz|x=lbߔ=$6=-WÈ:R=r=#x(*e9K =ſ;=#fg$2̦=o@P=a14Z#^C=H͝V=vڕ7俙= W@i<#C5** wI-fʦ[=zUS첽;++=(\.XkH3'seݐ=k չ^{FwDku=ƟnqPŮvrJ?=d"1[>GS'd߯AZ>/iRdz b[>qh-a$F[>Ub>4 "[dI=>qhn~{N"ݽd^=bK>\b-c>})338ٽ.X#kNNĽ(mĊMx?bpfXV>)wk=s)W̽jWa>`-QJ4*ٽ+ۘ]j=xlxI }= ta1LYc@EV>~!Nb>~S҃3V]iܽD w>B=f>[Q>!02O/>T;4|\>Tg*н4*rI D+M4>emgH>@HJ">M*)>l ̞1D+>RNYx6> c.92ޗse>CZ=@wUd,J憯~XtLq715YDgC>)X<>c`LZC5>J"_1\>tC<>"sYԯ >j[e="J.>s.9lV=K;RVv}Bwuս,V>Pg5ҺU=\r 7ōP ߋ)뽒"Aǻѽ״7ڌoϻ=L = CO=_)0Wl{ٽ9j">UT">ru=DȢ(u;>@ 87=& ;=׾=C >g2= OzI纖 0H 3>L>xI.x>1,)CvLca")PW>!PfaB<-˖Miab>0a80 9]>~6h#?">x5[>{&d> ퟷL=_wI hs=,M>ȕ9Խ%SRuO|vbdX>r.>F9kO>2b?>eR>$&F>_a\>ڵ5/ L*je&?m#/>h.>_ Mgi5D>T"Wg9_s>d6?o>1-Ī>3o)S#0^%/S>n̻[>0.xZwP>2g XȗasV>&[Vf[><+[zxk_>+7V>vޛs>߈Q>ײ*4ԅ-h9("JL>c X>Ӓ\d>X8ZSNU>JL=Bjpe>@`a`T>fy=|jʽR/ǽ]쟾=|ցХ= lεF=jLh]֒f>?.;U>U+Nf1U;<=YǽڔsSO7e>N2T>-|e滽mR =ZVe>mqU>E/Qd>-ƨ&U>+L{uc>G1:U>fAe>=/R>:7p3cZܐZNҽ*W55=*ǽΰx#=B =ɉ3\v=#>@!4>S =JZ=f惮 )t6\_>EV>tXsĴHϿYc>\KqU>~|8-c>@tpT>F_ dQ罱 M=ѽ2qOd>ikÕR>.* d> )M>RVM\&GLjyҶc>ߌiAI>lBc>w~H>z3bLPjELy@W=Ұ}㽿-M`_34U&,֢> !l N>HMJGѽ[D9y{a>$0 +>xT9Y%{0Jb[@ fa.i`ZRH5+!(vtZ">lG>"o"_P+>2=\<E#ٿ=)X W0J>[uO\XI>phYs CnE>ivU= Z@=R/[H>lT>m,*x<&=̛<<齰h93@ѳ*Ud=aP_ , Eh!!=U'ར#.=t4Av}^o7>yB=='{转4=H:=Ѕ*繄=ܴo=v22=A`4v彭gہ޽ uέ}O=bR7pO7=v" <= Xf>tX<ོ" wu'k>=)nW( F9b> >D9tGexa !:UAh H9j 1b ohtQ/o| weZnFɾK-Z.e=:$Hs士9D Ee>ac'Ѽ >'S+>T>7z,l%d>O%kY>a>U>e[T>CՂT>~t[>لB_<)W>F6A| {JD> E oj9>d(o.m}]cTvz:w|ITJ+>+)}>`y>CjZ?OZ>mo@>bPU[\ TUB6hX>Ȥ-1>*&)H4\>;R8aekò=$I =̀{.s~=ǭGn>d)5rM 퍰 D=Tga >OѽD"/>t0$]nQ>Yv]oJOtb6OL*Y>v1o]ڏ/!>%Y>|$7SO} :>U)4R׎[ F=Qz=ĕ]h4I[>˽}*ޜR[=Wh,a/ J1[>罉n`_=?em~`Th\DPٽ,%cB#0U[>Ad8ω[>Id>߫[%Od0QN[>mq`c>͖Z iUYcR#Y>8ًb QT>Vl'sb~>ux>V7 A׊= h,Ͻ]n%>p=`]>W@q [ VbkJ5`޹IN @'Tt&Yۖ 5['zBzOQ=+%&st`#RR ڤQy1JaXߊr`" tQTB>n$\0u<R>J?eu){L>xG >dw`c}m"2ٛ>zm8+05ݙB7MZ_>QʤoQ7J b>LR>݄d8ƽY}JleB<(d=( ze|P&>8=IcXݽ)Hͽ(."O)> |H}e>YIo% eq?* J;D0<>5e>{zb=,|V!I; u Dnerh6>rWwJ>x8~&>98joW>t=Tb>fq>[ 31>p-{;>iʐL>8eP>k!^>a%~0>կRg6>@+52@gh^LJ'=M=d+$,:hćI+vh57,%4]ͭh@T0>LKkg>r0.]sf!) ""!)hpu u ijPv=RD#ϐPUgI @½>|P= w!bb,Fe8zf=b Ž:H+1[gYdJQٮ qNβe`(1c=@<)+>h>*"K½`h=PJ-BN ujh0v=FaB;}=E <Ƚؾ;TQQ ;5= l]н7JQM=8.o`*S>0ν)hX?Up/=k C=ͨA=p=iZCap\}5= +qӽ&-l?=.caiƽi5%ʽ zG=XZ=W6q=ђ[|=w!=Ҧ=6UŊ=v9=H8=:a~ҽν ʽm{I)u=s.w*=N!=p=g{<=w#H·UknLKfOӽ%;I1w>=P̽אOХA=Ya=X3vѽ@C"= ?=NWA/=~Ż;toӽ~LN{Hs*ɽ xs,-48ܯlFrVV=`0cʶ=~? B=! uXaʽ:V=B&s?= =Ww'sL^?W=q瓽:Up=3F=+~ =QpT=O]9=LJ1= ^ߺ=J@g=XX֣ ] ݅f==LmaZ򠽏Szr-Uz0fy=Y6v=AFsȼhsd^* =]usƬz/H\Xڽ¿G{7֏u=*dqϫdqýa;(_=Qe41LCˑ^ /9 m~*={8X=j$I|=h >ؼ=zEHǭ,p U=mE:=_/խq=`eսܠr=+]IXĽ~?᳽zO=} M=~;۾:@=Lu:=gؼ{=~mZd4>xa}&=?֓ʽ HuGѽbn?Y*mg>½i2L]*ƽ02 /E=h%cԽtc4"e@=oV!= Ž%fufսCtʽfsԁнn7=p=wN'> Yi=bݽ&-:qC=PEe[0Ӡwj=!z;=4RȽբ+R=zԅī:0ƥڽuqֽz=%åftBq=\V%P=̗_x=h0IΠ=19`\(㖄tq=XSؠ=^pB=%Ǒ;=@lu9EV)V\oǨ=Cf=‚XARp=a*7լ=t !BM%x\@.39EŽX Y?XF̽nfǽ~H$սWe.̽Կ6=y/P= =zh9ѽP ~=W=h΁=~ĚaӽTA&[߽Uܒq g=PڽlV۹=eǼL=3A~_Y1k1=냢=fs޽,>BؽL ݟ6'¸=D\0P/==!,D2z@dqH }x2:Tcm)= )yڔx#>5=tӴ!ҽ)۫= =+Dֽcy =`2Däҽfm.wnֽFKmѡ=qel#ڽJ򮅪ֽ+½ hBR7߃=e*޸W=e?3"=M~,<(:p=v]=H,q/ x=`8Y@Qנ/rʘ=uxȄ_= 9iǽPӻ=H]~w?½.f|tϽ 4$=+a =N-]OYu|=J,=)^=-z|=ZAAf`/=s#=Je=VJv=';P PK2>kq+Gq;>(37͢=U4>>& =gC~4㽟VoAN+)>9BU]6>/xM11im=RPQ#=+SEh(T?;>TepyR>[d%OS+B55%;˱(>M L 8t750>p x>%h4V#|sU_>>D)'+-#z3*(=>3Z114H>Vmi*}8o!>'"~>JyirӴ>+їy8ߩμ$4< @seB,/[r$>ӽ0v ]i-.y:ݽb `ZU=2=+K+ay-> tu.=D=u>L7;A>bSX>)Cgا*%Y6>+&HC>f[ yRCT-\ýNkG$>8pF >Lh>6E l1>Q+I>q]_o@ 婤A >oZyr0>ꚔY,>}EK>$<04TT:K:)>lh R=0!>RM">o}.>=NJ->,>$b)- s>T+O>i i>tl">㗟 N&ѴBBzC> ͎/7>pWq#>AM"+@07{>,B8 {YFC(d:,p)#2 o1$=DX=47YNcc=>iK!>c';%>CSMlA12>S8ɀ>9 ^|_Bᵮ :j E?->0Q (>P)CG#|{܅s>.z.V9r?/##ZYq&>h%|dL>`S}#=xfkɽY?i7>n!8/-&joU#{ d">ȬEEO +/f >t } >'9"פ+ſP7 >r+>1*[>&>c>FgVH8>Q:4^'>WΗO===bxq0j_,O=EY/+oQ>U~*?ny<>.(>{=[Q;Ԙ9'=4ruv+ٗD7Z0ԙ0!>99>ɵ =@;%=gd.>FC=8T N=bn<=|/CzD"ʻ,c!,>>{3:>xz,~=fdͽv1a=TjZH5SU%N=n! :'>acl!>ubXA>Nc:1>h+WloA= 3Ս/nk$鼊!Y"#i6߬K,{<8Ql#aF0^~t9@ʐ ood>P>(x y>>>T+=6*,k wcUH٦%Gc2vÑڒ'>8B1>tJƞ8 K|-Ko> u)5>h/'K>9$y $߽"$8!a"9X p'bhFl )>r6O >VBֽr@0S$y@>:2ߎ>,5x@L18PyJvHc G9>cڇ.>dpG#\TE9>g z >6ni3>KDdLؐD0cyN6ƿ_V=H ]==9n ˽7E,qB,M q0},~01t~zA7FKzRFl, kL_ZT> ]V"#<'j%p/>JK#)|q/#>q$8ޥ{zG>b>V\zdͬ))^wZV >*c?N2#>c@%>'FJ>-\NE% GtbiA:>ש9>[`b;>P\/-X| AT=[ +=rp"㽹M%>3bxv^8>Q<{<5bbR{ )#*1V'>;fQt">?he-%\7ȁ'>?B$Ƶt>#L8>Rv7>v͠0SXE!J>0[۽QnC= $Q=Ծi܈A9>\eXG2eQhl0N=FÂP,*7$>.E=k hR罹.%=MRRvByu"&>$d)6g .>JtE>^0-m0@__9'4>A뵴 4<;*>QǸ>x:dϽ.5zK\p;Jt/v> >Uj1讟Æ>,;[3>6ۆ>xJb)DT*>O!.LG*.a< >FCT(=C+V7>re/>թ/>Cz9>b3e@2Ӱ*%Z=7y=E!*y uW(=Xֽ(ZT=TJ=z#f.= = 1 н`)!Y=+  >O`D1nͽh")x0[\[>?4o罣5wP'ZJ>L ^Z@>t=Q=) Mz>Tq>9=_Ip&>G=2N`N>?}>f)C4><+"*/ΜS< vkѽ~̀ \^AX;i7ISzj = 8>mcu7>b]e->_$0CN;>{Nh>TlsZ>.:]3|=ltOt#97իp`c] z=Pn >@:zH@>$4{|"칑½8ߓ!߽6u I =bq=9*)нR9†ýJS8֜=(->R GSK>vYޞb >j@>l6; i=<|Rv#5e4tnrƽ:Á^1>R&ImW >Mdht2>Ea06]+0)^~K= #/>IzF=l%RдŽ?o軤=Mյ7$gkQ=j7mb^="#2af=x-Gx=!,=z =<kȟ=>5U\e*=[ ]PoG!=\KTR4N=Hb.= ?)4)|!i=zA;}=8F=k,|pIA=EcT?xZQ=uQ]=@;=W~Qp" 2#d==Uk=҃4Fyd=.,7ĽҠ 𘃽p =)|%fcʽ½8em`b?t׈ob6ɶA3`04=T+ 4ѦkUKrKXb=lXp=·ݥIuc=R&=&{=~64Tڭ?½$L@=a&KQM*=ĢL/` m9U=F֠=<;֖FTp~\qaUHw6eCW|9MRuqN2ζ\= >=7?U鸌W=G֋ j=zJ`S{8y4Q,Bgg Ci=)"|m<2>P\F<>s3i@TT>x=7rG>mHvRdԽf+n$ːR>)^=',O>il\>D^ 07 >`+3|DƧ-l>C9E<_Q#>F?6>%{Lj>Y`('Q>)9 rы_k"9>]W")5l>֤{:|OrϽ.dz#>ʎ6='>6RJ= 7C=2o>(e+@>/yƿI=NX 8 V=HYn>"->q =nl"Iq#V% `vA/ν<%lM(k >>A~B4H=`I-2b ȽXw9 >V^=_MRcĒ"w:>զ[&@>xV%馅o. MT|`,>wҠVT=h[OƯbe2>trIc>t䀌CP {/G>#{U7O>8zϷlRl%(#2>{,43>}@GF>0=8><>Y'X(>TuP8MIE>Mj^=v ׾=lYOeȼ>TD9K>usd o,ޅiGzb}>dұA%>9Ywǽ@I$JalG׽,XU=87|?pޫ=Vy\>zpoa#=6[@-nX l6}(4>SV<%>NgJ3[.@ EHiJzx7L"K>1r|>dy._R9n8_ >{R6$OBQC>mseV@DWOC>F|~=^L>Ǽ0>"ؾ!>?$n >lC>M=\wLK6d, > GN !fL|+.)^/>#ړ0ml3!^>_AH=jR=6YqA G>yCFX#6o&0>j >6>>c E>9"WZ=Nͽ8U/ÅK>UwM7$߸Jld99>lhŬD>ڔ V_|J>F-~ku=t;cr>$)1>`;nAhfdRj$4:7aIp`&=DN8 "><$dDZ>-TI=>0vQ>ͻMк0Ƅ/8-=$E==wHgt4=k,N,Vs=*G?=i]A=m.=G=y\"LӸ}/_=Ш&н\$v00h#= X=s(8=șD|=ޜμ=rا^V=а`l^r%- ս buF=pAm=-T=dݵWl.tܸ.ؽZty=۫=#{țZPYӅ=p3{"𪉡=!=l% =/=(7GM(l0牽}Iw=ςv=LFu=.S=K!mP=+a=ЯIBEȽVt=:n>F=V2n=XP{ޫ=}y_d( gIP^/ǽfod4qa7~=ʺGgsMJQ! urݡ9-5=QX<} o͵=5B_=Słа@2.K¯=xAߣ*-_yB=>on=x rIݲ=P-Ri;=rEr=L*==Ԏ7wa=$ =$oߘ=ރ&Ƚ5ԽFemk=1@=BY=s[ը}EDƲΪ=o|ҟ=+ܲ= ~w6>ѽhҗػ=qe=َc=.:1>=:g+72=3ϳ{ĽG0` z=gp;&=:x=B;O=]vuv=rw=(OrX=Ko8yOcW=Q9pcF=-&=v3)*ܸpU%5BM=}@ɽMS4=x3Ƚ9Jw4=HDBĽFJ%%j=NQn=}$Ekeo} =z@G=zjSa (= n}ҽ-D=ʼPcb˽x=̥r=qٵȽ8 = e8=jD립Ak=sh[==(I-k=nh{[ur0ioDK|=I BZ~~-sʲZ] 5 ub=!Y=&Y=Uا]9=F2=W=!bh=f2;w׽G=K= ^ط謞= ϽdQ܇;,=̥&`=dI =o:x~>x9>x-:܈)ɽ*s_ƽ XS=n =?=DKcѽ\ݽ m=6Q(=ɝj=v=VWڽiHӽ⽞2gDu[=]6 2.}=n-YKDrd"sﱤ7o=r=aiR=I m>Σe`%̽zʈ=W[Qi z f8=z/a2'8ν8Lս=S\ ;=%7C= n =ʃ#ǟ=*͵F<=q,8B#0=kH=jh=Yk~=K|=r텽P jawv?Lx½_xɨAU ~z=Md V;^n!H (ZH.ß=f#?=ZE & {/t~ӀlĽf ~9i=Ȧ]=Lɽn{o=帏+z=۽Z =uV=u fA~=1*ɨf[~a=4$>½rXDýhgĽf˃1=ak>=.C+7Q\{f0F=dQة\0$f`o )%CZ%̷U˽OYx k W=殥H=F\=W9뚡`dx1f= =$`Zs;l~d v[>B7=]m}Vb>6_[>\A{lc>~"h0[”PvOSv`Aa>TRq`Y%`Na>vJZr:^J>ʐE\=#CO˽U1(K>48Cs >.|'1nܼéL> .E-Y7/kM>Jx>#'>sa>Hkl~Rf@>S310AR+ybR)6VT>v9a>10oM۩c)ήY>>όa&>faq5II=tr%_=!yI cGF*>3DMY\>]3V8>ɠe E>bߢF>Ba> pv}f3>_p;ce>( ID),P]MjJaKSg`X)?/k@FpW+m>Lf5Z=kGT>H @F1>VjeZ>]sD>A@]>a@`j@>0SC2n~ >B.\>ED_ tIFP>=եG9O_Dm>'%^P =|O*3X >v/[kw=D:~J .=+x3=3YuT? bݽӦF=tVJȽh|p=<(]çgkjaM+>٧>ho>(kP>j;s>0E=_›yc|1 MfG+?=QLbwԽFh=x1+%H ʈdx&u=o!$ZJ^RM>/u) %>#>]W G~5>kR\K>Ĉd NDcc>B9-R^+X#39aO>|8>6 HmSN)$.&>2Z G>؏WDORx, >4ٽUN_qs >G*.]>o4/[" -U>w@N ^RCdV>* P>d'jT=vx{4Qh?[%>b">5 `e>;EU>``fpnU';e>!TT>n>"=MԿ e=N!V``b4nݱx=b3lU$f" hUE2H9=-@JM-"=Df>{U>ͬfl+rUSJf^n{ÝHT>%;ۥʽ2ܤ=բd>d7aVR>`X==-c>ݞP>XJQ8>jZ>, >bP==Ea>dh2t>wuo`MuNRpt%,S="О b>LƲU>Sޖ!zc~h0Sb%cp:"TWc`MԣOns`зIat W[=Bd>-׀o;N>3Ph cPm@0<%ͩWm~^3bQ)@ݧ`*#>-StGwӃJZ7,ȢXR A>PI1S°Y >ǛJzoE>kbQ5C3>7CS>`\$th# >׸Eg>eA;%^}0=r- =Z+n#`=dQ+=8J[=lw=Sr֘k~A=D?@[=Ի]=jϘq >l1@$;V5L\=1G &˼*=#P=%PՒ=a@3+=^>…ʽ >h=Ҙȗ2C {fU֦9@l/3GƯR`5i(U\T>EɇGc\)QEn1Kq#˛{bs1"S&1%D9P1plCȊ6I ort=w"=YS>G(ʅ >Db> H14U>v!>6+!>,нMfXߨ=Y>K5-S>`QLV(Wף'mƌF|)-s5y2@Z{7[IL0Zze1.yəMR=Z\>o=3[2׽W=Z|Sn4 Qa=tNUJ>\]C^/+Kxb>疐QDWA}$b`> \Y7vA>z:Ќ*;>K<,S KX>L`]*;cOn0 X>%[(L4W>4I;[ {E7&_&y[>epb`/Wo?[>=ZὛ=d='`>"O/[1QVcG~eZ>P"cQt,Z>ȳ ɾb>Zdud:!X![>g@1c‰$W>QSnZ>$W7SVQ4k%>!9SfG,` #ٺ>r%u s87=8gԺ6K>J48a@z`>>&SEdo`>IDoK'_>ݵ-J,O>+'+|=80$Yy#&joO#=>$R3>9"Z@رu2Z}&%1,FxI>1&q\,TeV><=YoF03N=%A8;I^ a>5M8ЯaS\>w2W Lb>yJS"i'-9\>݈ 'c>6F$aR\1ޤ1ㆃ,f>_dh,>b5f>д1*>`$e>|H:><_Z?d>UB[cTfr=S>Ϸ ^C$HL2bi:=><{W>ߩ0>xn䷈y@>&+U&g@P>6Y>4WJ&TP~!>hhdx >8j,!Jh(Vf,1}hUI->Yuh>Qڽp%ܨ=LnHv4"ٴ-f+¡0>t0eg>X -*Rگ\ g0!RMgpH6'"eegDQֽ,6^[=Hr/M&5ͧFfQ¹?-NZAGgx Z&+U"*hpOY ,>Eh>׬ƽ؍8a A4f6`q[92k_e'J# ꐽ1I@c=e !_=8hG倁PȽu2="8\fA=r)ֽ29IE ԛqѽYiVG!U|+u= WmOu=lt 8=c=W PwyR7`$^zS¦='v>yu̓׽~1GսVJtͽv=ċӽ ,,=~oƽD1.2ԽUtLŽy0=`nڃ=Iڽ4c=, J߽GX+iA2g/֌6:q=@-0I=sO9罧t:c=VT=ڲw_5`ekH'=YBн' Z!ed=t>=nmuн/=~Jd$=b=d[db=n=p=FI'ոۏ,r5nf=޹a!T^=w-%VV=ڊ-yH%Xg=𳽝rƽ8r$bFǽe숽|ѐan[:l^~h?]G=q9Hx'vǻ]_3`&=/^Pc="?_=^F.=9n=r4=nLN=h:Y=,D(=q 4΁R74ýQHԋ,=B"c.Ľt Iq̩b<Y%=TBC׽D= )= 9 Crq=i{ƌܽ抴{1ӽ6Y˱ڽg^=)|}ʽvDN&أ2=iʽ7 ܽI.=Xս0םqxӽ$p0UDr^g=VK`=:j 7bi/&ɽ"!~X}`=bI=%1Nǽ_=ѽnT=4=Tؽȗ=-FxݻL=0=fJHEgM=kսe)!=++{C2me=CS]M诽Ҏ>:=0%'XȽI=#bM B8 =WZ+ ڧqm=O,,=\ڮ),Ͻ w=[ӽ4ѽ"ㇳm i;.=f}L[=񤽽gy.]o"o iqr烽J9@qcԃ: %~}t3>5P=Q >M;4}OE>(aL AM3R06l+'>oתy,8qR>bK8*m=ة_=3)jbfݽU$>>*Z)w2:6]&F=1[)u-hJ>&n3z:>N8*}Yb>࿮ӽc Wr'^ >}N(R,>-X^n>1|[U>ܽ:5f- 1/tz :% E<>&jJ>2>)u3^δ>fG>sa ;2pζJEQ:>^KIK,> Q!>hq>R_!>g_g.tV>> -&eKT>' Kg  I]==P'=r:`brP,0@v4YZ1>fx !m=$=}콨 E*;6CD(LPA jm(F ,)791{x!I;2>@o">H'V;>z@%B(> {7Jf>$DO>Ina=)>>ͻt*>C 3o%> >se{%>V aj >ZP=Vo='9dBe pa?~SM0j,!Uz%>zeN>y t3>C^ j!>9y= \İ^=yef0Dսvs4A;£- pb (l((rF&0{o%eW0er=˜K0(ld|}=.b::>(!EՍhvp@>\#^Js1i >%JoB)]">Qr0=rf **>7tE{LwA}A &h7rޓ~q*"^w > dLn&>zp`-V$>LN:>BexZF>+@23 dG&1(Vл&B>PKHO=BY>26\Pt">[Dz<ۅ N)#z=gO2=`.ıM8>8u2҃N4>PTM,t@za=IE9=,bgKC;:>L1@Q!>W8ip Qϯ85>G/i)g)V}`*f@ @>X{=Fg4I>30BAbp#V5>1/Q>\ˊ_p> ez$yh1>BЛO={+3ӽ/դ>@M=cI>1WK>u<1C>w失=Lm.(>V-t⽧8ۺ(=@ba| 7 h!o#GuOC2Zş>0T@&>6̄3 >2W f> y&>csm>@lMZ>V-KjH>Qa=7?O=x$6W=&L=wm!l>=gT= _Ǻ!vv6:$dj>9g<n=h˵t} +$--mmy`Z=Z=d=t/=Ez^Þ!Z3x/Fk =8|=IA=w!DzŽx}F즽5kמ4o繽O˦=:lg =hu,1Ӹ?P=*'%iZRBQ-мN-V>=I&!|I27Q&da<R=u%=nG|f|U+l%*<ҽ%<*wbKDi,6zLyi;\'6w=(PsKF"۫kXO#!3KMaA>dXV>K>N/| U>̣ 6ŠWcF[Ւ*O`ȍ"'G=feX>ZD&߯Tj>6w%1iI20>ĝ2v󽚽tGq´">PXjPM>pQBNiꋶV@ZC'>Bx^P?있J>HP XZ8sU>$8Jx>jP2(&H Z>c@-2p㤋LEN.*>^=A>g̃BJ>֞KGMǡW ֓0ry߯Ŵ+=/sc#Y#F=؝C>U;>ƫ-[+>ڔ>B>wL@姿%'Uu@|I>)b,D2 ;= OhF ;ܽ6=P~ BktiԎ!>tg=)@#|,P!Bz(jrCC/)&J{*mJC2<4?}1uB>" U9>Xq;=~ګ$>zŒrEA8|[EQ^/^QcuOs@ =tAt=;'Q>iqv `52PA"S{a H>SS#G;'>Q%2>D9! Bg.N&0>&{M>Zn>4?P>Q!FA>>ϫ=X&󽔽'R2+NQfX>WH#>7eB@ὧvun > ~e'\M`/F+J=.l=ȰDpĽc,;誽D8ʱO訽Baƽp3,{|Q&i`t='t`ԣ=xF=b=S+O<*~FoM&ý/%XKRz&|=Hz'R=~䖹FJe=*׎p=;k=&bX̡=& ! \$x`=~oU:Ƚ@"=<Rf>t=Gݮ=](P">{s!;7σau-vWdol1풒n%t,½ ݱu9ڽ{|^`'&d{=hen񚽪M oϽ!=ZOt L=n$׽ &2g=SD|ԽNB:3_۫={o{@Ԣ=:$瞵=t<߫h=Je= ^ basY>ވuὂ W= {bD^-#ދV>]Ea>fuH&O>*v}Uz0c P'PԲLE>[6= 0a!>O=V!p=h=^t_=;]`H> n^t= ܓ%_&f@!qM!n_P>u@Y WgF>:zԠD_>[>OMc Y],XƦ1=YýEme>FQ R>M0e>ɱT>Vۆe>Rt T>X|ePUB.aS˽m6޹= V@`d>ʗ؝Q>ݫ=:%ɽZ"=)S=8YS>?b?"c>EQ C>K|Ba>P1*>b/6>з7AL>J|(!?IA>W5#L)>`\x>F6/x[$>LcJ+ gq>G|N'%ga齸߳ >]=LS=\ &5L0"$|ڲ+C\ӽzuF`oE׻=*G6.>wCZ>ca> *nT>1[/e!y&IzAz2=f;Rq>He>Z=؀ ݳb>_ęT>¨Ƴ q>*0J!]t>,\bЏrW>[>W>D2٤^IeZ>S3d\>,JDc=YFK`K Z>8: $/i ^u=ȄkQȽJ jE>ԇuO&T?`>sOI @ne7#>{'>%{p'ʥꪭ˽0 >>Y a=|Cq'a.mP=r3v=(@>S d>|Π>U1>zsh JxHφ<_,Z/ HŽ]9=a/=< սR"Z=uep[Q=&p5wRy-=(03xus=f+ٖC= GY`=dޅ̫=K{+=܊ٶŢ_)=s2=d'/'$㞽$ }o\ ˽Z`Mʽ`T=3 |=Xa/=EwH6mYսe@ܡ6:#=pEWϽXD]=en@_=銢M=ė]=Pi==你2fS=,DϹ}=~=:E-r=_łu=#>qeEt޷Q3=9p$=(==q=5u ->^Z8$4>w7>+U8P>JQ4x->gS,#5l `# xwl:uB/> sx=Tַg">`k蒇>UA>9ts9lM =3Ԥ=@p S:=܉>yjʫɽQ10>ȀnAÑ1>|6p Q;BFCG >L޳hp|n >#hfS>;/= =&&=h!9(JR >#>?@}Q-(>l^_C>T<&}!*'ADHJ"> w:'>ɫ= MhtQ \30ՃĀ.>#Я"B>O+ >TqV >1J2Kx1>7cĽd E>ARh>@AN=[\&>^q+>s6 >k1c>{ya%> >dE*%>Ƚy7>Mv<>~y+E-jSJ>\,4TJ!=J~WypM_KLߢ<%=@>|dR/id=+ۼ@$>Z2H6b$4IuI/@2X8>ǭpИ?@%18~jF4>O65>)K9yr:>EzsZ:@ 'X`T''>fv@> /61>]XPB#>?=aby46<>&0"Y)>"w ;LcV7,q|]1=I7l3qy"I!12[s 5 bb!=^Fv}bg2c*KFc0Da)> #)>M-z9v:A (3>rM19 >͒3QLȒ&>|<=V>$/y=Ի`>HW>DO=M%J]=)eb3ɔ0|YI=&C>2Ǭ'>V]վOV}e#QM)ҫM{<^%2KXY]!^v3! 9 e)o`5>E. <>p%>I.<.>EJQd#>c74@NZ.)3HL)Vj=t~=v=+-׾;R @>ꜟyB%"eJ Ue~1>y>|Iނ>Kn?Ry 8y"lA i& rTGn*%>[?>U{3-!=eT _>ߚ>!>Mm9>u 0>01O# C"/۠v0X6廜4>EAZh,>!} 1$'=ah`= }$ j6)GURRT.Y!pgO=5!=j>ur2>>y)>1 M2zD>B?<>40-;4TD/>&N>8D"RK6>GM3ƞv/>2X5f;Jr?M`s<>T$Y">+hV" حg(PUR&->%U6>lYC0F4==raNkFӂ*>T 7 _pTH!ɋ2)> 5/<ķOY->]XI$>.>1&0>A^s #!sJC- 3>!)cvԽE\A=[$ِ*x~&=DDp,,7\p3 L,.>\G~jHN>pS=g`GA>$uٳ>EQb=w_=>߂-{+2>7 We);_=r֦gs=lI3>?ߡI>Jo?$>~$<>t š ={,Չ>Ƥ= t0|i ?==0E_Y!&8IY>m&*M>hw>JzH>N^O >bA8>D95f>9vbt@>X غ >K=L>pL!P7\ž F]@3L=K&`>FB/l>լ]17>u=E=vKEl=>HkR˩AT喂= :xH#=hi8#=Di_=ЕOd)=2Uq%e-;oKNˋ6OnsoSѽtç!ý_I=c}= 8 =S&YO,tU2C=Pu1O>)C #dHTuJu[IS=?>S]cXe?K<;B>rAZK>'7." ؈ݹ>=.߽Dĕ=(߱#>86>m\ժg4>U\E>JBJ;AA> ؽ0_ tJ^_ri >5ܺK=[i>Kb;EBY{d 9>`ɡUW6>C7Dʴ ±1kZ$!p0:ؽJ?$%>Sm'>;G>1VzW>6z@ `d'.G>\(0{<>Bu546Pw>Y=ӡJ>LԈTqƢXE>y-#l}۽ʡ$*ս?ƽ{X8ua#:ͪ=;i(Ϊncν %kn=L[ݼ iĽ1=%$=1kߴ A %]<o=V>U=!-ñ2ܷHм]޴=mF͠7 bX|V1=t=w˽ hCx6V,u= OTý{_^Dt=ݿj&Xܽ,<=ZSW7ܬ Dx=fbkz=" A,E*̦uH=g8=e֣LJ"i=s2= ]=VE(0ܽMѩ=w)Z[ϠY|XN=tRH=p mhഽ%+"Գ}7Ľ4@פԽcK^j=iByJrn=@u@]!u޽~OKν>,RНٵ=hֺw=`>nc߮$轀$BU= $̡=P۳U8~=r9<=^LX?_@M?$0y푕8-+=Ӄ o=+==#_=H-ɓ=h=DNo2=t$= fq#,=&vGFd= =;{=DYYw#{==T #jher=Na=%SQ^4T}g=둂&zmGfݗi[ݪ䧤4t= 4}s=#EV*<_=5VRe=fEXt=ٹ^H$2=dz#熽'8X`a))ty=42= ĥ= G]fѹ3=TŁ|=y2+m@8H|=6n+OE9=󱲋=`༻l"3jGSe=V<Ṧ?| 5YQy!P=R`̽}=tRd8%r{Ƚ^c#y=꾼e=iWɀP=shi=^Իwm=c^R076y=%b s6%OU==!5=O)[=fF&1j>jȮ?T=~&֨3F78]ǽe#2󆱽z{@uVBtmR =9S|=mB Le |=*lRTd=l󰡘=z)B=?=R_7mn"g}zkt=笱׋&#!`Ӏ= GP<ήiJX޲Ϟ0P<=2xܒ=D{-=H# =BO8=8vbεe=Un6=H=)=r`RK=?b>ҽ [ڪ⻬=ߑ_=+=;?=WSrJ|rHTj==A8;Yy=d3=FDpývӟr:%A($އ=([vLf,k _=1j5M=>ޙ7=|HO\тvp n̅ 5/^V=C]DŽXbi ^$x=Dٔ=cn=\tn̠w"C.= ѻ=VŐ%~Մ=OX9=_#T=hzl܇`fB__=\m[=\Ӂ(=%ٜfǴ= =6WT'1kófKaNfŕ8퐽%c=( r>dcӝ=5\|=%Bt[=[Ɖ㸽kI0ؒ|Ev=ӑN]bw0+-;TX`d=z= Mg(RJ&:N>=t.+3k=qR֌=`賈(=oPNkgB=?K2=ٲ%P=ͧĽ v=PeꓽB yiRU=]6~=z b{=C|[7#fm=Dgl9>ͽt>r~> J-=ißѽpPӲ=TR2۽ =4KڃBnO=0q#?=[½dף=4{԰G"m==ԼM؟Km=uϞd?)OHS=Cn= `ɜXνlH=Y$?8{=k~=f k~U=mm=q=/x>=G2uv= #7*.=.eڽ׿q=#K,$ϼ׺QF'=bP ba 燙L=|"A|=MC=VE,>hxp9ٍ!g=B[B=;􎢟=?؅0?!۞=”q-&y;.uC6= 0o\9֠=O-=bGgMsLjZ=hG8B8;u=q"粢=XͻABgHi=e`S=I |=*;=ϙt=:==+o,= K=8ۗ=x=9iy=jJN wd=bP-ýD,"m%vZnl RT/=H75oNO=gFaнݽAN~½C=RBҽZv?Uj;׽]ml޽iY=^Cׄ={#\5VV½;;eҷa-13N!.2=Vߪѿ=y߂=>7Fa=!Jb-ͽhіϽ6 Im=z=M-6v=$`]Ɓ}QFn=8*q"= A_=PZذ=s/ g$)25cd G~ <M=j>X'Csmt=H."|n=gR=R="ܠn[ݖpt{=}Q>==( I=TO7=vOnJs>jUwrU=cxJJ=M9=x=j|d%B`=(vP=qP=QR=Q]p]i0%r`=f#UsR}..Gg=ԝ󬽚Kf$tƽ\Pw&3޽BYptI C[ =>69z⡲ұA̗j=x80\m=?eTL^"aɧEkɑK=$* H=zfPح&shA^ =AU{, =<{ýn qˀ=%3 z;}:J@r=Fu5(:.+bllo= 3ԓN:4+n0!=:W􁿟<_s5v!_t=I]pF!_b:=\uTrུ-l=\W)|q"Y=(ɢx[! tRMb hi=w= TCd=z񹚒U~g#~a"#i=/5=q4Ľx(s=ƔWf=PX,Mv6Ljթf;WFtCn/Y"!ٽN2=;^z|PbU=Ï޼='K󀐲{vwk6=uR>=>lP=2WotA=Yt۽lp,ZAC=yݡIĽ)T# =2Gfc!=lC0V&=(àX߽4:KF= YS*%=/=˘iӽM=&_ Y\{Zl=~W=p\JAQ:+wWF=`ýV P/=X @˽2}jٔ7=I=xؒ$1۬=@U>=QߊN>Q=/A&=݈HH/D}P}=gVѲ=^$Gyl2 ZT=Hu=cfZX=(6Z&'P=*ugNiJ?劽Aш}®=(Ios iDn|aA!ȁ)E=$:_hJϽ{LǓHÅ=rNU=VXеԃy=^CǽlMݝ="=Dz/ `ʽ e={M€r=5K;ɳ=}ĥT s5ӠAfE̟=Đ=m%l=?.A zIN=͟x⼽b纑=*D@=l0~T=B=:ΜQq&)$k=IdAf$ĽPl1coNMvbhnh Y.=i0s<"@YBHd>o[>S(cbh[>_ dzwZ>mcknwE[>W]c/MHT[>.Jc1fZ>Hږ)djoĭ[>ݫJCdߗ[>=]EbY%za[>YıaMaWZ>~Z|ܣj@b[>Hp!;c0Z>br09LZ> Pҁ'>T] u>k-Q PWj >, N|"8E2}6>XzM]|6\>2׫Z>dxs(U lj`>Zv~u:W>- ~BTO\ }>J6jG>k6A7cZ`XQ:o >W֒ Q,N>7H<4Wa>uՋN<>Qa>D)KU>߾[>piBS|vbnodWY>/NUVc):Y> <)e+9b>?U>ڱgbbJ?W>~ӘaZc^}S>Qy#aNlGS>if~m=M=XREbH}'T>=x6὾@b᪢R> nc1W>Ӛy=Z=7emccZX>&Ϥ}˾|@`{ٽA#?=n=И'[k/>:f>G"2>-0wpZY>V1L(8Y\>>$0> h5=~R>IkDAKb~uEpqb&#?o`c S B[,ςc@u@v8QFahL3^5b7>xѻAsoL>`mD>pTry<>ˊQiD>v;+>,>tEgT$> b>i1Tv>bZAR=LtBF\>uo.@>)r:7\>ȼx*.>^Oʥ>y>x^>">n2\`>(Cj[vb>9`qDɢzL`Ij8Y>7O:/TbT> ~?!qS> P73T>& C3=fSd c~f=_̂=n!~>B^>>F6zH>H"=BZu+DV6btCɂiF9h)5K=+l= XD=,dO 5o޽#P<~6f=FlTw͞ f=H\.}c׽Ke=V\ Ž8 $ݽujɴM=Ƙ+׽XSfrѽC=v齈PS=0C`HE x@VZ(t=̴a><"*^>&B[>VM3=$>GO6-I=Hl.==mR$WGkҋc7( |oFZ?r^މѽ05c=oC, >S>K=Jc>%=:^wÂ>&=C=ߤҽCY=at=vwB?>AF =njE>=Aͽndj>&D=\ %=e ܗ=!s} ѕ>)#Ǻgxֽ-J>U+d|콷;>DUh=Si~]l7$콒$?A'w8>(XhT >.&S.x* D:OX;7>%7$ߟ!Z >Suw:MWA>n8H/Y>a ɽc0#K >+:Vj0^W19L]>蔠5*3\>bvg{cѸ>!b~ qW:X>Fv1[u=i> ]>RVZ>2нCQl j>YzImi`~_?$=įFԽXP}A[>T$>nM*[>c>6OQr8[:!>4R\4>~UKM4>"z\h~ i>)qȣD> R cԥE5C<c[K>E T>LAPWDc?T>ؤAEY ɤpX>Ewi[?A>d_Q o>_E/*9V>)A\> hOW>  T!dY-ս_^*=0{~=ח`rT)pPVeVob[X YfVp*'&9= v > z0RvlC`sK/ PFQ.O-Ɛ\;>BY>:qyc>eJ߽OU>Ӷ'wӿ|ѽx| =ng[]=Xc>Ln?-T>PGee>bJKS> Šd>_0S>tre>pa%S>e V> !yD>åU>QxAPD>/KUAd1Dw,V>סD>юde>" gB{S>bGfI=wOų=2\I8=r춽\DZ {D=6p-m@=]F !dk=,A ==d=߱I =2!P=`P =#f>#7U>y&V>1E>bDU>D>+Ke>@.T> N,V>&8E>Fce>R6/5T>8 e>3LJT>;e>emW6T>*f>`IT>`WW?;=>ʽ[xƮf>3笓&U>،\=BP=Eyu)=مewa=$>b[=,$v*f=ޮͲ=F=0o`hd>))U>itlNd>)T>*d>V @S> h0iU>荩%C>flWe>ʯBS>ڎ;He>AExS>¸Se>lGS>uei3Vd>1zvR>\c>rT>hX]d>!4vTR>kfpd>BdQ>mmd>5H2bS>=:IL$>۴d>̇67O>` `T_Rd> oN>KJd>]?P>ļd>7eQP>8Mhe>~sR>[?d>-.Q>h<Ó!>l>Dg">Qү>Z(W=D |Y=mR b>s93>ƢATh5Q WS`=M[U ~ExeL/`>?U>osXf{3F N eJWl(REyKW>/U F>j9>wa>c%U>.Mq;qtqS1$$Oh?E^F/d>i=S>zd>U4`L0R>bd>>tE7P>tW=He x]c -Pqsc>-$ZJ> H b>DC>o |c>|xءG>d͋c>au>H>*"ind>U䚅K>L5 a潤؎=\]|.=)b׫]4='ыb>j$/A>6_i&=RiUnB>׼ZTZ>B~k5 #a>,l 7>ʁ*btc,6M6x@>TlG&>}`d3ս:D` z+>$qUUGФ-h VR$ `*<}!0MSrr"+vOZ(_Up:pX &Q>jb+5>c

>\VW<(?-N> +PjA>,YƖNFCC>vْF">mR T4A ><$>-+$rw6>1e:=[O1ҽ6^jI_U>aJV>#qiH>T&&=4 F=;" F=EM@罾:6QЧ$Kսh}ȼNswc)W`y]a"&=\- K=F4 ׽ȇ i/\ѽ,g!=[_X^=@D T~=>Y]Y$ =yB3={ϻf=6}qsb=j(y=X&u,5=v=Wq =ތӟLQ0 Խm۱W۪$=\3Jf`>BY> 9`8UA=5}}yq==dCqMj^ֽ"p|h=h[#t`րQ P>c!j&>Nm}=!K>v~F>T3bNR@3̎Sb zGoALjSjbT}e:vyjX؁MBLRic ZPw*ET;8SB!}~/,/Cۏ97xIgxTdTptE}k`QE@MN.n>TKJ=+V:3>##>KĤ>>;ϰ >&=I=Q[>2>vYʢM=T,zå>›eD>?XM=q+=ݠDN>:A>4,i+F0Rӽ'ν<1t^>*&e}U>y%b%H=L(eHa>8)V>/TXa>zyU>鲰`>[!mWV>TrSV> WX>K p>f 3 '>/΢1BJl ?']-V>#2=S,U;yKs%`ֽ '4@^ 0= E>Ir[Cb[XLC>\|2lZ^2IYp]0:(QH.>ȔC-|&ŪZ=:@7.Ln=^u =IjN_H>??KR!8fz8+Tդe/=>ݼ6J}BgHyeI>:hO >>\~0G㎀4s>e > }>gBŷ=tёhH>Zs8= @>8e><_@l=pp=zx>s]A>"v <&y|F>)%ӷKY~N>>"ю$P>"M>vڱ>]>_xFKY>ܨVhQQI̋">\:7:<>b>@ܵX^hF>b>q#'Y=>ڽ#+>˽znIbd[lY>#zy6>8HҡG9Q>GkKP+> C# YP>\5Phf5;bK66>aocH!@<L>XAD>K˜Im`J J>.!`cOZ>)]3z[>Ђ`/K>#VL0?oʥ=$]2E;nY%St[> !'=n=8dR^gV[>B)%aV.m[>{IIa1E[> MFKbv3j8[>j1N a>oY>Jab͠Z>>(b0 =Y>y\[Y>J 76ѽ)Ph= uCd"bJm[>2S^o9dhcto,[>#cLcIt[>(A-)d9[>'smF`d [>f."=Ӊ=لd>Z>7<%McaYY>4Jc[Y>.nQ^cX>6 b|W>wV]cbgv>]@f EUHS=+UY>J(tBN7"F|<>Z-Y.5/C>5=?+2ܽ_JB;Gཌےү= 7=>J:٫`mb#ݽ<&>V*?nS\>94G Q>p9.%>`/ qiaF$GO>\Lp 6JUk!:Gʊ.>x`a؃Q>o b9nT>e%DHb蟀R>+kYv&PvDPg]dy>hvKx`>:56Φ#>0,S`K>aT1>n㙚%I2GS&g\gK>d7;>7C3>HcmdV%>UQPC> 8O7>vFx- S~%xf mY> Mia)>I= \K>&~}ZXы*>38%2tK>Drmo5fb>ph$->rW`>NA== -r=9$@bJr=ќF: U=="H/W^1'=LzݼD>c՝=Y }>[K4B4pB7k_a>+I0+> [bc(b. ( BGd>9=i~ϸd K\#t=2f@$> '~j&e+$k8ue ;)u>`8d 6Vm>^W2du'>zcmK.=CfS=["KL.=?F2>6_e> 751=0k*.>l$ "=%,>>IN=Ŝ~0*J4ceA >> 怭d>@ ϯ4 evJnf,R*:teTv_ӽ<+ =P2B>}c>h5>P^H>fS @>e_>l1>3wa>^֌M#>"{Wf>$>?׬KV>k~oe3>8`ƷV> qkl9C*&, j+&P>T(5ym+16,L>D'DM>ILAE3`̤Eb~M2H3>rA> kCfO] [ ƐTxeTA҉E/VbH<7,P{Pih e ^p.wHC=6b"4Ž@H,E='>=%+,=^F=T`˽؆{&= ,I:5TYfu @׽1g*F= 6M=L` $I2>No֔U*k zgGNR0_f0Ż$Q4ofCCm&@Lz,g.7*_g(hMs+.Sg " 'sh |'cgpA "fDZ&KDng ;f? t8-f3Tt8wf+ PVe4,=B02>X*ƒ2f0#2~ ($fΑ5G4Oeh_r0EWCgnY==po~99 ēb=-t=B 4|Lx=i=|=\G"½g|jx=a2y=Z݆=,ȥ=v;⳽P n"н= |SƱ=ֲ =TH`=٭$ /=C|k=Â=?/>=|h릿ݽmW=Ξ2ྰRc=0kxC=t=lc_A=@q=-҃qCC9ܨ ǘ½|'K(='Ph=ˆ&br(Žz= CIMՙJ_Asrذ=*1m3Jξ@k׽>=c?=zOBϽB3=q#$ӽDnսyT1 nOȪ=p=1S%eӽ7½T\GKչw=gϼ&Kty=Qect=8T\=$>= Ľհ|F8eýVսTE'k3ս撢,4‹=>/2]ڽn=T{^=hÞk=D+v=O͕=W]ɲ=z?hƽҘ/=ؚe#m = =:#0=4[u% zn=MD}=NFu=tQZ=00 =@yⱗ>]H=HD=rDݖ%= 24=zs=s^0=ڽiG0)rc=fE6sZ=D߸=qݪ=Y8]˘½ -=E=iL=1tڠ=K◽ϴ|0=9ǽ(.=:;⦽-Zly(}Y'=$,n=z&(=}]5=pT=[=57&)=+l=jB=t?r 7=XlaU1"=@CgQ&SN7 =3EK4fE!=\nZw=x:Jąo,ʙ=7ք= ԰=&@=y8ѥ=3ud+3ą=Rʼnz=*5/}Z=Wp=SNM2=T }9=`ay1d =~1=%,Pнb b{=&VZͽx+D= ͻ=ݣO=J"0%=hC½4j#=3= 1HP7>mӽp"=M/kͽe\xe R@ǫ=!A%? =|Yw=j_=*f߽]I8ؽ`Hܽxs' n <ؽ tzmѽ BAW=joF=@M{=Q=yJ *D=vdŽ<&=ý=H=h=}%t:XٽIn=m<@нЀgf=qv|=dR|6fRh=I<=DYɶokؘӽD :Bkڽ[ӮO9=N#ὃ%5=±=f,DѲݽ-=B%=D9'&=dےyX+sa=P=l L%=`#SoȽ%;=Ē xJ/{FY=vwͽ"Ĩlq(frj gD=Wнbe ,ɽDýf=h_AԽ>}&=DsAB =ýKf=P^W߽lAǟL=v=˽H+=/=Le6=SqZ=n>]\^=BhO=2ǓCZ >tM=Qe ={cY=릆ӽx*=pky=be"w= H ħOw޽ m hU"Iǽiijt-=SImxӽ.ž@R"HJ:RL_=*mQ=[:Ǿ=0ՊJ=%uT ><8=RXˎr=hC_Yk#ƽ<=~=jyp5N Cܙ̓ou"Ń=?B=< (J$Խ@e:=6=_gLj罜n ̌=#%= IK!=hf=(½H4=eUV,cvj[=b&2r=l\x=xR<_Խ'L½#a >蹽ا]^=YFֽS8yh=; M (ĽG $=F<ӽ;%>ս2˺M̽k2(½nm $=PԽ#rl=(Bέx=㵸=F`u)ɽLk=aY&uOGdͩ=w6=\{X=7{=CUhɽa<ýiv=d wɽk=) Z=)r3ۧHf kDAư=ix=+LX_.=~=t P5ݸ=b0j=N|y@H=y!:$Mjn3IYTٔ̚=I_}Rq21-^=Ū.tYpl=VRM>~?u=D#ص Q=:%A٪=wG=N^ܹ=*cxP="F͞={vÔ"*Rϓu3 =%ad*z=[mo 3Q=q&`=/L=ƥND/&={0%0tA=#pKbh5 4˽I.=+ܻӈ=âpz,!s=L7乽%\ $ýk$;=%@=2R===dČLF.l=Ľ&Po= @x=$:A=t=85apr ~M=&V5E82=YVPb=Ε=l`%Z,=O'x!49oTx == ץ=T|=߶[='d=郼:>īe3ލ0o߽-pf=y=Ӧp׽~r׽N=B~(=BԽ{7=!URKuy9 >>LD5>"0W=u(M>! )%hө>|;A7%+ 1>dXrC>$V6A#2>Lpj-J06C>1Y> 2QebF>P8?2bG>QPӲ?wT:R̚> ."j_l1>,ף7_bZ0>T;.><$ăs|0>~U%zR*aC>jl7L͇#>D>Н .R}@>'8 N5'>2p3'։HIr@>v?Ce!߽<-Kq=*) ;=&󽏩")G>4"|<4>]v <>I)&>6E'fħ)OjA=xJh>HSں|">$ ~R%X%{>l4^q(>+O![Ԋ >Jg:r IjN<La >G-R*e= eK=tRBn 8愽o"t9iнfB=E > n$=[K >`<=d?I0Ha{>ÿ?|=%|=tvR@E>6g>mx)H3İOQ>fB< Bׁ >=sA#>VI~s(>zLC>Pp彐<X/>Ǫ$ >rA>fO>4p>fI >gDP@>8ol$7E p %>藰~g1ෑ7=_"56gE{^;CqP>VX-I?A>Ju(>@B>'Y>Md,S <>SI >BT?>3 />ܘ{!=>5!>?SX6>ԭ0ZK>(տ<> ;'@>(Pu:>dKZ/3>n)q>I!}>|>@>$>4>T`H>,vtta7D>\v3)>0p>pڴnQ>Ȯ5#1vY>X>6 uM:>"'BM93. T7>icA\Wg-,#R3>@xi>ׇ`9W<XI>6i&>.IN=t).Q3>[؝8>_s#ClB>??I>QXD>'f<>ʄj6>3)4[ۋ='Lp>$*>8^xaD >|$ "> [1H@K_\>Z=RH4iJY,m1P1*x>%U,uG!=2)ؽl"s=r_K>N:>=Brl=U{e3MK='ɡ) TDJCP%7e(>4tj -UWX9IϔQ+}AK[ 4kA|,⽖@z<0>E(X9]SAՕO9B>j{ISWN`@>8v Kxc?QT=a]XO);A>^ܨ'бz>XFb5>}y>}S>3L{TcN*D>_i 8~Agz(65>$ ;*:>k3|Al{>[T>7Q[tJ]BJIS]B0ɞ>kpʇ}$[V]\t :-CO% 信fn!ZzF^܀(IHۙ[/}ֽ͊&V#D+Q=ةOw!2J#g~7 3@wϷ)V@e=fA,=;AT=ţ)?(Ƣ* SZR+Y[:ͦս"rkX%.>fT*22c" >zŮ >Ȥ+ >LpT=s9>>d)i}9!t$x9"c9&4nAl+KwJv4tt:8ؠMQ-dHI\"9g1 ^@B L(2'OdiAisug((H="7ӽ^qq2Ң7ă7X?ƽͰ7cp9l5yfn}tO@i@?yCg g3 xyք+S@ҡ>H_== n@a =H%b :=@. ́\Y{ nO|ֽU}R5>Ol}b>L9qU'%t4=@0.eCXr轠R.=L4yN> e2>+g+">Ib !4 B':!>bsĽyOo[yB^SA.5P8u+>1 ">9r@]!i6EDTx5YPdA0u1D{g@XcAj-~uF2t/@LZ5)kAr/*!ZTA _zBIH4"ŵQL%Q>t@p%&>B>]Rr!>& > nL,fGD>*u4UCVn>-NR;> ]y>4ULńt=>8>9 >]?-RLԁ!!UO9Ҿ\%>oy>>y5>jD2>vv}3 183?>SR&>*M>7 ET.>,~rIW7>`q%UҞriP)`F>tk3>ldzy(D0=G9|eDz[9]w&KZֳFʞhO7@ 8}3p-wm!>,2>Z/;]3/>%/>WN4>!X0z%M >AR$=st(UO#$RIP ^F1FN?:LV3"Q*:Rj4&O9d%pA#mP4Dp7QCVDyT 2> TLkZ"&~D :3:`LP[R[.5><#;0oI6>@8)>uR>K+пb+>djM>kR,?#XO{2m#>DnLj|<>oژ*hᕱ=ޥE7t01>b8#l20>wJ>xt> S^"b@No'>wDx"zC>$qNyE 9`.?<9> X2'Ⱳ]8>XD2%.B>D>Bj =A19gF>-)GNsC>>D@JUC>pt=FgZx7F>Ƅ!^ж>"v6>uS;# 0>lMF9hHV+>sp5K&\ ,>aE(<]a?>72S?ZJ('kC(> .98^X6&2>܁!]e> Ș?]=4>Z&D40$ٙ9>*"2cdd4> 3(.VDD9>y~Pa2SNu7>d$"]196M6֝0>mф33>֢b,L` 9$B 1>֙32p"<*>zy.7>+;/B25>fl5-2!p;.> 5;$Fs8l81>*^$zl:>4ip1*1>{K"|(5`)>~z1`(>"=E# %Z>88(>> xX%VE= b%]5ж|>y9X3ȭ'9>8+ 1b>Z\K=1na 㪄>DR;E>LAw3(sQC>\B[2nsKP>r<@d0{ >Sq>.|LOC>3jӃA>?z,%OzgF>@n, A>ڌ2>'|s0HR>Q(L_oB=MS!>C< Q>6>m(>f(3>Dn >^ϕ0|xzl=[Rt+L!FjL=5 =Yr ֒T[J,=C ;[̍ܽ`R>mѴ=]=w|>ʆ~qF@MA>q,:F}F>dr3k >>'W$>Qb30\5bJ>:.CE>@*I2~;Ė5>9͊'L_E>ofYpeB>7$< 2N>PxO2x D>i/Ͻ jE>!=F*"/_#k>ԟVq Oi{>t 3E>t) nhT:ި}L>7mp*>}A>f/qW!>ABsC> C$>q}ߪI>ZPk> Qa4>lmkA>jB>D#0(vf729@>qe4>N =/{p=E>ZX5&>L=#~%>ϖ}B>cC*7>'h%K?>Z2>WBgp=>lHNx;O)(C$*u-C+4H= >)R@a##V!؆+;>('\2>T :> VR;>D>{Ѳ|RSrnS>XZ4> ~>~PM>~MJ`=[*&'>8 g>Nd3>d5>(M*ۤ3>@_^M=v3>!YǸ=O}̽= rD=k @ֳ)C8a*=W2rYC>'x=p>/@1>n=FDx&C>))>l9Ù4C>̋ >=>1V=>] >z >1~%C>\ih&' $ c P&G~N;4fT= RG2=I#=g:n>\O=VHC="nc&៽QMA)i ^>0l_=dUS 潴JO-=b*.h߇=r4=Nzp%@9!f=q7Ͽ>74`T>2v>6B.Cy==Ț擄=Z= =jRrР=:saG$Z NW=k}hx='v^$llc=pT9=+-n\e=g)`?= M8_6= $Ҭ&|1W97-"=D+>7_$S=l~}p=IT;]+Y=YxC=Q"ߡ=>y=Fjh]=Wҋٰ=([ ȍֽ!A=<÷v sy"ƽPiӹ нhybq=,޸qŽ ,?<;=yݽU:=,'˽\m`#==U_]^hS5N c==Q#Ľ:.s49=VU.+,^4=en܈"Q=o0}ܓC=ff'9xXd=ڇ Vx 6=} P=ޓ0+=GHG=+#&=B|5 )K=0}%zX=G0|2ФW\_ \sB!+9L=R53vZ=3j|ueuG(*7p#,W=@Ϻ}ȰvAQ=Ll}:/ǐ=W7QPj| je=MϾFB;=,\0V@jk6 &=3JB=r h=b? Tn|hpN=khF=CaU}@>=!8󃅽ԁuG=z }J=ӷ%أ#M="62yClX=H )Jv `@LBby?kTD\= 5mU'=FY'^-=40=Pol`Q?$)J=VVWƽO|`KlA!V=>N=Hg pv C=DvZ@=6h|LQ PG=EO"s} jJ, L`j 5^9Ă͡/6=ĭطxAT .GA=m{g(',i=w%^yK*u=*9yg.KOK=w@==^P,۽>3^g-.r =\S~˽8p'EL0fXbG= \=Jcd] 4e>.c4yCT>8|jLqTd>x{]Dډ~,d>w^K^Q(>*>ʃGW>\b=T&‰f>dcĹS(>nW[>+_|C><uf>N>jc>N:>:4\S>Yp4>K4G>>X>%9W3Y>JBM>ڏta[>S|S>U@XI>ȣW>dl'I>\y驙uA>j$_P>\*'/>qo R>7 +6Tf> g!}OGg>*@Q6Ί{F>ô'qN 9D# rF6 ZE>D>aMw$@} NK31ޅ (iT=|e-V>z+QDW'0TVx܏>G"`rp=>?$Խh$(.qu՟ X( >= =tyqM_>dKg' ͠)>8o{8 >`39x>" g>d@+>-ٝ>J_@>>@.Sl>ۘZ!>jb.%>Z>}(>ʥ'>Kdd>>p"1=jWH>4 S7[F=>,;=f@>*$;SEi>,&!z(IVS@=mR51M*YiX:B>h/t|Wn T>Ől9OUaiQ>'պ4No/'H>ivK% +%BZ}s- d>qŭ,JpW>s 64p䝯d>%dDQ^3<mOp*98s6P 0e_p5Xz|" >wY %=IJMd^4>qFsQ=8G">UpsG>aFZ-`mnbE>~z:[9 Q>VM8YվCox_ >{@o]4>"AJ%^>ֲ dSɁM>gO<-w1d7,N(>"C>[>9N`&&BJT <\yD_rqj5MT j08ZF:l4UU@yM^UbrN/FR윱kP ObDZyjUEf6M#bps|RU#ef3@SR4ɤgll&{Qdi;YteJ@'a$&pB>RbM] -X>JCVtZLj P>KBd1PN<>ub$?XQ%팢Uu6[>d _P7?>`u@=:n29RW3=X۶N7$3A+4>Eز{,ocGv*M[{Kn(_E n&.SRڰFзR͕ ?1-d"5hz @n{=37&&~( ĩldw->"O/(6$w>p=&n{=ˁ=4=H%AHl`TYde >|s۽Y7=DNN^R=YtY>r/>.;,BS>)$ ׽''|>Z^\R' (>pՍ&=m%ۺB>NfmT(&">Tj]>IbrB>,V Ubz |~Jn֦$(1PN+ˈA~h4AiB7g)cqGvE?Y+ IEp/i,1' eB3_nBSdP5G;]kG32W>?RakQG'`Ngˉ2_62L}}?7%@r+>c'>Ho4>=">kiNYOc. KNB #G:gL b~]!<6_[:D{9M>sI dIB> b| QxR">]t]>Lc/&>`c9=p&>pj=gO%>> 7ۑPRW  7=J+>~h/F>oBQׇ9#>$ֲg3>BPk*,Q~K>FQbQ+xB>3c:l&n##m >vvc,w >үld>`D}f>9$LQB>i#>5x|rD>w$Q>"J"] L>=T4x1f>­2Zm>p8X6>EYi{i>̕H0>|'g>Xx>KZ>raTD"2oW> fܐE4>*4R> ">ՂdT>GM*LC>ORCX>cLЯ\>\KK>x;P>Wa>/gIɮҡ ~e q³XQ+=&z=4d{Dq:E8:߬stZkͥ`!=||"M ׽"~=ӛ=Dr*=\I',6t=C%b=RFdT=^#2Oy"=‰+=5yM=дfR=xɽ4Fu=0рZ=ziZŽjTH@=b/ =W ^]vws(n>R<8`ơIv=#p= ڞ=ͼ=j90t=@zf=w׉~ZJJ=8ke!9ޠu`ح=-80LX{P4=Q3f;|=12|B4=)3=}>x%ͽwl(*= nUP=6.v ;F17]3pCF蜽mL@b@i== m=oxB{=C=3=Zaq=0@3_ܰ=AƽccQ>Ž|882a i[\N'=t y5rs/=(kxt z==mG= mG2dz =h(j\ڟDtW=k1q=B^c}9[#ZB=dC*=CƽluȽ5 s˽P=={Sʁ @t[=R,3oҽ <=(Oٯ=˽t=e׷۽ % 7^)=tF~u=&0:n2=̞@eb;S=lb t=#:ʵ@m8mTU=Uyg0_p=A {0|:=Ҧ&~S rH&=:F[79ء=P7+\S佁eKzp=Y^;rԽ䔉=֞==o ݽm#=$>:&r᝽REU=>Wd=(֝.CȦ=T)ŬLs='mX$bnn=a{6ae|d =`jk}N:uՖ=QFKw=~e`=Tm =x '=#6Hh%~80r=c5T'x Í<~`Zj/c =T՚hS=`sۆq=ʫ7=(֬ǼD Qnu"m|tYQg\=J>98<"=%=t.tq=>`=}Tɽ#ǽ%=ܘm=p5m=C47VE`QB=0.4M 2 -=5]\iװKy=TωQ=3O#ܑfkϕ{xP=yB^=l}=o5=ƥUjn=k{q_c&= ýUN4}=x䍘׽P)`=Eq=0gYP=>E<۽-fݲ=iz4⽝xg=b$=WLw=52f=߭νcwT3J@ȹ=з,AE=UdTԒƬ=wrK8=LT>ս/;Gk=|`|=caSͽbYн|2+ԤXȊۼ-==Uvɽ/f2ei }<W0@u=hƼ֞PcȲgb= k5=Od=_jˏ?!Že /w8q=Z猸]=>VuT=hL==3EJ=[>>a=΃7lᙲ^Ls2 h Kbt(~8"ؽAQĹ=ݍ+˽4P}^=6(Nh Cj|ɀ=coj5=30͵=̇N=[1=[~ Vɠ=Tf.t|w ,Qzذd6?d[>hFmg½f$7Z˽V#Ldr&Sh[>)pp=aɬKr[>$b5= %XU=Z=vH`B&Z>k2,`:[>b"HmO>P^F> ,GL"czX>6=RJcn>W>!bCFV>)w b}=@XX>4TPa>L40Pw?5Ea)P>gqtF`>EVGaM\CO><9ѽ>Bމ:̽ZJ5Rx=hN 94 9 =ܺ~.Ά!>!ZZ>HiH;>`6>>f>.L?/d[7[oD>dYb8[>O9H= ƺ'>ԩ>I>ܖ[^h>4A9,V~=e$d)UO+۽oL)>Fdy<>\xjPO!?M[W>N>,jn)HT>Ҁ:"' $/>8$7>"+m&>h׹mb gͺ@ԑ=[b6=9=֒-=o NWܿ_ ܑӽo"Xp>>L0¹>~+)=p}ZZ=}gf >R>) =g ie}=ZB>h>BD=5=o C3Ƚ[y5C]9=[YiF >͢{@M4| ½\ =,t5gn,b>>dǂ:0>AV@p=V -=y&5Z>/S0/jn}Y>J]ҽ07S>JGՒJVjG ':=n %e"[Xx==ꄢĽ޹⦆Nu3]KZ>p5G!t@Hɔ(ob A"IHaKx7"=P~[>ɶՔ>"_0>nM'<>iǮ>>Q/T;"&?>.1Cv%'$? >"*L*8%>fT>FӖ9^ZH=*=%=| f`>wheV>RAMXV\`M\"Y]e]ilL>Fe|GX>99nB]d>0U>} qnd>ybtT>w e>B}SoT>LU>U@D>jUNU%8DXIEUI>DC/e>?~xVST>7s{ =>@s=EU0Db#pee>їhT>s0i4e>8\ғ9T>%6 |e>Q&U"U>+7(=&#:=Bd= +=}s6c>q\aIU>Ү1+e>x4R>pAЛA9 b1vd>ݘM>gKc>ϐJ>!T"e>\R>!z> Ii* > >U=4 =5 U;뽉["_>U>fcUrS r>=R c>HT>2wNY$M10d>BS>1>d>%똔R>Pd>^=dM>m{b>Z=D>TKm8c>H>7w ˕c>y_ikG>K/}b*V%EQËb>FgBA> ٥xnBV~^>>"N,^Raܖ`>}>k$a>30>OK{\^{uf8,6s5 8ZsYG%f[&AT07cĎ)> $g>1=.:>ڽܘ`T >ԨM>j>ԣP*V'!>>Lus--C>fǁ8>`S~Jo=gPT=55Ys= tY>#\0ٽtD=6wpK*v*) c=4`D=W=Aoltfhd dmѽ꽘CA =C\𽬳 WX>uj'W_=6^bXZպŽJQ=)=`'lWؽ<-" =5W=/q={9^nD>@c'e%E@=GV$ߩ= x=2 h8~>=!L=}Qմ=8X=AYb8pTNIUɿPPT!,>(@=< GW U&D_4Ath->P.y >kB h 2"]BPnDUlV@EP3X>\rf>)} XFZ1}R{ɧ1>C^Dv >5(->6B>VP>TD>y>uZ4P=T#ݸ5|\?3J.9[>"V>%{bjVk60S.<%!aQ+FE= åCZ:t݊GP%߽E[>-?T!rS> ?)ZO3y=>>+.qQQF05>72ou>F|>Q>~0F>$ >ެ>>B*e 7Z >\y&:Y>ő-TakbBY>^|O> CJ;Nya>H`> YX=Q|:>υ޾>1S$@rݚ] ][>B}jq]ؗ c[>rZêQ[> Zblfuʽd>XalZ>Fn`݆Z>RO>bUZ>>c=.xw00 wCƂ9G=rTFdF\V[>#=|P*=8fCxw=wwHܽD,=\k3,>*C"'i=D7:SS>8dM作H! "&>dBya>\T'$EuǟKWu;,?JQ H>Po0>mYhp=6Ќ I>1U >x:^Rpdw\eܽSXb/# b- 0ydN,AbX>O-{a/b>tMA>$Y»`KN>mmYLEc-elC=%+'$/=ST>-yHd59 ^we@X=ޟ6e at '>cK>+H"Ax^g>!4 q) =SeyM6N 6eGN=GH=WgH8o᫵"e>_=DɎrXVs9u@><|l6V>Kn1>Ad>.a LK|=u? }(owB>:] R>3:?>WL>oKF@G>(T>,h+>_hT]f =D4bK鄽!+% xhT(ю=fNv ='\=V["/n=JY`fc[)2g,hZ$glg [^#$Lgnu 8lQe~,jHfPp"n_2gV%+|g~1fxS-qgv)(c/hRx=&Kkh6v1~Vlgr=}O毽hU=C~ќ=oͽ0k፰J=L#~ѽ֡,6J1= xKs=TrϽcDzlF=|$V?K=/l=*jc{= BDŽ s=)׽d嫌= ~սK<7ҽ\½!|=?N=Z\+0=Ϣ%= a1=8Eȳ Hv I==:=.l==ǵfŽ?t=+mAu=pm=.@=?F=;|dj=LW>= ~Q=YwY(=iԽ`=[GxD[NoeB}=^"f=)=5!m=)tًc=mŽQA= E=Yz ŒKp=(Ǝ= D=skHj´=)=`Ě5=v۽{=۹YĽGyrHڔTսr>^=t[G=N6ڴY6l=x %4=m|=%nM={=x=L0*>tԽ ¬M޽ѽ4Us6ͨ=G=$5{y=B\f=τF=:ȪXlԽK"q4z=DYv=Fa.SVʅ}L4)=V/`=OG.޽ȃI_[uս lx]N~=Q*{ʽHz=p=Й,=*iʽTؽv9#tȽʜMU{׽VŠ=2g@ν bscF>2-=^V2=@e֪N4 B=.ihӽ)t<:ؙmC뼽PYH=V=v !=$=(ca="|j='=Wx=9z=G8_G`ڰDIUʟнv!MlѽuܲT+Bpw=i #=r = Sн. 'E='NOQƽGuWl1̈֯*N6>g]^=sts߽4]=>p y>k>$2˽`ս֐=@'pf׽ +aWl=ʩ U4ȧ=1=H;pކ彋X|\=TxL öwWݭ= yȽTG=+2=<ýG'ݚ̆%=nj&cɽFkf׽ S{=6$5Wt=,A=3tЬ=t?G۽Ze@ϽnZ,LD8#=N=d}m2uzD̬)ے=F_g{=5 ԰]N=P=zTS;ĽTyRtǗjs=ݜ𕽸Kd b(°'A#=u<'>NQ = `E=}н8;'={=/=kz/qv]=8>Q=Cg=Ĝ+?=0nv28===pSF=`s12(> a2>nZ!j+<`|3=`꽾M<]:2>y/:>΂3Ò` >A>t;4RF>}?]fӖF>ԠeA5>i:Nm%g>ě6{Q;.> 1>:| cO>P+9 :B"g{/ $l7>%j=3D#n=޻=὆J#S͖S!>O6H e->#? >rܟpF[;>@-Qƴ'nƇ/fU],Î6$>6.NJʸ>jֽӯ۽z U=8H><_սZ >~|*!>=կx=? 6@eJJwX>#I`oA#[Eh>/%$>"p5*cƐZ:02 >cB0&>{5>taD>G%B>K<\O>OD>r.-K0خBHCG>peѩ>AM>h 3 I 6?y>juO>4o%>&#PȲ/>Y@4E4F.N1 ~0>I;>I~a*7> n:>9{3>2SIsHv>D70>~H >+oD:)㺋n'>m⵾tT:w5;4N> bL2P~%8,> BOVe2.t>94=ta' =@Dr{JK=DsA#IJ]9=we!>')5O;HIj"0>d.3*x,*2C2Z)&Wc~C>$ٹ*>rtI|?m->/bWshHl>nά A,,!4}4Ո0>i>$o NJ4>F-@Slf>M-zQI`hcCpG,>0

X 76VN6T]^25NL6DvR<%U>`&#=el{7VC˅-VR0!;>|5+>W 6> cɚx$>PX m=(YU(fX@n:8*5l˺e¦/ ɲ=ʃ=ߪZ=7 %z27-1E"!J!>]" =H 9>8%>3 <82[Ě'ɡ'IS{|=$y>8L`ݷ,0<zkK8>އN%>1>bT{>'ֱ0Sa?$ BC\9B?1*MfD1F?{q̽}Qbq򽬊ɀ,B@̑:M36kɩIBv*(cSIӮf=$hCNR`#w!">!>tM;Ak8>o,"&>G2Cj~GvR>K>+h"Z^Xi7] >S 39;>`؈M >AFW2IeeJ0>=SD>>BѰ%>׸1,TZ)}pQdI> 3>G~L@G[;=Ï-KB< "!LU4JY~6,ng@@;HG>7>Yb>fpx.>{=g>@sۉm9>r|=7N04>P<=;w&:$XI"n1I9;8B}3m:f +D`!WC>Ň(sIz>)9FE. ?>VJIX3>wd2,4 ->> >z%P\+60rh +>㜷V/>0>PA>.`n2> l;>&e5O'>ϡ4MFE>ET=|$>6C>C37Ȉ:>Bf1j*9>U M2L ZF,A>k 7m{M>~\Lƒߢ=T,1L;>ptr2< V7?>0pW;MOl:emm4>x7>!I1椉`'> 8>;3S:C~:>H|V3tH6>*b w0C- !t½=(31LM,2)J#>kv)B=c3w%y2? J(>THOL jǗmH='h7 N+0>=9>2=̥1))6<-g'32>׌75PY*>9)=Gl:Rj8^!| 'N{WNf>pg$4D>k]2.k^\&vmVx>!B'4>R(rc1A>A lT0RLD>>JRNG>`]:C=eA>f~<0\ >A0>$vܽ|Y|Nh߼l/h^ѽ!>D5R:HŜt=`W=8?+>)fͺDȮ[8FVξV=I7{}sʽ1eZz=J`ET>N!=gf_P񽌛R:3A9߉\m?>^hp t(-,>>ۿ˘A>?vb bqC>'B2=jV6>t=t I {Je5F>R9=1 dR?=*1*Y!!>{+@>iB">''@>>i`%uA> >ڠ I>,9fO8V=^,_.YM#>c@7P>tZɴ>^Nf$@)>tZ= (4>?O(>ե@>A4>gXbkFޅ<7>3&2>\5ZF ^^QB$rL>g=3>ݹ=ț2>Z"(= ;2>>=]TK@=dY4<&]>>Jo'="&e4=>`[S8=&v$>~Nr>'I&/b{` WBxcs=ιA>E( g۽ l_=xDRz =U݀ktIS=d%XŌ=n. > 9=n3-O֯ =fZE4_=aTR*hh2A=C*8{],} Q=zc;BQ=`ښ=zyp?_~q !F=[? (K=eh=tPd3!6+i? a)T-='X=/Hl\>6/=1 2ޕX4()b=z ǎp&[q aTRp=lPDƖ=r7.}>َ=st{$P=5Z>M<g=DRN=A3 h=HYDrC=y n=^IkL5{N=0; ve6(]e&G= X/X=8hn^~F=qyx~1=ZEF XJ}LpHӴp=#x*Wv}_˽L,fi½0!{}E sVQΟĽ>q=@bk;xh$$2T=IV0=`hmt==#M~V]I@ʒ;V;SthrAq½0ʼnbbs==CR=0‡= l=nz½Tg4=:M=ȼ.Q=ywk~ 1v=9E$vTc1T=꨹Ltm[|vZU邽lŤFxiK}8l$6A<Ċ4k]Dg=LEcѭI=z%VV>'@9PD7`>_$зd>bi.3W`E>>_X>@ڐ0=!ϛl>> 1> g>T'$eC> f>8ܧS>K(u=T>gM}B>HcbN>bHc>&xtlGo3cT]>ʔD>5lq#"Ȇƽ{y$:!`*DJcc( %6hG>nU2VG> >-8#']">^5%RfKTxOԆ> -8=CH: >*&ں>5-pz3>K\F>I'K>1>)p_. >-UT*>|J>,#>L>N>&Xw%>mOJO&>%B%tz>?y*Dڵ1bzf->:kt$TDc>< P>&" .J{n:"8Ⴐ=B (DB z |]f'/Qٰ jTX`@N&(|FrD=_Z9G U$a4>uGX@3>Gmͳw;>~CFuĠImC>}Fv$\I_UYpʷf[]TwZ7>K S>bjQd}!b>Ȟ @Dwr/X;>Дx`*(-8>%H>\31 rc :>bON!ng *sq/ k0mA&u#: a8ɓ "I)A =r#K l>Q(Sl®dt>lK灯>r)Mv>\X{>HSQPU`U3+KLڪ0&LH S5485!u1>+>BFU<`T>ou{__Z>3O6`E.M >>">">J/>+u>J%I00>_g5>\i-$>k 5!>x&.N5vn1>:il=養>k?(Hu!>}G>B Skoe>q:H^nk`>v9`XLi>\(@! >3yIЫS>j9.A搮mc>_TNh>tMz( eK>>lnыu-ҎYڠ;J;[$RQD>l*2h>ʔdD>\Xg>$T#>'`]>ɲ@`ԬB>)RU>fr V>zX>O{qx= P@;}Ew=K5=YK.d=r Jja=^ 0=W\auc]UY(b=iӽ~E7w-^=X/V|=#[@g=|gvi=d\#v=F踶:L?y= ۚ=Z*{ 3>v=Koٷ= ަ=vp*Dҽ*FK%=ƇJb=cCmM6f| ʽߗ==6ɾ-=|/^=Ch'I=Un7^ټ7ڽj:#la0+=. n$`|>υ=cƻýƪ=x+;lz<^Q=KŃa=Hd qe=$eV=`]*pb\F>=4zͤ<ஹꃽcMz=.ALYF̍`XK,Mݧ֨]uUn-T~=k|D}=iJ6נrTG==f8۞m$[j]=H+.vĽ1zB=@$&#=8_mj0/ =y}Sڬ:ą=}r$ɚeϽ[,eն=e׫=J3qA"в-IKk=)=vh=}qým9 `[=X(so=|ާҽVF@㽞՜a7=N b =8뇽qfخ=Y/AJ؋= 2Mu=pR=DD^9`r܉*WxltW=ƳxD=ýFm= 㰡Z*Qyeνd =:v!O=ƱI`?ǽ )檽jBۊ=yES!= CBqFsNfm=!c(=iXm; =-t9Kͽ]}ֽ==*m@=t1"d=&M½q'kɽ<Pɽ=;=?AF-󽏚4a=:h{6l=m0={= +[U=rGg.ԽXh%J"=.d⋛ =WS=o)8z=v, ].=p4="(=H-fO=v = =p=o>:=Jq򅣂 h,u=n|=Ō/d[>+*~d([>6VUѽG=NzdL$̐[>ubI`V̔JR[>Era> wG|Y`^h>=|w9 EMY>}^HT d=>n*>1N>UDY>;<Α (}]T>^%A!x!a>zSQwK t =Z> "Lv =5o:=ZЭ+[=†6^=>=p!QN>\>ŵt@ &=w'Fe GW*>nx`\>x:`68>S^G>d6{ 7 4W>Y/>*>B]4>ňhACJJYd`aF>ToN>hj5_> $_>+UH>C= >9~|Z>tF>7>> >-"K=ûHNS`>`Q*pa>J>gG0pU>hN CPe=/]˂}[R)m/ >O7*}o, ٢uo8>E`=HtսP2ŚBK*콌Y""?yڣd={ϡ=R Y>̹C>$">(e\) 1J~o=\#o= L/=+q1l=10O=ϕnR==0vG2%f,R ay€!{z^˽IST7(BW> d>k2?=pMhP(5b>{:T)iaY>`Xg=\VrGNXm?%=O_ҽ~Ju% i j o(Dd: 9#Q> m'Yʴ$naf>^h`>6`:UK7=V 8dd mS>ЗI[G:)A27f8|MaSoP( S}:vc]"<\=jܜV=rXAޱ=Dpe>8BgT>sZemZ NUb=mfNUr~@lf9aU@l(fc=<`Uƹh+e>ffT>:=zѢ=fV MiU8\=O-=Q!e? :kU}5 emG2TY4O="}"U?n顢d>|UT>" ˠd>"h'Q>(d>⏗.R> `3d>gIP>g c>oc]Q>fbg&G`GX^D>/PA/ >cZeD~*_YI}Xd o:RiDR f+$4-OA"=Si=j#u#A5,Å؏@y\="AV=̦q4=rhcLb>ɿE>`Ad>%u1N>jW4bF>f!@G=`[OSmy\F.1X-82a\E @(@HT6/&l``h>!U]g:E>U~mpTe[N>|τ$Tr nDS>60H5ME>ӧ~Ca֦T/U7>yH="6轑5r= tὝIzi3 ؽ>=B]=;USlP]nex=gqeWw P>b`k=Yq [=pa2Т@=CݛJX= =Pʂv=*XoIpϽr<>HIE>JE( '%Ya:`> PF=(c_jMסTh-@x{Q3cLہR oVc u7Rh\h^*>Z)V>~臻4x "D^ r?JOe >12^f>7i>5L=3`~a>K'Tý&F<=lr[> ntY>UVz+R:]p( -9%,F27)>~Ch">0~>ξ9At`W,>_4q\(B>7a I!=0 ;%Խv=Ea=SAy=t 㪒tf>%?>S꽘*5Z>r_S~ż\>AWRFGW>h|DLX>BȈTrrqv=*VoK&.rK=>T}"PL0J>;I>ZUMzNDS\8e45w=j6_=< WmIDTN5=Y7LaEɇtZ>fl`D@Ƚxb2ڽp=cwk0Z>p&NƽP:S7ŽL=nx= ⥽ L =Wx6Dѕ21[>;+ kC3R G> '޽lZlAJ >4uc "(=JNX +^>xR3CFa>̓n,FF/ h[׽vT8a>IqH~Mj5gYd>.UDEe>xsp(H@e8voY-/Dou''Rc?$-`lRRS@a>4ro6)OĥsV>ҳKo81`>R+F(d> .G7 :a>*A?$#\`>d x1 ;C c>a5# $^Wd>i$p?x62>>dafe$a)G>>\uQ/[a>zBv*>ʁpe>+6#?=Ѹr=*qb=wƵɵohFb! [=>ĤKd>k>(5m=ha(>sۧE>XgEa>@-F>8NF8p>yu1>Y&A:>,`x˾O1Ћ}9̕-Kt:ִ^zü״=˼T,/N,i)h8t->}9vh>DR`0>L6ʰg>p=ӀQH=_C=0")SfnIN!QTf&Ag DNGïHf;n&u`xIf(-P-2׎CJg(g"K$,7GA,h05S,>:!^ih>0`#"g Q)FB5@f =ܰR-L!/*o#= ^p=GJ=7z ;=ٽ==J\]0ѽh<_EDz8|Lד=cò<н&3ѽp3^^H4Gʮ=tI=,׾iиvY~zCv*A '=ГKuq=_\Ͻ7ҽbWQE@Ӷ=ţ=h.j=D8l=*Pp=#tŽxnq=Hn#=Ϟ=(L9E=4'Ŗ́@c-F=`twȽX{ֽtLQԽ~4+=T!3"+;=q׺,Os轁0 38i>FQV=.}½6cս<>nϼ=A Y=\-wضsj5Es8ËϽǶ> =pb$=\6= L=ɰx`Q"@J>]=Z̜)_=2^Y@cc=E 5z;Q=Ysʐ+ý2!Y%=Q`Z_=&Ct7v=9K=*ǽC~|,D=TrĬ=Cu ɽ|#udppr=;oS\=*m8Yuv=&2^/=P>=clDh4ͽgy=lsM!$zA]hԽ4n=dM)׽Ѿ' &=[fU=ɽ=uc,5)½"U&=30 ὘`PG=8^,%%9uz=JBGOj6ƺ!=)'н8ȽPZl⥽ =mzm=(\Vň=#"BY}uUGı载+8HrǍ4{=H"ѧ=0=x\ԫ)ýPPpo7ǽOeŽǃo=(½t80hԽ0mV=(>=e==fU񺴽'i=p=\cC= -dl=QQн,=Pme9H=Os|r-7_)7RJ8N]U=+潽ƣm= 8s= H4<ƛHS$W`=/ t祋=Ôկ='f=js'=έ3=LL=<;xI=! ==F=4RI`Aɞ: r= >ď=% 3=tǁ=Qv=oʧm=B[mw߽2HҠ$-=}M=h:&=s>=ն>=0D=OHҽQ=m։ή$t [V";D'=#Vx=!F;ǽjΰ=J/=g=qпv[ 4-D2UHܽ:=cuˇ=^V8w=0%:&+=JLpɽ5.I=AJ=XnUw+H;=I6`mxm'=%޵S=9l{=Lhy=%Lª<= rJD0=Gyҽ.#="=^6SϽx{=(/v`M=7aI:=ztVDƽ'ySv=1vbz=k<Qy=o ɽDry=MT;=Z›2C-ǽ=m7Z= f ݡϽHgQa!D>BPPA@նv7?>e 8"W2x8(>h'B>_&? :J>cQϬ~6>(d.,'%h >,Ⱦu ;]>Z{mA>(R׏a2~2>u vb@>k$u%@*CSP>sj'#˽ >͍<a%4zD>XB k )ُ= .ܣ=b' > 5tؑ_>R>l>>6>ԇm=oj2\3>XX p|8>~K.fR>QE=P>ؒ˩=.i$ g8p;$>'J<>6J\l4>5*> m;$͹ >['^F#> =Vo mV }R=<:>K,vێ>93 `:J[)>+-/:>MQ;41>+A$B A5i!KOA ..{CΥqFpfĎ:1>gC">Yf=>ro*>QG+Hd?-<>x)>aqv'>>c+K*>֚ ?~0DGNܹ4E|{l"c|6- #ZpXpiHkP02Ԇ0 Gj7w=t iJ=nՕ}v2>f4g >X>3]=IGн"@+=k ̐ Md,zO 'RrN"T=5=a; GgS4Tߺ.A`L%> L1k->>˄K">Ljl $>8fJB2Ǚd/޷ 0yöY^7[E @*ǒe^RJ 9Q\\IF 0B)v9rg:6>B?>dgTJ ;m#@U\G>H^4;C8&G̹9>6UC{:A>K&+UFMl8u'>˳j%>ΈQD6& E*>#0wP(O:\ V0U%2>&:,}-"0+>C- )^{->uP'( d+>}I%7c#ν`-"=S 0> IfB&ǹ.>b4?%$m>Dr> x{z|)d6>wP>G ē=_}-">B"F>^)l4(̀7;Dט2>1y00>X@bft.>ߖD>LL>B9t?.|ٔsѽ1ju=>̝)oQ=Vǁ=vb9;F#>N,f2l:fE> =w0.B>>ɋ3>pL>D>27+UdM>:oTPr=o<-Η&%>BVJ>[U1>ͤCS>BW:>(k(=]Z@>I@QA>A:OB>/r2[ K>а=8壐`=0o8>dL(CX/>>.>T4>4`LF>VDך B> l,GPQ>Y>b7PC>-j if7yF1=bѳ> O 3G>PA R3=nBܽԻ&pֱ=H!V=)襦&_=ׁH=/BIqS94=iqKnsx%|=4Cb;$\½pڙ0}-PYV oi{ƥ=Ƚiʌ=@s{C (2cK=8"TX{u=#I= g*V=y5={=*̻JCn'㤠xP^ dJBҽA&vY@^B=M{=Vy#`Czݓ=5,C';!.<ꛯ\E6 =bͽc0.4>ո"g>S>XBb6f>4phtN>91Xa>Hgzp4|4L>b'N(p(8| h JQkkʀ>y5tP>Rk߇>"f">Nf$;}{vkV+\>SfNc>Y $:!>ƶq&>d|7>tQf> G=  %>jwj@.m_ AL@=`I8$F>>RQO3XG>mP d:L]>H9$0a,8I>IVdAW#Oi>PWylO>ސ<+1E4E1PP=:`aYh/>745PE<>wE@BoLxn%<'5MKKf{ct1L/ 6Y @GMﲣ^v_!X)bӛ_U mdd͔+&kf;((.$G>_ҤY]ll>=9>?-> |U>9]I`UEsnȻ|n{\7"Q%A'T*d7G&bסfwT?fHâYtnCB4;y+vSdOC$iA`첆+3>e藣!>>,)D>n_IAz zJu.N>5AUK$V >Lyh>N"\k&Rc>qO].a6!bN>`'47BF>*5U6>Kۚca>CG>,\Y#G"S>{v@`8N#h>_-ңg>>kN> 3 e>&tM_=k=DEнT!y䒽.":ř="=uʻΰZ [W: *E*Clh(=8ft1NK>>r=l铰=]u-zP##mˠk=6]5F[Pߜֳ=J+Q=s1=a jͷrm]Ŧ~= %G4V /ҽn+JJ=!wS|=J?}=~8exxB ㉨=d! =C)ʽ#1W<=6u|ф=3$Xުځr7䃿V9׽=Z񺦽/ϒYRNfRhy@}p=`IH7=ji㪊"=+P?B=4ǽ`WmXh=ZI}==ЋJ=$el=*P;֗ F5bZ)t Z>.PzbFI>X>)bb ,V>n>f.mt*o:04Rr*$~!|\}0S>ɃK>X0 "oy>p_Vὂ5%Hqܽgfh-/ > nIzF;O>>HJm2a/ >:e>^ʋ>'[r(->5_ /=g[>B?׺R4[-Qd>*(T>De>[ϴR>)pU>c!7[D>LIɂe>g̿T>`Ǽ=Nc=ؚĽnҖzc>j,*!T>ɕd>vQ>@_c>]R>|4c>a--K>a|d>F P>ݎ@>ƽ45>\^a>㆟!T>Sd>?0,4S>u=b>׍[$B> y?y`a>l3,>Z(k]>&p4眭$|>a~'">+A=6跚=ӿg=PYl` w">lT-~%ٽc~n+=Xق=:S=R}+qmfM>"Yg ,Z >c[[>H=O>TȐwnfB>t/>!L[(>Ɠ8A~ێX9*>ks>3>}b>t qT>+!jxd-z9>w! >FT*PbʄV>`>saŜyT>-Mcce7J>ga*>?C{| ^`.@*pZ>G;c`[Z>, i cJX>=GO>)011 !UB">$ `L> АTi*B>*Н ZZNS4>D_b[Z4>>B&B|` ,E>P :_t殈&98|2ejɆȉ=:DѢͥkͽzz!0uѓ=~?'Ie;ԃ`a04ٺxg oT, 6h@JLwާ+Pfe+$̞ h#-6Y'Zh*ϖ=GQ?^˻=-=t5=H}#=Wn6ѡd@;t a=F/+вWA7Oȧ5'=$+fF=gm,rπ=[C=  =LYy?==Fkpο>NrE=bҊe=P[ s=/U=8,/~=e =Ǎ L=I4F9*=ֽh.ҽ+sM梽\^{1~ ux!߽M=BsR=b*f˒= >= =,dC+8= 抓:=c @=hG=^=ي =<0R= *E½vhǥUBǽeGl(Pթ][=9:w½;XT=ra)h[}=DGӽ&U8창{@7ؽ}=o3ѽ=|/DV==C_T1=G=s >Pq ^鐔 (=ع`=*yn=6)J2ٽvc'=0B%ϊ=,n_=) =qu=V"=!_k=1$VU=w=)=983áp ߉=#==P=/((>_A!B=_>!.xgZ>*>1E*kn"=[?M;E>}Q2[n@_`L>ak)D|2$;2ktm$>ޙE)e7%>J:>,X).m%B2 >PlK>j,̕D̽閶'E!Yfa>uz=nν_m>nïr! !>owpҽ'\9sPu >*w)p) =7,D>~т>f@|aA>Sʼb0;I~, >|'>lS>$I"Twq39OR쁝11̧(">v?>Z Ł>l/%,>t ->o16>Xt`<>z}<0 @>$H1>0XW-%0Q>C{G1AF@#ƻ/0M92 #6>(.>6A$\c ,>5"%YD<>jΠd8>h/-9>x)">J?5>TY٫1Q )5G>q@*% (=G+]AGKr===A2a$1>_WS$%z_4JxhGpg+!>j@+:2Ym98I>oKd =>`U:KT%Tj \?CC.7oB;0v)A$V0 z*Ynw38>,U'>h(m3>7;y>U>f5r"=v%>]+ >!,D4 ,'5ʓ69>N&0Q3>| ? q!>\fg^=4=b*A=T'K<]7ȥ!ں Bn[CP >ld,)j06 !2an'>a>T;&z>۲=*W1.>>x{[Ԓ3wͪR`d>Ky8ӪbR= _T=B*8=X9ԧ<' >p"ǀaÂA>%M=%4>y%>E>/{P$>;0! ;j>> .V!>4 b%JfAa'Զ)9?1$>G,> 4n ȟ'6#CeR`4!vh#S~>TKظelt#NQA(ӧb>Ǚ5H>pI2p-!#tS>;Z>NP2J3>2Q"b1>O>O>PƉ.Ы=2>{f@Kc&>O9WPfL>)8.>4E$><$>DK~oE5t!K=!P[maL+A4 />t{7> d IP`>c=N(;sO_(1o0iDO$t5LVyG`A^=2f(H>NXX(>jN*Lâ>nB>@9Q?BSv5C>KlA>X@ 6 DϧY>[=rg!| >c*&YA>(@98vi_A>2Gu;^T Q=Z9GK(II^$>`$w5>VN2E(-+>g}#c'WPN5>Nb0&M6>Ks0tVhH{8>W"'82l2Z6>נl G+xkgPR#Wn+-R:^nA>9G3\Fi?>鵶*>hb*>n9.![&V$>4<0hODf=֮Z2Iԝ:FH)ij>>%Ԕ $!D>(.>[C>T3==1tC>컂ӽ>m| ĝ8>vY`FC>`_e=:`T93?]>ڻ@>=J!>R->xt>̲N,!.}-7>Zg`J>X>ԜYg̵K ><#^9p>Y2>u i1iB@"=FZ0>=A½=\g+>`"?=нگ* n=G\0>(8=Ox9>:l1 ^nu67 >(mf?k]% =;(.-Sg=dA=-I\|k=&Rw=g=^ {Ybm Jm=79P=@s+e>a@=-s>7jR*p="KBqQ鳲@=srFb=JŽ_^-ҿц=XI_=")Hx˥F=JR>"oYMZhd>XeoPv lH}{L>0}V>g/%0|lI>ow$Xkm=Pj,$=AH">:m&>eK?;!>4x},>g( >P+GIxH>8[=񋌯+!eؽȽkh>a,G oap >43'3Co@MPAOX#>ϥ[=DnP6pnGPyL=`0nɢ\5|W  z iUdc>9FDA>A=wN8>V#-> /Q>6:nL>9D6B>"d2U>cY>q{ϑѿ8l0Ϧ?Ѻa,ٿr࿮zhO3lEѿ8 #o m(pFſƙ+?ӿx>|2$`ͿdHpzJZ7ҿ:4hr¿(*(NT?@PORHD.C&ٴL+Z 1Xiտf[*7y^z kS?ǐ`k,ҿD ǿP4]$y>ƿwUc޿-4*e߿- ǿ]vJ-פ.?ZK da#?-R1X4.A.UֿVJʿYI|2봿hj~rղ?fv7o?8B{t?=s?@~TLj?w{ؿHfa~E˿=7}i޿@#l ֿvfy?GL?CB!Ͽyz ϿlTo?Ѥnq?~Ǵ?nFҿY?3VO˿2.xF[:?Ldh^ѿkhF?GW⿶qK*:b ?K{8k#>2Z<>U( II c.>~> >\ŷA󽬌6)=7[%>>~ >[U?56>8c>Ѓ(e">te2,o5>3Ա.>& O8D~&>q'>Uݒ%>Jb7B>>: Sv9!ճt3 >VY=5>t58q3A1q)դ%ʽSwD=JA[E*_ 3>t1Ca&iS{6,;r1>^"w]>B >g*>~8v">fi9>d0>sz@'>J>;*>~9'k!>FO2>21 0><%+@>`5 >#2!> >IPr>\^^<@nP-50ʟwgTu 1rs!>TLN>k=5u>0;P7(Au@e=r>~ 078I#nݺ>ۜoN >x͵>\6J -|U t, (>`~m[g{CO[ʌYL@1"t;>/,8.*Ix53>| .hپ2Bl^=g7u%&X&Pa$>ȩI"쫦gF-{7.' Pa.>^$ >@3T\_,۬Ku6;>[0&)g"hڮ9>xo5>+C4=>L9>w{L)!>(QЃ4>!t!7w>na}Vg4>TeU0H%h?} >54 O?E~Ah$Imk;3 љ:S(>֋L_K0& ]? ֈ,%$t˅7$]-<2$>@]Ľww>ٽjF #`e@ >>n0 /!I !A+>j >I,U8>2oIa+>׳,>q5nvr0>oPR;f>O8ȝ+rX:%^N>:>P 5hYj6Y}1:,=F@`kvBmwZ/$3G? @QG>@3M4>`|1/=8+F>|{-S.6S=GUB>z0$2=M%>KA"4l2=V&&!EeP6=>X>ģ|f>DJ/,;%ʼn7>RH'> '=(Ⱥ|Y,X0> N'*/B=,FA{TH%>?0L4>@R"3 RnBNx=p%@LVpb!>k+o >&]+߽R7/5F>vf?%a 64>dJQ[ >gQKZ0$T/>a{0``A#4:Y%k7&3 !j#<=>:#>GV+>8D(*>ąKj 13S`l}{r>_i[R]0U =>9jId7 6CáI/2x5K\s$I>^8>P! = OYؤ[>t>t .>.8w(>x4U1>B5-^W5,m2>h5>0MYx/F q!E^U>],]3>Vj&>w.3>]S;$qr/3t2>B{->- sOi>z%(|72>+T0O937>G*C""TAؾYO>>1ij>u)0R->nL~Pg$K:S#>8oZ9^4%>d;=N=W3> v|>ywG>t_|М+|^Mf$J"]>sU(&>Y RlsD >۲j/@tG*^v6+m{I U-]z3}~)C3ꋑ~H2>n  >}DD>! %>$0.>ɁP!p)8a=s3ʠ=3ˤʏ8A>\_L6z0=RN⎑;Kںޏ2>ai~>5>ɺ1>dD2oNKH8>?WΉzB zV>V7o>jد!>~q9 >Ml! kڋ>󌪯2r>>+>Cԋb#>3L>jV@96;46>*j;">̡1>h%>uJ轅{IU^:>w9=`N.>ȝ:>S{fK>1$8đ$>B9>*PLٷ5>|96"xr >IX1&ص"4>Pop<>KmL1>t%MBK=MX;ϚK >Ψo4U B>MZ0>d(Rc0:[?uBzVq5J(sI1>vX;+uQ<>4M"6w` E7>7FqG>30'>4i˂5=ݦ\E38.L+ >i>^ml"o>:ajU>EY)>yI oA'P4(Oa9f-#SY,s[@yH>P *kj@.PcQL!>n"U{#P0d6T&lj'>k w9DR;Du>RsH>9(8Y{=o?ndU@7=/2 4>;`28%W>,4v:7?d>`ItU>Y4>^!> UX6>z>ֿZ9]cm@3>h>?82EzŸ>z P2>}G$>@a㰸0d\>3G\Cv@>j>1e5Z0>D0nc9$>1bf!>}Ư=ٮ SU6 >$[4@ >X^v]@*)~'Ş$*vC-Ad#J4>%[2RIH&>s}F1>Z0>e#=JK"O{E(&3=s7>/e3>89q&r X%-R?ܮ0߬C13,ֈ)>d"H*H>HJv=S^n!i\=5ϱVi9kA>KmCE:B3ٿ<9>-'&X>>GjQ+>(oNqM>ZS3jV#q5>>/A">v**>;3=Y@Їd>:O > FGmO:>2fx;1_k=m=6ҟzyL>X%7$pK>i>[y.yUE=%N4C=ηVc8+<*(*~4>h[= >5X_~x,W$4,>%,4IW4>-&&v9x7A;S3->O).{>@o٘"Vz jV%>8)ȹpkH$>2f#!>+ܸz-Agݦ4@>*(K~i ,hH>qʧG*kU=g>xpW%+s` >r ) >zGvMz&b+v)EOg>N>fe֑4^>ʥxbXE:SF>.x2>h(>'k'>i˽iǠ.>C=b]8O%84SIqDF*>,*ÆP')>.41>nO0>ϣ3>+:E$>~ B4>Z1>CwX6>2=Pgٿjސ6 |ATw3>lSH->tyPi>GZKDh>)>y0>Pk>qv|+5>b @->ݕ^)>jX[sWt,>xr潟=U4~"󽣏x)D!jajWİ*8w׺rw|r1waD>F1>>W@|fH?>z& Y>ʫ Qyf :"%il4> A{1>VFU>{ >O c];РgZ@y=+(=@d">_2ܶ3\ߎ0s_mPDxbBlP ={V >v<4>=C]@,s>29CH47" >[jzN3p>0SN%Ƚ4;كw=8n ^½ox(~u=A5{1-$y#gI4_ ڞ3>#Q%o:Thxm(>v>R6:"e]t'>P,)9 gzu=j86E=L5\/100@~XS=?E 5(>P'>"?=n'@?M7R=G=sRq}v)\VG>|dxa_4>n,>bŸ!>JA(~0>y:|>`[/>ԫ Fl4>`宅ܣ0=>==kb1>6Xx;>'>WS7> Ƃ> >CA5M6>v]c},>"Tv/`Y $@)(>@T1>lX9(>2g X.>MGW^<>8]fe=_aB5>>?mM޾m>)f %>ߧ80>۲> >d*y= _ ,tG/>8}/C>>"`2*>+"!ŽAh>RSd>Ч_?AƘx >r1R6K˝&WE00Cꑎ >P&5_ެ4>.:M_2T6@>-^>ONyU>HVH `)U7> C#i?hU  -2Ez&;y*=.DYWs4.ŋ(~E=£x8$ [=46-U$6Y $>gC*=Eǽ*/ . ט!K29Rm4>Fyk=PG 9F1s9>1>S>77׭8{E>!*)RϨ!Ll+ v.> lt:G85 >T >QH`9!F">B>8ֹ=Zs/>||O!>@I5A/>]gheeނު>88:= #>24rF>,T (>Pv>`B!T>yb, >MZ+خhend .>rJ49Ӗ7<=f:;7>HE3=:' 4'6JO.P{T0-ة>zP{g pBP=>*.=c>\<- 9sڶ}/ok0E6 ?o {9>;[ 0#9lM#A 3/>4!l<>o0>zŤ> 8ܷx E3>ؕ! ;> ~ >+,n&5>o=?T?2A@/ؽs># J>Ž1V>=W: (>c!j'>Kǖ>t7ê@">|FmZyՍAS>)3y>FrsB!xsrcom.femlab.xmesh.Xmesh[{ω Z initializedLelemIndtLcom/femlab/util/FlIntList;Lelementsq~[geomMapt[ILgeomNumq~WL initElemIndq~WL initElementsq~[mcasesq~X[meGrpst[Lcom/femlab/xmesh/MEGrp;[meshNumt[[I[sorderq~X[ unitsystemst#[Lcom/femlab/api/client/UnitSystem;Lversionq~xpwq~ur[IM`&v겥xpuq~t struct('elem',{'elmesh'},'g',{{'1'}},'frame',{{'ref'}},'geomdim',{{{struct('qualname',{'qual'},'dvolname',{'dvol'},'sshape',{{{'vtx',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2','z$2'}}),'lvtx',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2','z$2'}})}}},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40'}}}),struct('qualname',{'qual'},'dvolname',{'dvol'},'sshape',{{{'edg',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2','z$2'}}),'ledg',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2','z$2'}}),'edg2',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2','z$2'}})}}},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50','51','52','53','54','55','56','57','58','59','60','61','62','63','64','65','66','67','68'}}}),struct('qualname',{'qual'},'dvolname',{'dvol'},'sshape',{{{'tri',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2','z$2'}}),'ltri',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2','z$2'}}),'quad',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2','z$2'}}),'lquad',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2','z$2'}}),'tri2',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2','z$2'}}),'quad2',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2','z$2'}})}}},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38'}}}),struct('qualname',{'qual'},'sizename',{'h'},'dvolname',{'dvol'},'detjacname',{'detjac'},'reldetjacname',{'reldetjac'},'reldetjacminname',{'reldetjacmin'},'sshape',{{{'tet',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2','z$2'}}),'ltet',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2','z$2'}}),'hex',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2','z$2'}}),'lhex',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2','z$2'}}),'prism',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2','z$2'}}),'lprism',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2','z$2'}}),'tet2',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2','z$2'}}),'hex2',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2','z$2'}}),'prism2',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2','z$2'}})}}},'ind',{{{'1','2','3','4','5','6','7'}}})}}})tstruct('elem',{'elmesh'},'g',{{'0'}},'frame',{{'ref'}},'geomdim',{{{struct('qualname',{'qual'},'dvolname',{'dvol0'},'ind',{{{'1'}}},'sshape',{{{'vtx',struct('type',{'fixed'},'sorder',{'1'},'sdimdofs',{{}}),'lvtx',struct('type',{'fixed'},'sorder',{'1'},'sdimdofs',{{}})}}})}}})t Dstruct('elem',{'elshape'},'g',{{'1'}},'tvars',{'on'},'geomdim',{{{struct('shelem',{struct('default',{{{'vtx','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'lvtx','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'vtx','shlag',struct('order',{'2'},'basename',{'psi'},'frame',{'ref'}),'lvtx','shlag',struct('order',{'2'},'basename',{'psi'},'frame',{'ref'})}}},'case',{{{}}},'mind',{{}})},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40'}}}),struct('shelem',{struct('default',{{{'edg','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'ledg','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'edg','shlag',struct('order',{'2'},'basename',{'psi'},'frame',{'ref'}),'ledg','shlag',struct('order',{'2'},'basename',{'psi'},'frame',{'ref'})}}},'case',{{{}}},'mind',{{}})},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50','51','52','53','54','55','56','57','58','59','60','61','62','63','64','65','66','67','68'}}}),struct('shelem',{struct('default',{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'ltri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri','shlag',struct('order',{'2'},'basename',{'psi'},'frame',{'ref'}),'ltri','shlag',struct('order',{'2'},'basename',{'psi'},'frame',{'ref'})}}},'case',{{{}}},'mind',{{}})},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38'}}}),struct('shelem',{struct('default',{{{'tet','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'ltet','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tet','shlag',struct('order',{'2'},'basename',{'psi'},'frame',{'ref'}),'ltet','shlag',struct('order',{'2'},'basename',{'psi'},'frame',{'ref'})}}},'case',{{{}}},'mind',{{}})},'ind',{{{'1','2','3','4','5','6','7'}}})}}})tLstruct('elem',{'elvar'},'g',{{'1'}},'geomdim',{{{struct('var',{{}},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40'}}}),struct('var',{{'I0_rfw',{'0'},'Im0_rfw',{'0'}}},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50','51','52','53','54','55','56','57','58','59','60','61','62','63','64','65','66','67','68'}}}),struct('var',{{'tHx',{'Hx-(nx_rfw*Hx+ny_rfw*Hy+nz_rfw*Hz)*nx_rfw','Hx-(nx_rfw*Hx+ny_rfw*Hy+nz_rfw*Hz)*nx_rfw','Hx-(nx_rfw*Hx+ny_rfw*Hy+nz_rfw*Hz)*nx_rfw'},'tHy',{'Hy-(nx_rfw*Hx+ny_rfw*Hy+nz_rfw*Hz)*ny_rfw','Hy-(nx_rfw*Hx+ny_rfw*Hy+nz_rfw*Hz)*ny_rfw','Hy-(nx_rfw*Hx+ny_rfw*Hy+nz_rfw*Hz)*ny_rfw'},'tHz',{'Hz-(nx_rfw*Hx+ny_rfw*Hy+nz_rfw*Hz)*nz_rfw','Hz-(nx_rfw*Hx+ny_rfw*Hy+nz_rfw*Hz)*nz_rfw','Hz-(nx_rfw*Hx+ny_rfw*Hy+nz_rfw*Hz)*nz_rfw'},'dVolbnd_rfw',{'1','detJ_rfw*sqrt((invJxx_rfw*nx_rfw)^2+(invJyy_rfw*ny_rfw)^2+(invJzz_rfw*nz_rfw)^2)','1'},'Jsx_rfw',{'uny*(Hz_down-Hz_up)-unz*(Hy_down-Hy_up)','uny*(Hz_down-Hz_up)-unz*(Hy_down-Hy_up)','uny*(Hz_down-Hz_up)-unz*(Hy_down-Hy_up)'},'Jsy_rfw',{'unz*(Hx_down-Hx_up)-unx*(Hz_down-Hz_up)','unz*(Hx_down-Hx_up)-unx*(Hz_down-Hz_up)','unz*(Hx_down-Hx_up)-unx*(Hz_down-Hz_up)'},'Jsz_rfw',{'unx*(Hy_down-Hy_up)-uny*(Hx_down-Hx_up)','unx*(Hy_down-Hy_up)-uny*(Hx_down-Hx_up)','unx*(Hy_down-Hy_up)-uny*(Hx_down-Hx_up)'},'nPoav_rfw',{'nx_rfw*Poxav_rfw+ny_rfw*Poyav_rfw+nz_rfw*Pozav_rfw','nx_rfw*Poxav_rfw+ny_rfw*Poyav_rfw+nz_rfw*Pozav_rfw','nx_rfw*Poxav_rfw+ny_rfw*Poyav_rfw+nz_rfw*Pozav_rfw'},'normJs_rfw',{'sqrt(abs(Jsx_rfw)^2+abs(Jsy_rfw)^2+abs(Jsz_rfw)^2)','sqrt(abs(Jsx_rfw)^2+abs(Jsy_rfw)^2+abs(Jsz_rfw)^2)','sqrt(abs(Jsx_rfw)^2+abs(Jsy_rfw)^2+abs(Jsz_rfw)^2)'},'normtE_rfw',{'sqrt(abs(tEx)^2+abs(tEy)^2+abs(tEz)^2)','sqrt(abs(tEx)^2+abs(tEy)^2+abs(tEz)^2)','sqrt(abs(tEx)^2+abs(tEy)^2+abs(tEz)^2)'},'normtH_rfw',{'sqrt(abs(tHx)^2+abs(tHy)^2+abs(tHz)^2)','sqrt(abs(tHx)^2+abs(tHy)^2+abs(tHz)^2)','sqrt(abs(tHx)^2+abs(tHy)^2+abs(tHz)^2)'},'Qsav_rfw',{'0.5*real(Jsx_rfw*conj(tEx)+Jsy_rfw*conj(tEy)+Jsz_rfw*conj(tEz))','0.5*real(Jsx_rfw*conj(tEx)+Jsy_rfw*conj(tEy)+Jsz_rfw*conj(tEz))','0.5*real(Jsx_rfw*conj(tEx)+Jsy_rfw*conj(tEy)+Jsz_rfw*conj(tEz))'},'tEscx_rfw',{'tEx','tEx','tEx'},'tHscx_rfw',{'tHx','tHx','tHx'},'tEscy_rfw',{'tEy','tEy','tEy'},'tHscy_rfw',{'tHy','tHy','tHy'},'tEscz_rfw',{'tEz','tEz','tEz'},'tHscz_rfw',{'tHz','tHz','tHz'},'Z_TE_rfw',{'omega_rfw*mu_rfw/beta_rfw','omega_rfw*mu_rfw/beta_rfw','omega_rfw*mu_rfw/beta_rfw'},'Z_TM_rfw',{'beta_rfw/(omega_rfw*epsilon_rfw)','beta_rfw/(omega_rfw*epsilon_rfw)','beta_rfw/(omega_rfw*epsilon_rfw)'},'Z_TEM_rfw',{'sqrt(mu_rfw/epsilon_rfw)','sqrt(mu_rfw/epsilon_rfw)','sqrt(mu_rfw/epsilon_rfw)'},'Pin_port_rfw',{'Pport_rfw','Pport_rfw','Pport_rfw'},'murbnd_rfw',{'1','1','1'},'epsilonrbnd_rfw',{'1','1','1'},'sigmabnd_rfw',{'0','0','0'},'nbnd_rfw',{'sqrt(epsilonrbnd_rfw)','sqrt(epsilonrbnd_rfw)','sqrt(epsilonrbnd_rfw)'},'beta_rfw',{'0','0','0'},'eta_rfw',{'1','1','zTi'},'portnr_rfw',{'1','1','1'},'Pport_rfw',{'1','1','1'},'Pphase_rfw',{'0','0','0'},'modenum_rfw',{'10','10','10'},'circmodenum_rfw',{'11','11','11'},'nu0_rfw',{'0','0','0'},'nucutoff_rfw',{'0','0','0'},'nx_rfw',{'nx','nx','nx'},'ny_rfw',{'ny','ny','ny'},'nz_rfw',{'nz','nz','nz'},'nbndxx_rfw',{'sqrt(epsilonrbnd_rfw)','sqrt(epsilonrbnd_rfw)','sqrt(epsilonrbnd_rfw)'},'epsilonrbndxx_rfw',{'1','1','1'},'sigmabndxx_rfw',{'0','0','0'},'nbndyx_rfw',{'0','0','0'},'epsilonrbndyx_rfw',{'0','0','0'},'sigmabndyx_rfw',{'0','0','0'},'nbndzx_rfw',{'0','0','0'},'epsilonrbndzx_rfw',{'0','0','0'},'sigmabndzx_rfw',{'0','0','0'},'nbndxy_rfw',{'0','0','0'},'epsilonrbndxy_rfw',{'0','0','0'},'sigmabndxy_rfw',{'0','0','0'},'nbndyy_rfw',{'sqrt(epsilonrbnd_rfw)','sqrt(epsilonrbnd_rfw)','sqrt(epsilonrbnd_rfw)'},'epsilonrbndyy_rfw',{'1','1','1'},'sigmabndyy_rfw',{'0','0','0'},'nbndzy_rfw',{'0','0','0'},'epsilonrbndzy_rfw',{'0','0','0'},'sigmabndzy_rfw',{'0','0','0'},'nbndxz_rfw',{'0','0','0'},'epsilonrbndxz_rfw',{'0','0','0'},'sigmabndxz_rfw',{'0','0','0'},'nbndyz_rfw',{'0','0','0'},'epsilonrbndyz_rfw',{'0','0','0'},'sigmabndyz_rfw',{'0','0','0'},'nbndzz_rfw',{'sqrt(epsilonrbnd_rfw)','sqrt(epsilonrbnd_rfw)','sqrt(epsilonrbnd_rfw)'},'epsilonrbndzz_rfw',{'1','1','1'},'sigmabndzz_rfw',{'0','0','0'},'epsilonrbndinvxx_rfw',{'1/epsilonrbnd_rfw','1/epsilonrbnd_rfw','1/epsilonrbnd_rfw'},'epsilonrbndinvyx_rfw',{'0','0','0'},'epsilonrbndinvzx_rfw',{'0','0','0'},'epsilonrbndinvxy_rfw',{'0','0','0'},'epsilonrbndinvyy_rfw',{'1/epsilonrbnd_rfw','1/epsilonrbnd_rfw','1/epsilonrbnd_rfw'},'epsilonrbndinvzy_rfw',{'0','0','0'},'epsilonrbndinvxz_rfw',{'0','0','0'},'epsilonrbndinvyz_rfw',{'0','0','0'},'epsilonrbndinvzz_rfw',{'1/epsilonrbnd_rfw','1/epsilonrbnd_rfw','1/epsilonrbnd_rfw'},'murbndxx_rfw',{'1','1','1'},'murbndyx_rfw',{'0','0','0'},'murbndzx_rfw',{'0','0','0'},'murbndxy_rfw',{'0','0','0'},'murbndyy_rfw',{'1','1','1'},'murbndzy_rfw',{'0','0','0'},'murbndxz_rfw',{'0','0','0'},'murbndyz_rfw',{'0','0','0'},'murbndzz_rfw',{'1','1','1'},'murbndinvxx_rfw',{'1/murbnd_rfw','1/murbnd_rfw','1/murbnd_rfw'},'murbndinvyx_rfw',{'0','0','0'},'murbndinvzx_rfw',{'0','0','0'},'murbndinvxy_rfw',{'0','0','0'},'murbndinvyy_rfw',{'1/murbnd_rfw','1/murbnd_rfw','1/murbnd_rfw'},'murbndinvzy_rfw',{'0','0','0'},'murbndinvxz_rfw',{'0','0','0'},'murbndinvyz_rfw',{'0','0','0'},'murbndinvzz_rfw',{'1/murbnd_rfw','1/murbnd_rfw','1/murbnd_rfw'},'Js0x_rfw',{'0','0','0'},'Js0y_rfw',{'0','0','0'},'Js0z_rfw',{'0','0','0'},'Esx_rfw',{'0','0','0'},'Esy_rfw',{'0','0','0'},'Esz_rfw',{'0','0','0'},'kdirx_rfw',{'-nx_rfw','-nx_rfw','-nx_rfw'},'kdiry_rfw',{'-ny_rfw','-ny_rfw','-ny_rfw'},'kdirz_rfw',{'-nz_rfw','-nz_rfw','-nz_rfw'},'srcpntx_rfw',{'0','0','0'},'srcpnty_rfw',{'0','0','0'},'srcpntz_rfw',{'0','0','0'},'srcaxisx_rfw',{'0','0','0'},'srcaxisy_rfw',{'0','0','0'},'srcaxisz_rfw',{'1','1','1'},'A0x_rfw',{'0','0','0'},'A0y_rfw',{'0','0','0'},'A0z_rfw',{'0','0','0'},'E0x_rfw',{'0','0','0'},'H0x_rfw',{'0','0','0'},'E0normx_rfw',{'0','0','0'},'H0normx_rfw',{'0','0','0'},'E0y_rfw',{'0','0','0'},'H0y_rfw',{'0','0','0'},'E0normy_rfw',{'0','0','0'},'H0normy_rfw',{'0','0','0'},'E0z_rfw',{'0','0','0'},'H0z_rfw',{'0','0','0'},'E0normz_rfw',{'0','0','0'},'H0normz_rfw',{'0','0','0'}}},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','15','17','18','20','21','22','23','24','25','26','28','29','31','32','33','34','35','37','38'},{'13','14','16','27','36'},{'19','30'}}}),struct('var',{{'dr_guess_rfw',{'0','0','0','5.413192616941865e-005'},'R0_guess_rfw',{'0','0','0','4.22e-005'},'SR_rfw',{'','','','R0_rfw+(sqrt((x-srcpntx_rfw)^2+(y-srcpnty_rfw)^2+(z-srcpntz_rfw)^2)-R0_rfw)*lambdaS_rfw*(1-i)/dr_rfw'},'Sx_rfw',{'x','x','x','x'},'Sdx_guess_rfw',{'0','0','0','4.35e-005'},'rCylx_rfw',{'','','',''},'srcpntx_guess_rfw',{'0','0','0','0'},'Sy_rfw',{'y','y','y','y'},'Sdy_guess_rfw',{'0','0','0','2.51147367e-005'},'rCyly_rfw',{'','','',''},'srcpnty_guess_rfw',{'0','0','0','0'},'Sz_rfw',{'z','z','z','z*lambdaS_rfw*(1-i)/Sdz_rfw'},'Sdz_guess_rfw',{'0','0','0','4e-005'},'rCylz_rfw',{'','','',''},'srcpntz_guess_rfw',{'0','0','0','0'},'detJ_rfw',{'1','1','1','Jzz_rfw'},'Jxx_rfw',{'1','1','1','1'},'invJxx_rfw',{'1','1','1','Jzz_rfw/detJ_rfw'},'Jxy_rfw',{'0','0','0','0'},'invJxy_rfw',{'0','0','0','0'},'Jxz_rfw',{'0','0','0','0'},'invJxz_rfw',{'0','0','0','0'},'Jyx_rfw',{'0','0','0','0'},'invJyx_rfw',{'0','0','0','0'},'Jyy_rfw',{'1','1','1','1'},'invJyy_rfw',{'1','1','1','Jzz_rfw/detJ_rfw'},'Jyz_rfw',{'0','0','0','0'},'invJyz_rfw',{'0','0','0','0'},'Jzx_rfw',{'0','0','0','0'},'invJzx_rfw',{'0','0','0','0'},'Jzy_rfw',{'0','0','0','0'},'invJzy_rfw',{'0','0','0','0'},'Jzz_rfw',{'1','1','1','diff(Sz_rfw,z)'},'invJzz_rfw',{'1','1','1','1/detJ_rfw'},'k_rfw',{'k0_rfw*sqrt(mur_rfw*(epsilonr_rfw+sigma_rfw/(jomega_rfw*epsilon0_rfw)))','k0_rfw*sqrt(mur_rfw*(epsilonr_rfw+sigma_rfw/(jomega_rfw*epsilon0_rfw)))','k0_rfw*sqrt(mur_rfw*(epsilonr_rfw+sigma_rfw/(jomega_rfw*epsilon0_rfw)))','k0_rfw*sqrt(mur_rfw*(epsilonr_rfw+sigma_rfw/(jomega_rfw*epsilon0_rfw)))'},'c_rfw',{'c0_rfw/sqrt(epsilonr_rfw*mur_rfw)','c0_rfw/sqrt(epsilonr_rfw*mur_rfw)','c0_rfw/sqrt(epsilonr_rfw*mur_rfw)','c0_rfw/sqrt(epsilonr_rfw*mur_rfw)'},'Z_wave_rfw',{'c_rfw*mu0_rfw*mur_rfw','c_rfw*mu0_rfw*mur_rfw','c_rfw*mu0_rfw*mur_rfw','c_rfw*mu0_rfw*mur_rfw'},'delta_rfw',{'1/(omega_rfw*sqrt(0.5*mu0_rfw*mur_rfw*epsilon0_rfw*epsilonr_rfw*(-1+sqrt(1+(sigma_rfw/(omega_rfw*epsilon0_rfw*epsilonr_rfw))^2))))','1/(omega_rfw*sqrt(0.5*mu0_rfw*mur_rfw*epsilon0_rfw*epsilonr_rfw*(-1+sqrt(1+(sigma_rfw/(omega_rfw*epsilon0_rfw*epsilonr_rfw))^2))))','1/(omega_rfw*sqrt(0.5*mu0_rfw*mur_rfw*epsilon0_rfw*epsilonr_rfw*(-1+sqrt(1+(sigma_rfw/(omega_rfw*epsilon0_rfw*epsilonr_rfw))^2))))','1/(omega_rfw*sqrt(0.5*mu0_rfw*mur_rfw*epsilon0_rfw*epsilonr_rfw*(-1+sqrt(1+(sigma_rfw/(omega_rfw*epsilon0_rfw*epsilonr_rfw))^2))))'},'dVol_rfw',{'detJ_rfw','detJ_rfw','detJ_rfw','detJ_rfw'},'epsilon_rfw',{'epsilon0_rfw*epsilonr_rfw','epsilon0_rfw*epsilonr_rfw','epsilon0_rfw*epsilonr_rfw','epsilon0_rfw*epsilonr_rfw'},'epsilonxx_rfw',{'epsilon0_rfw*epsilonrxx_rfw','epsilon0_rfw*epsilonrxx_rfw','epsilon0_rfw*epsilonrxx_rfw','epsilon0_rfw*epsilonrxx_rfw'},'epsilonxy_rfw',{'epsilon0_rfw*epsilonrxy_rfw','epsilon0_rfw*epsilonrxy_rfw','epsilon0_rfw*epsilonrxy_rfw','epsilon0_rfw*epsilonrxy_rfw'},'epsilonxz_rfw',{'epsilon0_rfw*epsilonrxz_rfw','epsilon0_rfw*epsilonrxz_rfw','epsilon0_rfw*epsilonrxz_rfw','epsilon0_rfw*epsilonrxz_rfw'},'epsilonyx_rfw',{'epsilon0_rfw*epsilonryx_rfw','epsilon0_rfw*epsilonryx_rfw','epsilon0_rfw*epsilonryx_rfw','epsilon0_rfw*epsilonryx_rfw'},'epsilonyy_rfw',{'epsilon0_rfw*epsilonryy_rfw','epsilon0_rfw*epsilonryy_rfw','epsilon0_rfw*epsilonryy_rfw','epsilon0_rfw*epsilonryy_rfw'},'epsilonyz_rfw',{'epsilon0_rfw*epsilonryz_rfw','epsilon0_rfw*epsilonryz_rfw','epsilon0_rfw*epsilonryz_rfw','epsilon0_rfw*epsilonryz_rfw'},'epsilonzx_rfw',{'epsilon0_rfw*epsilonrzx_rfw','epsilon0_rfw*epsilonrzx_rfw','epsilon0_rfw*epsilonrzx_rfw','epsilon0_rfw*epsilonrzx_rfw'},'epsilonzy_rfw',{'epsilon0_rfw*epsilonrzy_rfw','epsilon0_rfw*epsilonrzy_rfw','epsilon0_rfw*epsilonrzy_rfw','epsilon0_rfw*epsilonrzy_rfw'},'epsilonzz_rfw',{'epsilon0_rfw*epsilonrzz_rfw','epsilon0_rfw*epsilonrzz_rfw','epsilon0_rfw*epsilonrzz_rfw','epsilon0_rfw*epsilonrzz_rfw'},'mu_rfw',{'mu0_rfw*mur_rfw','mu0_rfw*mur_rfw','mu0_rfw*mur_rfw','mu0_rfw*mur_rfw'},'muxx_rfw',{'mu0_rfw*murxx_rfw','mu0_rfw*murxx_rfw','mu0_rfw*murxx_rfw','mu0_rfw*murxx_rfw'},'muxy_rfw',{'mu0_rfw*murxy_rfw','mu0_rfw*murxy_rfw','mu0_rfw*murxy_rfw','mu0_rfw*murxy_rfw'},'muxz_rfw',{'mu0_rfw*murxz_rfw','mu0_rfw*murxz_rfw','mu0_rfw*murxz_rfw','mu0_rfw*murxz_rfw'},'muyx_rfw',{'mu0_rfw*muryx_rfw','mu0_rfw*muryx_rfw','mu0_rfw*muryx_rfw','mu0_rfw*muryx_rfw'},'muyy_rfw',{'mu0_rfw*muryy_rfw','mu0_rfw*muryy_rfw','mu0_rfw*muryy_rfw','mu0_rfw*muryy_rfw'},'muyz_rfw',{'mu0_rfw*muryz_rfw','mu0_rfw*muryz_rfw','mu0_rfw*muryz_rfw','mu0_rfw*muryz_rfw'},'muzx_rfw',{'mu0_rfw*murzx_rfw','mu0_rfw*murzx_rfw','mu0_rfw*murzx_rfw','mu0_rfw*murzx_rfw'},'muzy_rfw',{'mu0_rfw*murzy_rfw','mu0_rfw*murzy_rfw','mu0_rfw*murzy_rfw','mu0_rfw*murzy_rfw'},'muzz_rfw',{'mu0_rfw*murzz_rfw','mu0_rfw*murzz_rfw','mu0_rfw*murzz_rfw','mu0_rfw*murzz_rfw'},'curlEx_rfw',{'EzyEyz','EzyEyz','EzyEyz','EzyEyz/detJ_rfw'},'depEx_rfw',{'Ex','Ex','Ex','invJxx_rfw*Ex'},'Dx_rfw',{'epsilonxx_rfw*Ex','epsilonxx_rfw*Ex','epsilonxx_rfw*Ex','epsilonxx_rfw*invJxx_rfw*Ex'},'Jdx_rfw',{'jomega_rfw*Dx_rfw','jomega_rfw*Dx_rfw','jomega_rfw*Dx_rfw','jomega_rfw*Dx_rfw'},'Jix_rfw',{'0','0','0','0'},'Gfx_rfw',{'Dx_rfw/epsilon0_rfw','Dx_rfw/epsilon0_rfw','Dx_rfw/epsilon0_rfw','Dx_rfw/epsilon0_rfw'},'jwHx_rfw',{'jwBx_rfw/mu_rfw','jwBx_rfw/mu_rfw','jwBx_rfw/mu_rfw','jwBx_rfw/mu_rfw'},'Hx',{'jwHx_rfw/jomega_rfw','jwHx_rfw/jomega_rfw','jwHx_rfw/jomega_rfw','jwHx_rfw/jomega_rfw'},'jwBx_rfw',{'-curlEx_rfw','-curlEx_rfw','-curlEx_rfw','-curlEx_rfw'},'Bx_rfw',{'jwBx_rfw/jomega_rfw','jwBx_rfw/jomega_rfw','jwBx_rfw/jomega_rfw','jwBx_rfw/jomega_rfw'},'curlEy_rfw',{'ExzEzx','ExzEzx','ExzEzx','ExzEzx/detJ_rfw'},'depEy_rfw',{'Ey','Ey','Ey','invJyy_rfw*Ey'},'Dy_rfw',{'epsilonyy_rfw*Ey','epsilonyy_rfw*Ey','epsilonyy_rfw*Ey','epsilonyy_rfw*invJyy_rfw*Ey'},'Jdy_rfw',{'jomega_rfw*Dy_rfw','jomega_rfw*Dy_rfw','jomega_rfw*Dy_rfw','jomega_rfw*Dy_rfw'},'Jiy_rfw',{'0','0','0','0'},'Gfy_rfw',{'Dy_rfw/epsilon0_rfw','Dy_rfw/epsilon0_rfw','Dy_rfw/epsilon0_rfw','Dy_rfw/epsilon0_rfw'},'jwHy_rfw',{'jwBy_rfw/mu_rfw','jwBy_rfw/mu_rfw','jwBy_rfw/mu_rfw','jwBy_rfw/mu_rfw'},'Hy',{'jwHy_rfw/jomega_rfw','jwHy_rfw/jomega_rfw','jwHy_rfw/jomega_rfw','jwHy_rfw/jomega_rfw'},'jwBy_rfw',{'-curlEy_rfw','-curlEy_rfw','-curlEy_rfw','-curlEy_rfw'},'By_rfw',{'jwBy_rfw/jomega_rfw','jwBy_rfw/jomega_rfw','jwBy_rfw/jomega_rfw','jwBy_rfw/jomega_rfw'},'curlEz_rfw',{'EyxExy','EyxExy','EyxExy','Jzz_rfw*EyxExy/detJ_rfw'},'depEz_rfw',{'Ez','Ez','Ez','invJzz_rfw*Ez'},'Dz_rfw',{'epsilonzz_rfw*Ez','epsilonzz_rfw*Ez','epsilonzz_rfw*Ez','epsilonzz_rfw*invJzz_rfw*Ez'},'Jdz_rfw',{'jomega_rfw*Dz_rfw','jomega_rfw*Dz_rfw','jomega_rfw*Dz_rfw','jomega_rfw*Dz_rfw'},'Jiz_rfw',{'0','0','0','0'},'Gfz_rfw',{'Dz_rfw/epsilon0_rfw','Dz_rfw/epsilon0_rfw','Dz_rfw/epsilon0_rfw','Dz_rfw/epsilon0_rfw'},'jwHz_rfw',{'jwBz_rfw/mu_rfw','jwBz_rfw/mu_rfw','jwBz_rfw/mu_rfw','jwBz_rfw/mu_rfw'},'Hz',{'jwHz_rfw/jomega_rfw','jwHz_rfw/jomega_rfw','jwHz_rfw/jomega_rfw','jwHz_rfw/jomega_rfw'},'jwBz_rfw',{'-curlEz_rfw','-curlEz_rfw','-curlEz_rfw','-curlEz_rfw'},'Bz_rfw',{'jwBz_rfw/jomega_rfw','jwBz_rfw/jomega_rfw','jwBz_rfw/jomega_rfw','jwBz_rfw/jomega_rfw'},'normE_rfw',{'sqrt(abs(Ex)^2+abs(Ey)^2+abs(Ez)^2)','sqrt(abs(Ex)^2+abs(Ey)^2+abs(Ez)^2)','sqrt(abs(Ex)^2+abs(Ey)^2+abs(Ez)^2)','sqrt(abs(Ex)^2+abs(Ey)^2+abs(Ez)^2)'},'normD_rfw',{'sqrt(abs(Dx_rfw)^2+abs(Dy_rfw)^2+abs(Dz_rfw)^2)','sqrt(abs(Dx_rfw)^2+abs(Dy_rfw)^2+abs(Dz_rfw)^2)','sqrt(abs(Dx_rfw)^2+abs(Dy_rfw)^2+abs(Dz_rfw)^2)','sqrt(abs(Dx_rfw)^2+abs(Dy_rfw)^2+abs(Dz_rfw)^2)'},'normB_rfw',{'sqrt(abs(Bx_rfw)^2+abs(By_rfw)^2+abs(Bz_rfw)^2)','sqrt(abs(Bx_rfw)^2+abs(By_rfw)^2+abs(Bz_rfw)^2)','sqrt(abs(Bx_rfw)^2+abs(By_rfw)^2+abs(Bz_rfw)^2)','sqrt(abs(Bx_rfw)^2+abs(By_rfw)^2+abs(Bz_rfw)^2)'},'normH_rfw',{'sqrt(abs(Hx)^2+abs(Hy)^2+abs(Hz)^2)','sqrt(abs(Hx)^2+abs(Hy)^2+abs(Hz)^2)','sqrt(abs(Hx)^2+abs(Hy)^2+abs(Hz)^2)','sqrt(abs(Hx)^2+abs(Hy)^2+abs(Hz)^2)'},'normPoav_rfw',{'sqrt(abs(Poxav_rfw)^2+abs(Poyav_rfw)^2+abs(Pozav_rfw)^2)','sqrt(abs(Poxav_rfw)^2+abs(Poyav_rfw)^2+abs(Pozav_rfw)^2)','sqrt(abs(Poxav_rfw)^2+abs(Poyav_rfw)^2+abs(Pozav_rfw)^2)','sqrt(abs(Poxav_rfw)^2+abs(Poyav_rfw)^2+abs(Pozav_rfw)^2)'},'Wmav_rfw',{'0.25*real(Hx*conj(Bx_rfw)+Hy*conj(By_rfw)+Hz*conj(Bz_rfw))','0.25*real(Hx*conj(Bx_rfw)+Hy*conj(By_rfw)+Hz*conj(Bz_rfw))','0.25*real(Hx*conj(Bx_rfw)+Hy*conj(By_rfw)+Hz*conj(Bz_rfw))','0.25*real(Hx*conj(Bx_rfw)+Hy*conj(By_rfw)+Hz*conj(Bz_rfw))'},'Weav_rfw',{'0.25*real(Ex*conj(Dx_rfw)+Ey*conj(Dy_rfw)+Ez*conj(Dz_rfw))','0.25*real(Ex*conj(Dx_rfw)+Ey*conj(Dy_rfw)+Ez*conj(Dz_rfw))','0.25*real(Ex*conj(Dx_rfw)+Ey*conj(Dy_rfw)+Ez*conj(Dz_rfw))','0.25*real(Ex*conj(Dx_rfw)+Ey*conj(Dy_rfw)+Ez*conj(Dz_rfw))'},'Wav_rfw',{'Wmav_rfw+Weav_rfw','Wmav_rfw+Weav_rfw','Wmav_rfw+Weav_rfw','Wmav_rfw+Weav_rfw'},'Qav_rfw',{'0.5*real(-j*real(omega_rfw)*Ex*conj(Dx_rfw)-j*real(omega_rfw)*Ey*conj(Dy_rfw)-j*real(omega_rfw)*Ez*conj(Dz_rfw))','0.5*real(-j*real(omega_rfw)*Ex*conj(Dx_rfw)-j*real(omega_rfw)*Ey*conj(Dy_rfw)-j*real(omega_rfw)*Ez*conj(Dz_rfw))','0.5*real(-j*real(omega_rfw)*Ex*conj(Dx_rfw)-j*real(omega_rfw)*Ey*conj(Dy_rfw)-j*real(omega_rfw)*Ez*conj(Dz_rfw))','0.5*real(-j*real(omega_rfw)*Ex*conj(Dx_rfw)-j*real(omega_rfw)*Ey*conj(Dy_rfw)-j*real(omega_rfw)*Ez*conj(Dz_rfw))'},'Poxav_rfw',{'0.5*real(Ey*conj(Hz)-Ez*conj(Hy))','0.5*real(Ey*conj(Hz)-Ez*conj(Hy))','0.5*real(Ey*conj(Hz)-Ez*conj(Hy))','0.5*real(Ey*conj(Hz)-Ez*conj(Hy))'},'Poyav_rfw',{'0.5*real(Ez*conj(Hx)-Ex*conj(Hz))','0.5*real(Ez*conj(Hx)-Ex*conj(Hz))','0.5*real(Ez*conj(Hx)-Ex*conj(Hz))','0.5*real(Ez*conj(Hx)-Ex*conj(Hz))'},'Pozav_rfw',{'0.5*real(Ex*conj(Hy)-Ey*conj(Hx))','0.5*real(Ex*conj(Hy)-Ey*conj(Hx))','0.5*real(Ex*conj(Hy)-Ey*conj(Hx))','0.5*real(Ex*conj(Hy)-Ey*conj(Hx))'},'mur_rfw',{'1','1','1','1'},'epsilonr_rfw',{'drudeAu','12.88','1','1'},'sigma_rfw',{'0','0','0','0'},'n_rfw',{'sqrt(epsilonr_rfw)','sqrt(epsilonr_rfw)','sqrt(epsilonr_rfw)','sqrt(epsilonr_rfw)'},'dr_rfw',{'dr_guess_rfw','dr_guess_rfw','dr_guess_rfw','dr_guess_rfw'},'R0_rfw',{'R0_guess_rfw','R0_guess_rfw','R0_guess_rfw','R0_guess_rfw'},'ispml_rfw',{'0','0','0','1'},'srcaxisx_rfw',{'0','0','0','0'},'srcaxisy_rfw',{'0','0','0','0'},'srcaxisz_rfw',{'1','1','1','1'},'srcpntx_rfw',{'0','0','0','0'},'srcpnty_rfw',{'0','0','0','0'},'srcpntz_rfw',{'0','0','0','0'},'userx_rfw',{'0','0','0','0'},'usery_rfw',{'0','0','0','0'},'userz_rfw',{'0','0','0','0'},'Sdx_rfw',{'Sdx_guess_rfw','Sdx_guess_rfw','Sdx_guess_rfw','Sdx_guess_rfw'},'Sdy_rfw',{'Sdy_guess_rfw','Sdy_guess_rfw','Sdy_guess_rfw','Sdy_guess_rfw'},'Sdz_rfw',{'Sdz_guess_rfw','Sdz_guess_rfw','Sdz_guess_rfw','Sdz_guess_rfw'},'nxx_rfw',{'sqrt(epsilonr_rfw)','sqrt(epsilonr_rfw)','sqrt(epsilonr_rfw)','sqrt(epsilonr_rfw)'},'epsilonrxx_rfw',{'drudeAu','12.88','1','1'},'sigmaxx_rfw',{'0','0','0','0'},'nyx_rfw',{'0','0','0','0'},'epsilonryx_rfw',{'0','0','0','0'},'sigmayx_rfw',{'0','0','0','0'},'nzx_rfw',{'0','0','0','0'},'epsilonrzx_rfw',{'0','0','0','0'},'sigmazx_rfw',{'0','0','0','0'},'nxy_rfw',{'0','0','0','0'},'epsilonrxy_rfw',{'0','0','0','0'},'sigmaxy_rfw',{'0','0','0','0'},'nyy_rfw',{'sqrt(epsilonr_rfw)','sqrt(epsilonr_rfw)','sqrt(epsilonr_rfw)','sqrt(epsilonr_rfw)'},'epsilonryy_rfw',{'drudeAu','12.88','1','1'},'sigmayy_rfw',{'0','0','0','0'},'nzy_rfw',{'0','0','0','0'},'epsilonrzy_rfw',{'0','0','0','0'},'sigmazy_rfw',{'0','0','0','0'},'nxz_rfw',{'0','0','0','0'},'epsilonrxz_rfw',{'0','0','0','0'},'sigmaxz_rfw',{'0','0','0','0'},'nyz_rfw',{'0','0','0','0'},'epsilonryz_rfw',{'0','0','0','0'},'sigmayz_rfw',{'0','0','0','0'},'nzz_rfw',{'sqrt(epsilonr_rfw)','sqrt(epsilonr_rfw)','sqrt(epsilonr_rfw)','sqrt(epsilonr_rfw)'},'epsilonrzz_rfw',{'drudeAu','12.88','1','1'},'sigmazz_rfw',{'0','0','0','0'},'epsilonrinvxx_rfw',{'1/epsilonr_rfw','1/epsilonr_rfw','1/epsilonr_rfw','1/epsilonr_rfw'},'epsilonrinvyx_rfw',{'0','0','0','0'},'epsilonrinvzx_rfw',{'0','0','0','0'},'epsilonrinvxy_rfw',{'0','0','0','0'},'epsilonrinvyy_rfw',{'1/epsilonr_rfw','1/epsilonr_rfw','1/epsilonr_rfw','1/epsilonr_rfw'},'epsilonrinvzy_rfw',{'0','0','0','0'},'epsilonrinvxz_rfw',{'0','0','0','0'},'epsilonrinvyz_rfw',{'0','0','0','0'},'epsilonrinvzz_rfw',{'1/epsilonr_rfw','1/epsilonr_rfw','1/epsilonr_rfw','1/epsilonr_rfw'},'murxx_rfw',{'1','1','1','1'},'muryx_rfw',{'0','0','0','0'},'murzx_rfw',{'0','0','0','0'},'murxy_rfw',{'0','0','0','0'},'muryy_rfw',{'1','1','1','1'},'murzy_rfw',{'0','0','0','0'},'murxz_rfw',{'0','0','0','0'},'muryz_rfw',{'0','0','0','0'},'murzz_rfw',{'1','1','1','1'},'murinvxx_rfw',{'1/mur_rfw','1/mur_rfw','1/mur_rfw','1/mur_rfw'},'murinvyx_rfw',{'0','0','0','0'},'murinvzx_rfw',{'0','0','0','0'},'murinvxy_rfw',{'0','0','0','0'},'murinvyy_rfw',{'1/mur_rfw','1/mur_rfw','1/mur_rfw','1/mur_rfw'},'murinvzy_rfw',{'0','0','0','0'},'murinvxz_rfw',{'0','0','0','0'},'murinvyz_rfw',{'0','0','0','0'},'murinvzz_rfw',{'1/mur_rfw','1/mur_rfw','1/mur_rfw','1/mur_rfw'}}},'ind',{{{'1','3'},{'2'},{'4','6','7'},{'5'}}})}}})t+struct('elem',{'elvar'},'g',{{'1'}},'geomdim',{{{struct('var',{{'epsilon0_rfw',{'8.854187817000001e-012'},'mu0_rfw',{'4e-007*pi'},'psi0_rfw',{'psi0_guess_rfw'},'k0_rfw',{'omega_rfw*sqrt(epsilon0_rfw*mu0_rfw)'},'damp_rfw',{'real(-jomega_rfw)'},'jomega_rfw',{'-lambda'},'omega_rfw',{'imag(jomega_rfw)'},'lambda0_rfw',{'2*pi/k0_rfw'},'nu_rfw',{'0.5*omega_rfw/pi'},'nuinv_rfw',{'-2*j*pi*nu_rfw'},'Qfact_rfw',{'0.5*omega_rfw/abs(damp_rfw)'},'lambdaS_rfw',{'2*pi/(k0_rfw*sqrt(mur_rfw*epsilonr_rfw))'},'c0_rfw',{'1/sqrt(epsilon0_rfw*mu0_rfw)'},'psi0_guess_rfw',{'1'},'b1x',{'2*pi*a2y/(a1x*a2y-a1y*a2x)'},'b1y',{'-2*pi*a2x/(a1x*a2y-a1y*a2x)'},'b2x',{'-2*pi*a1y/(a1x*a2y-a1y*a2x)'},'b2y',{'2*pi*a1x/(a1x*a2y-a1y*a2x)'},'n_Air',{'1'},'n_GaAs',{'3.5031-199710000000000*pi/(unit_m_cf*imag(lambda))'},'n_GaAs2',{'3.5031'}}},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40'}}}),struct('var',{{'epsilon0_rfw',{'8.854187817000001e-012'},'mu0_rfw',{'4e-007*pi'},'psi0_rfw',{'psi0_guess_rfw'},'k0_rfw',{'omega_rfw*sqrt(epsilon0_rfw*mu0_rfw)'},'damp_rfw',{'real(-jomega_rfw)'},'jomega_rfw',{'-lambda'},'omega_rfw',{'imag(jomega_rfw)'},'lambda0_rfw',{'2*pi/k0_rfw'},'nu_rfw',{'0.5*omega_rfw/pi'},'nuinv_rfw',{'-2*j*pi*nu_rfw'},'Qfact_rfw',{'0.5*omega_rfw/abs(damp_rfw)'},'lambdaS_rfw',{'2*pi/(k0_rfw*sqrt(mur_rfw*epsilonr_rfw))'},'c0_rfw',{'1/sqrt(epsilon0_rfw*mu0_rfw)'},'psi0_guess_rfw',{'1'},'b1x',{'2*pi*a2y/(a1x*a2y-a1y*a2x)'},'b1y',{'-2*pi*a2x/(a1x*a2y-a1y*a2x)'},'b2x',{'-2*pi*a1y/(a1x*a2y-a1y*a2x)'},'b2y',{'2*pi*a1x/(a1x*a2y-a1y*a2x)'},'n_Air',{'1'},'n_GaAs',{'3.5031-199710000000000*pi/(unit_m_cf*imag(lambda))'},'n_GaAs2',{'3.5031'}}},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50','51','52','53','54','55','56','57','58','59','60','61','62','63','64','65','66','67','68'}}}),struct('var',{{'epsilon0_rfw',{'8.854187817000001e-012'},'mu0_rfw',{'4e-007*pi'},'psi0_rfw',{'psi0_guess_rfw'},'k0_rfw',{'omega_rfw*sqrt(epsilon0_rfw*mu0_rfw)'},'damp_rfw',{'real(-jomega_rfw)'},'jomega_rfw',{'-lambda'},'omega_rfw',{'imag(jomega_rfw)'},'lambda0_rfw',{'2*pi/k0_rfw'},'nu_rfw',{'0.5*omega_rfw/pi'},'nuinv_rfw',{'-2*j*pi*nu_rfw'},'Qfact_rfw',{'0.5*omega_rfw/abs(damp_rfw)'},'lambdaS_rfw',{'2*pi/(k0_rfw*sqrt(mur_rfw*epsilonr_rfw))'},'c0_rfw',{'1/sqrt(epsilon0_rfw*mu0_rfw)'},'psi0_guess_rfw',{'1'},'b1x',{'2*pi*a2y/(a1x*a2y-a1y*a2x)'},'b1y',{'-2*pi*a2x/(a1x*a2y-a1y*a2x)'},'b2x',{'-2*pi*a1y/(a1x*a2y-a1y*a2x)'},'b2y',{'2*pi*a1x/(a1x*a2y-a1y*a2x)'},'n_Air',{'1'},'n_GaAs',{'3.5031-199710000000000*pi/(unit_m_cf*imag(lambda))'},'n_GaAs2',{'3.5031'}}},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38'}}}),struct('var',{{'epsilon0_rfw',{'8.854187817000001e-012'},'mu0_rfw',{'4e-007*pi'},'psi0_rfw',{'psi0_guess_rfw'},'k0_rfw',{'omega_rfw*sqrt(epsilon0_rfw*mu0_rfw)'},'damp_rfw',{'real(-jomega_rfw)'},'jomega_rfw',{'-lambda'},'omega_rfw',{'imag(jomega_rfw)'},'lambda0_rfw',{'2*pi/k0_rfw'},'nu_rfw',{'0.5*omega_rfw/pi'},'nuinv_rfw',{'-2*j*pi*nu_rfw'},'Qfact_rfw',{'0.5*omega_rfw/abs(damp_rfw)'},'lambdaS_rfw',{'2*pi/(k0_rfw*sqrt(mur_rfw*epsilonr_rfw))'},'c0_rfw',{'1/sqrt(epsilon0_rfw*mu0_rfw)'},'psi0_guess_rfw',{'1'},'b1x',{'2*pi*a2y/(a1x*a2y-a1y*a2x)'},'b1y',{'-2*pi*a2x/(a1x*a2y-a1y*a2x)'},'b2x',{'-2*pi*a1y/(a1x*a2y-a1y*a2x)'},'b2y',{'2*pi*a1x/(a1x*a2y-a1y*a2x)'},'n_Air',{'1'},'n_GaAs',{'3.5031-199710000000000*pi/(unit_m_cf*imag(lambda))'},'n_GaAs2',{'3.5031'}}},'ind',{{{'1','2','3','4','5','6','7'}}})}}})tYstruct('elem',{'elconst'},'var',{{'zTi','600','faround','1.3e12','gm','1','k','1','a1x','2.9e-005*unit_m_cf','a1y','0','a2x','1.45e-005*unit_m_cf','a2y','2.51147367e-005*unit_m_cf','omg0','1e-20','omgpTi','2*pi*610e12','thick','1','omgpAu','1.29e16','gammaAu','0.8e14','omgpGaAs','2*pi*21.45e12','gammaGaAs','2*pi*10e12','kbak','5.7735026E-1'}})tstruct('elem',{'elconst'},'var',{{'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}})tHstruct('elem',{'elgeom'},'g',{{'1'}},'frame',{{'ref'}},'sorder',{{'2'}})tOstruct('elem',{'elepspec'},'g',{{'1'}},'geom',{{struct('ep',{{'2','2','1'}})}})tKstruct('elem',{'elgpspec'},'g',{{'1'}},'geom',{{struct('ep',{{'4','0'}})}})t3struct('elem',{'eleqw'},'g',{{'1'}},'geomdim',{{{struct('coeff',{{{'0','0','0','0'}}},'tcoeff',{{{'0','0','0','0'}}},'ipoints',{{'2'}},'dvolname',{{{'dvol','dvol','dvol','dvol'}}},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40'}}}),struct('coeff',{{{'0','0','0','0'}}},'tcoeff',{{{'0','0','0','0'}}},'ipoints',{{{'1','1','1','1'}}},'dvolname',{{{'dvol','dvol','dvol','dvol'}}},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50','51','52','53','54','55','56','57','58','59','60','61','62','63','64','65','66','67','68'}}}),struct('coeff',{{{'0','0','0','0'},{'+(-jomega_rfw*mu0_rfw*tEx*dVolbnd_rfw*tEx_test/eta_rfw)','+(-jomega_rfw*mu0_rfw*tEy*dVolbnd_rfw*tEy_test/eta_rfw)','+(-jomega_rfw*mu0_rfw*tEz*dVolbnd_rfw*tEz_test/eta_rfw)','0'}}},'tcoeff',{{{'0','0','0','0'},{'0','0','0','0'}}},'ipoints',{{{'1','1','1','1'},{'1','1','1','1'}}},'dvolname',{{{'dvol','dvol','dvol','dvol'},{'dvol','dvol','dvol','dvol'}}},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','20','21','22','23','24','25','26','27','28','29','31','32','33','34','35','36','37','38'},{'19','30'}}}),struct('coeff',{{{'+(-dVol_rfw*mu0_rfw*(jomega_rfw^2*Dx_rfw*test(depEx_rfw)+jomega_rfw*Jix_rfw*test(depEx_rfw)+jomega_rfw^2*Dy_rfw*test(depEy_rfw)+jomega_rfw*Jiy_rfw*test(depEy_rfw)+jomega_rfw^2*Dz_rfw*test(depEz_rfw)+jomega_rfw*Jiz_rfw*test(depEz_rfw)-jwHx_rfw*test(curlEx_rfw)-jwHy_rfw*test(curlEy_rfw)-jwHz_rfw*test(curlEz_rfw)))','0','0','+(Gfx_rfw*test(psix)+psix*test(Gfx_rfw)+Gfy_rfw*test(psiy)+psiy*test(Gfy_rfw)+Gfz_rfw*test(psiz)+psiz*test(Gfz_rfw))'}}},'tcoeff',{{{'0','0','0','0'}}},'ipoints',{{{'1','1','1','1'}}},'dvolname',{{{'dvol','dvol','dvol','dvol'}}},'ind',{{{'1','2','3','4','5','6','7'}}})}}},'nonlintest',{{'off'}})tstruct('elem',{'elpconstr'},'g',{{'1'}},'geomdim',{{{struct('constr',{{{'0','0','0','psi-psi0_rfw'}}},'cpoints',{{'3'}},'ind',{{{'1'}}}),{},{},{}}}})tstruct('elem',{'elsconstr'},'g',{{'1'}},'geomdim',{{{{},struct('constr',{{{{'0','0','0'}}}},'cshape',{{'1'}},'shelem',{struct('default',{{{{'edg','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'edg2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}})},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50','51','52','53','54','55','56','57','58','59','60','61','62','63','64','65','66','67','68'}}}),{},{}}}})tstruct('elem',{'elsconstr'},'g',{{'1'}},'geomdim',{{{{},struct('constr',{{{{'0','0','0'}}}},'cshape',{{'1'}},'shelem',{struct('default',{{{{'edg','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'edg2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}})},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50','51','52','53','54','55','56','57','58','59','60','61','62','63','64','65','66','67','68'}}}),{},{}}}})t=struct('elem',{'elsconstr'},'g',{{'1'}},'geomdim',{{{{},{},struct('constr',{{{{'0','0','0'}},{{'tEx','tEy','tEz'}}}},'cshape',{{'1','1'}},'shelem',{struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}})},'ind',{{{'1','2','4','5','6','7','8','9','10','11','12','13','14','15','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38'},{'3','16'}}}),{}}}})tCstruct('elem',{'elsconstr'},'g',{{'1'}},'geomdim',{{{{},{},struct('constr',{{{{'0','0','0'}},{{'psiTx','psiTy','psiTz'}}}},'cshape',{{'1','1'}},'shelem',{struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}})},'ind',{{{'1','2','4','5','6','7','8','9','10','11','12','13','14','15','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38'},{'3','16'}}}),{}}}})tstruct('elem',{'elcplextr'},'var',{{'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z','pconstr2x','pconstr2y','pconstr2z'}},'g',{{'1'}},'src',{{{{},{},struct('expr',{{{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz',{},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}},'map',{{{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}},'ind',{{{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9','12','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38'}}}),{}}}},'geomdim',{{{{},{},struct('map',{{{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'},{{},'3',{}},{{},'3',{}},{{},'3',{}}}},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','28','29','30','31','37','38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}}),{}}}},'map',{{struct('type',{'unit'}),struct('type',{'linear'},'sg',{'1'},'sv',{{'40','35','23'}},'dg',{'1'},'dv',{{'18','13','1'}}),struct('type',{'linear'},'sg',{'1'},'sv',{{'18','13','35'}},'dg',{'1'},'dv',{{'6','1','23'}})}})tstruct('elem',{'elpconstr'},'g',{{'1'}},'geomdim',{{{{},{},struct('constr',{{{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'},{'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))','0'}}},'cpoints',{{{'2','2'},{'2','2'}}},'ind',{{{'23','24','25','26','27'},{'32','33','34','35','36'}}}),{}}}})t ;struct('elem',{'elsconstr'},'g',{{'1'}},'geomdim',{{{{},{},struct('constr',{{{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))','pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))','pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}},{{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))','pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))','pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'},{'0','0','0'}}}},'cshape',{{{'1','2'},{'1','2'},{'1','2'}}},'shelem',{struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}})},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','28','29','30','31','37','38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}}),{}}}})t#struct('elem',{'elvar'},'g',{{'0','1'}},'geomdim',{{{struct('var',{{'unit_m_cf',{'1.0'},'geomnum',{'0'}}},'ind',{{{'1'}}})},{struct('var',{{'unit_m_cf',{'1.0'}}},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40'}}}),struct('var',{{'unit_m_cf',{'1.0'}}},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50','51','52','53','54','55','56','57','58','59','60','61','62','63','64','65','66','67','68'}}}),struct('var',{{'unit_m_cf',{'1.0'}}},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38'}}}),struct('var',{{'unit_m_cf',{'1.0'}}},'ind',{{{'1','2','3','4','5','6','7'}}})}}})uq~]uq~t#struct('elem',{'elvar'},'g',{{'1'}},'geomdim',{{{struct('var',{{'x$2',{'xg'},'y$2',{'yg'},'z$2',{'zg'}}},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40'}}}),struct('var',{{'x$2',{'xg'},'y$2',{'yg'},'z$2',{'zg'}}},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50','51','52','53','54','55','56','57','58','59','60','61','62','63','64','65','66','67','68'}}}),struct('var',{{'x$2',{'xg'},'y$2',{'yg'},'z$2',{'zg'}}},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38'}}}),struct('var',{{'x$2',{'xg'},'y$2',{'yg'},'z$2',{'zg'}}},'ind',{{{'1','2','3','4','5','6','7'}}})}}})tstruct('elem',{'elvar'},'g',{{'1'}},'geomdim',{{{struct('var',{{'tEx',{''},'tEy',{''},'tEz',{''},'psi',{''},'tExt',{''},'tEyt',{''},'tEzt',{''},'psit',{''}}},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40'}}}),struct('var',{{'tEx',{''},'tEy',{''},'tEz',{''},'psi',{''},'tExt',{''},'tEyt',{''},'tEzt',{''},'psit',{''}}},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50','51','52','53','54','55','56','57','58','59','60','61','62','63','64','65','66','67','68'}}}),struct('var',{{'tEx',{''},'tEy',{''},'tEz',{''},'psi',{''},'tExt',{''},'tEyt',{''},'tEzt',{''},'psit',{''}}},'ind',{{{'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38'}}}),struct('var',{{'Ex',{'0'},'Ey',{'0'},'Ez',{'0'},'psi',{'psi0_rfw'},'Ext',{'0'},'Eyt',{'0'},'Ezt',{'0'},'psit',{'0'}}},'ind',{{{'1','2','3','4','5','6','7'}}})}}})uq~]uq~]ur[Lcom.femlab.xmesh.MEGrp;5q|Yxpsrcom.femlab.xmesh.MEGrpfI bmTypeIndIeDimIgeomNumImeshCaseL bmTypeStrq~[coordst[[D[domainsq~X[namest[Ljava/lang/String;xpwtls(0)uq~]uq~ur[[Dǭ dgExpxsq~|wtls(0)uq~](  !"#$%&'(uq~tpsiuq~xsq~|wts(1)uq~]D  !"#$%&'()*+,-./0123456789:;<=>?@ABCDuq~tpsitpsitpsit tExEyEz10t tExEyEz10tx$2ty$2tz$2uq~ur[D>cZxp???UUUUUU?UUUUUU???xsq~|wts(2)uq~]&  !"#$%&uq~tpsitpsitpsitpsitpsitpsit tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz20t tExEyEz21tx$2tx$2tx$2ty$2ty$2ty$2tz$2tz$2tz$2uq~uq~????UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU??????uq~????UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU??????xsq~|wts(3)uq~]uq~0tpsitpsitpsitpsitpsitpsitpsitpsitpsitpsit tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz20t tExEyEz20t tExEyEz20t tExEyEz20t tExEyEz21t tExEyEz21t tExEyEz21t tExEyEz21tx$2tx$2tx$2tx$2tx$2tx$2ty$2ty$2ty$2ty$2ty$2ty$2tz$2tz$2tz$2tz$2tz$2tz$2uq~uq~0?????UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?????????uq~0?????UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?????????uq~0?????UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?????????xsq~|wtls(3)uq~]uq~tpsitpsitpsitpsitpsitpsitpsitpsitpsitpsit tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz10t tExEyEz20t tExEyEz20t tExEyEz20t tExEyEz20t tExEyEz21t tExEyEz21t tExEyEz21t tExEyEz21uq~uq~?????UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUUuq~?????UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUUuq~?????UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUU?UUUUUUxuq~]xq~Iq~Nq~Sq~\srcom.femlab.geom.Geom2Vc/Oxq~8wq~wuq~.Geom2|=-C6?Tqs*Tqs*Tqs*Tqs*>z]rz]rz]r>z]r>Tqs*>Tqs*Tqs*>Tqs*>???????? BezierCurveTqs*Tqs*?Tqs*Tqs*>? BezierCurveTqs*Tqs*?Tqs*>Tqs*? BezierCurveTqs*Tqs*>?Tqs*>Tqs*>? BezierCurveTqs*>Tqs*?Tqs*>Tqs*>? BezierCurvez]r?z]rz]r;f?z]r? BezierCurvez]r?z]rz]r>;f?z]r>? BezierCurvez]r?z]r>z]r;f?z]r>? BezierCurvez]r>?z]r>z]r>;f?z]r>?xwxsq~Mwq~w=`uq~.MeshRTqs*Tqs*Tqs*Tqs*>z]rz]rz]r>z]r>Tqs*>Tqs*Tqs*>Tqs*>Tqs*؟F^Tqs*àTqs*`hŃSqs*0,Tqs*Z-Tqs*|Tqs*8qs*yTqs*àuTqs*0,qTqs*lTqs*\àeTqs*(\Tqs*@LTqs*;Tqs*L>Tqs*\>Tqs*8Ġe>Tqs*xl>Tqs*]0,q>Tqs*Ġu>Tqs*qs*y>Tqs*@|>Tqs*Z->Tqs*B0,>Tqs*hŃ>Tqs*à>Tqs*2؟F^>؟F^Tqs*àTqs*`hŃTqs*0,Sqs*Z-Tqs*|Tqs*8qs*yTqs*àuTqs*0,qTqs*lTqs*\àeTqs*(\Tqs*@LTqs*;Tqs*L>Tqs*\>Tqs*8Ġe>Tqs*xl>Tqs*]0,q>Tqs*Ġu>Tqs*qs*y>Tqs*@|>Tqs*Z->Tqs*B0,>Tqs*hŃ>Tqs*à>Tqs*2؟F^>Tqs*؟F^Tqs*>àTqs*>`hŃTqs*>0,Sqs*>Z-Tqs*>|Tqs*>8qs*yTqs*>àuTqs*>0,qTqs*>lTqs*>\àeTqs*>(\Tqs*>@LTqs*>;Tqs*>L>Tqs*>\>Tqs*>8Ġe>Tqs*>xl>Tqs*>]0,q>Tqs*>Ġu>Tqs*>qs*y>Tqs*>@|>Tqs*>Z->Tqs*>B0,>Tqs*>hŃ>Tqs*>à>Tqs*>2؟F^>Tqs*>Tqs*>؟F^Tqs*>àTqs*>`hŃSqs*>0,Tqs*>Z-Tqs*>|Tqs*>8qs*yTqs*>àuTqs*>0,qTqs*>lTqs*>\àeTqs*>(\Tqs*>@LTqs*>;Tqs*>L>Tqs*>\>Tqs*>8Ġe>Tqs*>xl>Tqs*>]0,q>Tqs*>Ġu>Tqs*>qs*y>Tqs*>@|>Tqs*>Z->Tqs*>B0,>Tqs*>hŃ>Tqs*>à>Tqs*>2؟F^>0-?mr;aSMsR,\qAۛ\;{G?o0dђj ?aj _]da?o#K\4\q0̉SM,ѩmr0-?mr;aSM>sR,\qAۛ\>;{G?o0d>ђj ?aj> _]da?o>#K\4\q>0̉SM,ѩmr>;aSM>0-?mrAۛ\>sR,\q0d>;{G?o ?aj>ђja?o> _]d4\q>#K\,ѩmr>0̉SM;aSM>0-?mr>Aۛ\>sR,\q>0d>;{G?o> ?aj>ђj>a?o> _]d>4\q>#K\>,ѩmr>0̉SM>Dڍ*pt>B%Ht>@`>&i,t>3FQ=Tuz.>}{k>Apl3yl> +.k/aj9p>ܯlՄ>^6V J>At}M>Yi >pc;R 3Jx˪ݞƁ>c>wT>)Ǩ#!=gud5>%Ӂ>jJ٧~`_ُmGvMp2y2xbn|>kO vlئ>ig |>g+y&>-W$_wݫ|>,#*y>VՃ>chkw>l}J2e ogt=q>z=yx7w`T~vL. 9q>,5vy>^<6}^>Yiߙy>PxIljVq>*Uu>CIå-O2x>F]Ey0Ұ3wPYpp1%Dr>`󂄾RуMr>}^w><)$\_r>M6Ywao,l:QWY;8>MT:mQ9?Шф> xXfӄ>j?ee>T AWuZho,|93<i>Q,h>FZ|>!y>*a>4lTxc>~z7EDb@+y؆a3vy>DjcBiTy>;}dhwV3$|8AT}L #>mg8i)>`ehp1D2i ܄ {\ *i0M]>ʌhT{>EhÂ>ܱ`A儾4*p >-9 O>s{on>oҚ߀|{ $T>>W>fOR>|PL8/x>&mr>rSq_gy>)rQUy>\+q¶LCW{z>?Ixz&7D?>L]A>ozhTھքd> V>:V:$`/%<~60>u>B6¼}>v-b>fT"h>_wJ7>0ԚU\*0N}]|>h>Pb@XK||>-fV|>P< z ā>>#[Лak>uH:_> pcKs wMCϽT8toTGq#2wH?Z$.;RoOj>"1~[KEl()h>>Tf Ѕ94!a(>Pt5GQNP\>ycх>hU>y"|ץ@N6XSL>X$f&}>=W8>Gpт>Ӱ^s>߱n> v?r>.t +o4RzGPL<4ew@~L]n_$ӻ>~Е; >n:D͙q >W&Np>2ֱ c>LJw>. 0wBGd>cD>GKwámNtʀzyv=aW~,z_~>>=e>R͂h>zDj>)EQȌxtQ!!3>Lb8R>P1t>^(+X>[z1txBՏ)ᫍe>)A>KDp}>_R|o>K>zS|YB#}>\)sr$!>q|s>\w>uv>vLnw>DvƝ :w>J"دv4xįckg3c L>+d>؏ {dK>Jh)s"H>˰ >/ I&Dz:\#FW\7͒p>8q}K>Y~x p9{^bxDn>n>ʏ'G>rUpr &}>6U(']f>ԑ*u(nF\y4 [z>ib h>AkB2Ny>$u}wD2]Y>NS(QDSRQ_>5g>u7 ) >p{ >R;ϹTW(RUG'r&5A'$Po$px~CO;@{>s^VDLX>P4]%<ªYA de>yv r/_m:Y+ zn3tzP'S^>k1WX>#cZ|>ʗ K$/z ˁBjruep_|}#ya6#z⹮r#Oq~> `g*}ĝ!oK4"`t>NqK|o>(ӁɆDi/h#\HvF+dB/aa9{aa>Hb jn^M[{dy>Y(| H#}mPx;y>hx> |>xCS*z> P{>ggE>9݂>\`V~>S~0>fT֑k|ˆ]!~8 >m[20y>Gڀ5NQs>HvLs>܋ن3s>;qՆ>j7Ԇ:z>Rnz8|G#t>49"fw>ʁ2=GTm>!ar>@n>VqĊq63&pfn>z-z>z\vd轹5(v>Y r>юO{>Im7 u>F >o>tѡbLq~>ֆ}^>@uOၾ熆>Mk>Ԭ62LѾY>mzw"j>dm>f/^@U> yO}oj+ &O5+>ľ>PK?B冾HЃ8^>y> цj%φ>x쟆>l↾m /Ϲcka+>oȆ>$JKdžOw |"x:K(Æn^gvbt/b>Ov>z#҆^w4‚ܻ:p t/dրX0%i> 8V >檙Jw1k>> |_>.qeH|)Y'r~X[8>xjzzrԲ|>Nc7j sJtw>R~IE&t;>\ԝ+>8*wF5>LLخ>ivz1}<7 8$%(\?^>ERL>L>$lL>Fmt枑 > W.c%K7 >u7Niln8vz94^U>|>+۞a>H >vi>cp6a (Pe}PeV{}f\q@[*3$p>.u+:tj#.:6Daw>r2vOy>d 2>- vofVmu>eř&u>L fݎОTu>}k?f>OMogzoa rU|gx`>_^&y>MPE 3>{>J7;LsT>"9Q&M>')v>:Y>d}>_Jud>X v>v>vµ3ZY|>ڭT:ii6[jY*%s|>Dݑ@e{t}$q^>W#E:hiJni̚-'>):h2u0h uf@v#x>ĭl%j>hk>^yNus>32wC~>6)[\>mm]>/1EtշWKR-AhZp)u{Tۅ> t2 s>i3(yQX{IW>@Qb>HHMx>G}7)>rKuf;s΁0ņOwPf>"Z~;%!,Y>=]y>`|zt>[` O4_Bu ͱsgdm,R셾:kўLb gл{vito lKSyќo>DQ >Zؚǂoт> &Zy$q>^ʔ#d8&X^nt>rY>*30ȇ>b:}>"Wp>Ƀ(@B>iaHv>5c-aB>1PuvҌdzl> ?{GTy`Bi cfV{>y `J&k>#}>63obf;P+pNm~> Am~J4&W>E`>`$Ux>Yw>D*>qZ(uѹZN3W >^Ic>i7 N$>qV,Sp>RI=~͂>p#vj'a>~q>'ZHv}\A~LޔDR>cN21>#b`^>.ǧ>RDE,?ܮLtLۆ>sTP>_dKаUin>=$z>B{yR|өk>R>95 jYu>Us>+zt>S+tPTI_sƹ~1v>pav\z~ Z5f>9^eǍ~dbi{>肾.wx>. >`r'x>ZNFGE>Qq>[*o>O~3x.Gfzz>杅dy>1'f͆,,iUrH4〾wekk lT*C>9A՜>Nք>"TРp{ʢ>3k>JTb>X5B\B1>VWQ{>e> 5t>YG>K#lѡ}> \>Oy]>xυ9gW"B8>0L>L;Sksc>:- <+VW}iF"})>2}1#F~2>9u(>N!>{ꌀA򄾹0%X}>U&V{,u>kWkV>WIO>]A#>Mhl>\Q~C>5St>)Z2Ĥ6L[>8%~t>j5a斱 >~>CuVAi>cME`i>견N%t>8>j膾!u7>L!}`=ɉ"[ y>pCu>`Gu`j|> 1& ,S))Q>V5]> Γut ;bQ۹Y1:a `>Ɩ>$ r>>G&L@>`'>>D'z>&RY*u*@v;[Y#$H&j> {ΜbՇz>?݀v)xu> 7flUN08mꡍx>+>pggbՂuX6.>~YY_> vg>X{6>&Xhհ>h hrVT̴]<}j~d E+M @R @N>Qσ>~ew\tbPEzb+;d68 w|A)>|>GG$O>AEC8~36Ttu>P@u>L^}PC>%>`琽`FB)<>ɻ/„>_";@SVw>GJu>8+R6Nbw>0t|My`cpGv_̝X|li*j>ӟwvl{ Lt>Cdx>X^>z i`v>KZ^I5bRnR+Fxf~ Qrܹn,-j>r%riu.'Bp2>#ee >zLvف>P,Lz@i>_ |jiy9R'{:Wa耾τ٭[>7F@av@2im>3S4 w>޻FA/y+? :"/quϓ¾Ѓ>(nT%>*F 3> :v%g>׆8p>𬙶Eqw>Bt xCn>R-t>2U(>yФS-s>Z3JOt?>ȋy@HvpCq6; w>z(r%V>BV[BʩӵDB7a&٠Z-YN꓄`up>jx%܈qw:jb{>{3p,LS pv>wA2z`^Ȗr>~`ss>$q;rre1Mr> ˇ ~>oM?wE]8+Շ>Dv4bAb)E_"bá|Rs' d>7't+[?ZU?Kn>mԿR~OW0# 0 5>3Hք>pB`߄wbճ#҄֔\D>{$>՜{B> ^π>)W:vu> ̓ONb>Hp>޺->@6|>1R`=p,gi> m>>PbOBՇTEMǴ>>xeN|F|>"MtZ|> {/I6*i{>j~%|>1qf> 0\d^*st ~>I.e>X2|>F}>3mU<{>D=QY 4 $#taE\>;}cj+0պ-.&IqE QWz5*ˁ>Lˤ/Q>iAV n>3^BU>Csza>tqz>L 7Jv> 1Np>Ky?"\u>d]!>{>:/Y0l>IJtbޒo}>`M‡kB }WYexgɈq!K8J}>=܅pG}†{]AD#Ldw>F@7hWyAw>2Y+愾BӨZs&у>4ӄ\y VτlATD>F[>}#O>8ͭf>:%ňz>$wL\*D>3ĝn>ѿΥ >nKRp>Tgl>.-kqz jp>6Ȍp>gkkiyLtkV*#y7]xJؙٖ~nae~9ʄ>]/Elb?DV|X!Vv>x>- dUk|3uN-\tq#2pS@nj>~@Xr ,/|"Io>[ Ҋ>K>PРlm'&`ww>}6~>Ρʂw>iιB>̝x2GwӁd=~dx{F>e# MЁ}s>8)%xdc ?}>YCC+~y Mf>{ö>S@b>$DuCV"% 0Ar YG"*< sY͞b2J{/$>rll`!q>ޔދ~>(0[r>_|F$>tBŗ?8 ه>9d~7>W һ⃾}[8zBPz:7z>M5 tlūir<>V=kih>Y^Z>PCGF6} Me¤յ]}6޲}>! y>!X6xJĔ'>jQRlB|_KVtj˶р d>Ǝw>_fwaʏs>q=s>n;W>(D0BƟ>&+z>1w>8q6n>z>qgOht6 Qr>Pgs>aνiar>Gæi> S%>˽8Tz2 ȉ"Z>Y6X@( 7Ea>hVa}>|Rr>Pid>B|ëq>Gi'zr>E]de~k>>⢇Ζ)Jh>&<|gճ6ty2@%?bu܁>ؐv>̳6’ɓp/컸>FNsi {͇>s!->ln g:ㄇA7ic8 P!.Kg> P*\u>!&ªu>Sukt>TA x^dfjR!;PnU_g?)>,˶]r> M>3$qy{v>_[۲%>J|X>a9~:s|>Icz[F8>6ĮX $j_6fY>v#y>OybCs>!UU>%]n'>a-r>BF>tf$hK{>Tym>?kT}>y2vu>aq&C֯p3J 87j>us꘍w ~>Mlt~>F%zxrE>uim\wQ*zσ>LU0wtxO|"-nN>p>*߁>Dh>"{f|r(l}>8V/ż~n9#_0lYt&I-և4+ Pq>seҖ>l>ʢR>[E'qGY>>U_@]ŃWӒ>[n†b>`r{>(VY/ᵩc>k"4> /a*>` ?}S~3>ƐC7.8TIgC٣@FL4F$ <c>ofǵ*.ˋ~>t(#}>V y:0_>Fkv2u2G5>j%N|N >afրڦ84\>LbCc}>uj@7>Tۄ[`{`C">D<`HiT_>nr ->AO%e>8GLڅ>_i>R4)y;a(z>QW EĀqo.˃hFRX+eVw> >?E"J>(3UX`߷)Krځ (~>D! w#QO>%Nt>h뜚9`>h>ɰY >#mNWK$Bov>-&BꇾF֬⇾XSv>XO2\A5i>Im/f>C _x@:*xqHeS'tQ>bP4>"o >j5 t4;O6Y~n>Rc>m`1b~>Z;կ/4r>=fYm>,GuFt.XJϒ}>E^R}b^s{@&r><`xrU{r8>qmPĂjŅiQ5rt;(X,>5/̆>Sك]G4u>iM+;y]p>Q^RsTѝP> -e]>:6HyʫS>Im'>yq>ODwZJlgj^wqHtuH{Yc1$xDB>C;rҡrȰ lf1P]cb>YW>!d"XE [=GDz>2-w>HC໨wTFpy>(nL>z~j>|~Y>uSsyU^s&!:X>Ne>.eu> 5fv_>JU5\>͜yX>ԏ/A4j`>PnY"!"cnw➮e#>{D >DLjR[>3$&-+zat[*Ѽ PNP>Kw@W|՝i%u>!>6OA9Z*pt>=2 YU6n>;U>U,fx/)S>q!w覱/4i>C]D=t>vv%P>ڧ>,.c>3Ut>}Es$2~>{>CK7ㇾf9+>.D:.5O:i:ֆcT9>->r3>T}{Vٜ%[ EpJWc-~>:/䞆/P|>ΐ|`LoX ޜ(GK/"sLVtՃhkp>hu zh.q p+qa n\>q¦'v>%Ѷb>ldml>JZob>$e>T[rj`5f$ x>&׏{ n_~M7qp*Х0Ko>ڄP@>s2Zj>!fx`>e"{l}>&t%,>0Dx>h ʂ 嵌K>"MѶm>DBӚ<}>Wp g>?[{khq/>\S>.hP>PUl[řwy[-"|>B_.@^>LKrv>zI=P}Jw>if%gT^SKzZ> 9]T<$>At>V2dqx6tٹ!N+qB' ݳ<>1|LtF=F~ əO:V=:b_H@tyIk'A>rZB̩ex>ȷx>w|8>m>ce֙\Wmw޸ZUa> |:Dv>z=Ɔ> Jml>7~"NSAZM*F\>, ^Yݮ}^4Uԇ>Ζg>"Nj>~haXځ>Q$nx>!5tQ>vo_߇$mǠpBs:؄6x{%n> F nq>xa΂OK|>;c5cBչp5R;kܳ2~cMjkbw>Po6dOG3AsR>]JdIYi'y>@@tJՠtay>۵t>HPyj~EGdJ>+H>{"#~\qtU>i,a}>?ru('Ć $+>{ղ[>ܒ-Q>qDfyxi@4I>j>wI ̀>ܘ>AunG)Gs>MW}>IkfE>K-r>thspH>$(w>ޔ>Rw5>ݪa0d@/^>)R`9HE&>pvQ-i> #i>I,I,p>Y|Ӛi>B _p@OJq>5>.Q.hfq򗇆{Zs|>g[6~>0KoOk>KbTDw> KXiQ>;RufL-T}ژ=w2zقhi|Z>$k&)>gyh<->bǭj>78>BաYX>MpM}>{ąN> =5h>jthAxgR~>_X>gF4d$iM>Bǃy{.lCD/ҠI6>]bb,>e>6{Iv Ra>oiˇ>#c5|+{>(C>yk\c>i0r>(892$>!TLy>GGp^HVv>g??~>Wb6̩8s]>Vxh>>#>ngt{>7]Qo煾N 'S>:@ b{>CF_zs>/qջ,}0q t>*0Ypqz>8 uT>N2$sԂr>=a]e~[zp>UlQg[>#~m>JlۀT7Ȣ>{>Lɭz>H(,>vJawB]OuUd+{>G'ilQ}wZQiZ*xu>8_ly>8i8Y>-ti)WBc L dtzbr~v=L>xAWp8vhFz>"MX;g>aݙ>Q_aP.cH9wF}C"ց2`C^9|>vz> OLR>lۇv>ʛ`FbmC}s`'DJR({\Cc>8/mv>$E0a>P=a;8W˘u>Q4])>lfĬud)-WYrh\&MCݯ҇,zӇ>C^OI>WLPtW> $҇>$OLfm>e>c8dQ>Puz>EQl( ru>@|G+Ujdׁ>' n>NGpew_Szo3Hz>oz>뤔z\QJ9h >>X6~}_i>%y>G}@ڃ>9p!pF0x#Nu>;sP>#X$Wf꽁>JQw,|>xw>͊X>t> 4yy3AYi@ƕ,Pi!ˇ㦂jO:[+>ˊcph%K>dy]st¦.H>Amĭ>lraxaU4).ˇ>CJ>WM4eD>žF>@P ql|8E^Ђ>Ac>>Mm4~j~Omn>j!7t>1v~Bz>R{ins> H%Ы #s>Ry;pt>"+7> ti^]in> ۑ p>G7tẊΧ{>u<}{>۾`(ߑ_@ojՅe'>~,>^7z52j?>:UDib>sـ>wжiS݅A(q>f ~x>#m<"]@=wt{uO>Eb(}y>e-Hl>OK->Ӻ㌂&פ[LZ%>bV@vC>|cz>rSfB>ˊEsjrPs>d , w>ٰ*Cg>͆u=Gv>{>R<Է">i>@Ȅeń>!%|Y7ZAl&>uC:#mx>D ƙ'ppԃ}w\ޅvȡ+tg\> ^G >P9߸> />}>&xl~xYB+>r;fZ{7P0`v8M`q0M ǻ>DnT„4ްpJv3|>8'>fs)l>K`XeF>fZ>t 6i~SXfr>46~Kt>ybU>d1묇5'y>gW< !y>[*qz>Z^}g լw>%s/=]x|{# 5n>L5nHJ6>ަI>ssHpXx~ΉRu[edzBBcەo>Ys=t6y>a^\jUpuYlm9`9v[C{#a>:xŅ>h/{>Gw e|DŽ7 v>pm? c}>~샾=M*/T> /l}8>#q9q>Rs%>*}>!1XQc[[Ђ> o~?" .e>Pۏ̇>oB]VB}>x3c>qZXهeHɬ>}^6ď?o>>Z2>9G{>X9|:FL-xr;(Ò-w#.>cOR'>D+0&H'>GCЦp->|v:IFiu>]g.gw>lO]y>)N>8nDn#u>m"vEC>\vz _z*.~>^Րa$}$ t}x+~> |MTQ`zc>PO.MU>Ȝ+tpAKd]>(>oJƃ3>Uoo>@9܁F1wyWH>RNI_> \Y=jEV"r0Z>О5\w>~zy>UJd >~u>0K^BќY3y><{E>UΛt>P^C><=8t‡>{m>{Ioz.7i`f`A>bY? >7A>q s&7<6ŷ0@v`*5>0a65 d,&3Ov,U>AZt/ز~> 6;mQ)+y>oj p> 18wri>00Yх>cs_2dJV$}|XX}Ӎ:xw޽6NbaD>nڧf>Sp8vZg,Ns>}XơfY\!Ft>|y+鷋O>Mҥ HIQVK>WE>ƧV՛>R"Kyu`w>΄By>1dv(re>ˈed5餀)u{lpyLp>NK0q>} f2q>_OR=&x>Sށ>M >c*tMHŸ>Їup|>« ڍ>p7ցv|ZE[> ^*rU>7x:6wϜq>x| )t.j{z悾HGfnޒx}>dF)jF+=L/u>@4=e{>҆x>^:d>w̆&lu,z>z>p9DS7>a>M>@ qjr+ׅ>A0h xħυ>a[Mb>SRy>gzF#hrHm@m>H l\M|·nPe_t>ӏy9<Za5@@xtU]>tK>{f>0`!25;P>د>\>LoaՀ>䒿}BNvay>b h0s>%wc>Z8v 1>D_,J~>`,r]72w`Yɘy7MRj1)\9Z?-rF7 q94R2u>k>\(>s s|bw>wvW[C_4u( Trz%\ zz/&{>B s4}@>Q$,t>`C]6>B>tjpgătHi>3swg>ଅ'>_jp>hŭc>E<jӥ~p>;zaq4Q)> Olye&`b>n;X>~ RL~}>@e r>d"~֦l>roH͒>E4kH-yrz~Ta( s'%"oF4g>Lew>3y>Ye+~>\zgp\}V4KV>%n >8#́f>k)>zcQ&u]_>~/>| /z"Tih(–{?t)HZ-BNx>̧$w>)3QC쀾{X`n>sw>>PF>F_&>)b8w>ރ_bs$u)U:Yznsnpm" >7F>8m兾kY>,Uۆ>`MG> *V oyr>n΅>jZqΐݱ#utwxE7ց!yNmy@n3>+|jur>@D7澋@>ƷC>"B%M> t&u])T x>|G \`> !u>_>u 0x>?6@q>C8mum>V{!Pu>XQ=%}L"xts>Zmp}W.O!xy*>)sHxoUd~Eуo>߯+Hu>P"r>{) uIJ,b1u{(!5Lw>gP=݆rh>h$;L& ,;Mb$ܑ>`7`Cw>xU~y]L>Ô~>5YIU>J‚(hh fpdbXFɇ?\>,ti,mTH->Csk)K+>h>G>$9>8Ux>#Qoh>z"PG>˅`mSuX |>ÂA25u62[0|>o&Cz>wfuw.LE>V^{zp>j/.X\TBtG‚=%qu&S{,^{>mA* _q>UhTn3>'LbOKne:\c߃!lBX>{zҗ>?gț0Jt58kaJ+uL+>:Βs -v\ZXEbH4*v>)U|>)6a> ar&Z}>gIK}XZ|?sU5xXQ n><> au&hDǙu>nln>ö9=iI>wʌDSO>p _x>E{tNSsE>8~|$bB{>/h&9c>+fvvn "e *¿_O) wާ*S>VcO>3fa>qvK`S~>:>dHSb|U`p .11v6AneyQ> LҞ݇xauDh->R)n S|>̣2{o>Aʇ>Eɀy>(1':}݋P.>s׾h.ZRS>E7E~%dP+s5g(>}dpZ2>@{,AiHߨ^z>Y',w8>zQ[GnI]v샾@7z>,>뇾( FKo凾lT>E6?>R7H3=>D>}…>15ˉyk-б`dҿadžj 'j>wuo>)kȕ>S462>-d v>R'x>q^҃-:7Gzrmv0>$:ij󿿠ps P>B!tT̯{^Jˆ> 0%v/x#/ws:oc CE8az>h1E{n9tP>xCgwdB&`UY>P,΂>4Q>$޾u>ݿ1}_̠`>hz=L>~ruG/z>\SPKq9b\򕑆CJ{Bs>.$Tq>yYpėt>=o녾¸C(i|ktcQcCfw^͚p>GEpJ@s>Hu> GɁ>QՏߛu+lp>L4>S+ QNTMEfb۔xi>{}CƱ+yh>Xڲly>{~Q$>oĭk>5z {V⚄a$W>[?F]>kO>O\TƁ>݂ޯj>}#{>.>ęQ@ϘYg6S>632c¬GryOPBqb~>L4=p>ms>;[d>9"*|>UutǰlC8f~>*~C>,3WŇNi%u~/C>X 2H}<[F>`BS>*<߆2ͽEo&x>!Hӧ=W> 2>?:wd[ѽ'4DJ,vN>d9w7Q(oR}^o@KZm>0m>a1$o cm>Dp>*ۓdFU@91tMf'`~1V}s>.Vל}iq>gdm p>*&ښh>h j>?Qy>ē76Q>ܿv>:ꃾ9Nև|EÛ>©w΃>6GhX@=Dϫb>ЈfOk>1-w Jv[>25 ?>u{>Ġ>[_|}>JtiV>Ε# >(^U?9#!T.1ܛ^>ڦɯumLB>N薡낾6s8|ZX&X>0tQSwa>w'3 t%$яfNjs>N1}O%MXjIp'e/|>AτBT>W{%=>ho~xtn>c ̈́rf"O{Y9s>{C[>ބq>8l O>s>>.cӰd> iB~>56W OJvq}0+ubf`'ɼH#>#;Cv8 :˄#?KG)f&{Gu\҂>z >gpW<=၃U3z>{D8w]H>8ԍ^Ss"yu> p'_>o5Wn>K4Ao>vğsV̀>>T`Į~j>"}>}v~y=>*oS"Jʀ[EYx#=cކv>ٌ«P7t`>qKӔ-؀g>ی+PpN ,h>ḁ,>-)Eo>HDN͆|YnK>Ux,‡J\tO>rO(> o>pYPh)}a 8JzSw>ja>rj>ә/>7[H>XTp~"4n.+6OʝxF])o @>yP>`p>:;` |>HVJo>Ow8}Et>M8TgRʡ?t>:ףW>"m>t-c(yߍٽu>c'vL̨jx>hym"0ޅ•+eL'EZ>@mV>V:>Xhsg4O_W'̅yH?u>rD![^>/\?y>&h>)zp ;>".*;>v7)b)> BT9>.3{>8c >@9ɂv'q֒>o}U}>W>봸>.{I| ]`>?s>x-$[v>36BP>=*s.fd{>Fw}>+͵etv_Z>6Qڅ>`E>PUH>,hI}>0}@6@8jl>lX{|\w->X?2>fsQs*a𼺄`Xt6f~>њV-GM F͕]Y>@^ELZ=(gO;S>!Ub>TH`z1\.Y>@*mx[>Gic>pw>9V8 E]r`QˮK>sILabW@Uz> chP#5}j֍xHT>sh>]h$-g>mvg>׹biU>֭e>4^fʬV9jd&j K>.l(wk>1k>8S5`z'c>gWbw\_n^>윊fiAxdAaZ>O?bAkEqR>qQ$>X(j;c>b|c>>vP>"nQ?6wߞdD>7 M>4^)>vQz>zacUP> "!D>Ac b>áݣX7I%Ua>[u.RQrמO䯾\>$|gTpV9K ]>Z?D>XqpCmg1Qęe> .>iI9Ti|1X5lzj>8J7Q\V#MREDk>ƟɛhD0^b>e6[x5LbySjną>iÎ|Y>DM0*ll``>$bX aV\xZ+[>_T7> PeV\QRp [EM>BT>QӾQ,F憦?>48f>̻mXE>6ɓm>i"P>ߊАn]XD>-IjU].(\oLw>> n>_2>H.7d>hi`("ŻdMhqyLjaۡ>>RU͵]șQ!l>(dSxtl>Zg52l>n?.S*,k>pR^>b>5`Q>2oCh97}d/R+ʔZ>ij۹b>q@n>Jݐ̷R>ٯ xc>rhjuR_ ﶨh>jUJ6-d oXF>o&>F6EM_y+Հk]tˈv!fhL4;=>461Mk-CčY.iV8,|MKa[>BuQ msth>ȦDh>kd>)a>Ū[>dKl;ŇS'LhY`CE[>R&/2Q>gq]]W>*m>&:b?2>n(p^a'R> ѽU>A!!nhD4T> FC-:p>zhVXifO1b=:]>*3X8lj_oP+&p>M7AAHt VDU>Wn>0kjIb免b>@A j>qF>Re]K9>Y@cV=Ga[*WB3I2W`TZ'̈e>j|FUf> bsg> MD4GG O H7c[o>WK;T- Af>_>boamZ\ɩ^=+T7To>dFtepL?]>W6+=* NA>L>`> z>Se"`?Eff8*5*1U҂fEGùQ>l?M >wYp>k`;W>FیsPcc>@Hd)k`>K^2g>*{&2.OcIF5 Zuʤ 6> _ֺ\>*1~CFSAC!>Hb>)RTt= UQ>ģ>S>e%G>EC:>`c q>Izۯb>_ A>/E"pme>Axɸ,H>Bx?eX; WpW>>o\TJO76b>2XeNOPp[8tH?>GolZ>'w8rP>1rd>t ŔB y9sBQ>}I_><IaL\WE"'H gYwasG>h-mlNvR`>28 ZdkT'>C A>-Pe>׶uI>.`*4j>'lC}$>y` #[jy7H XW>cowm j?k^>bօg>/0K*!Hz3kiRz> =`V*pȓY[>>'fR>vtxedg  !!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~$I$I?$I$I?$I$I?$I$I?m۶m?m۶m?$I$I?$I$I?m۶m?m۶m?m۶m?m۶m???$I$I?$I$I?4>446>?>66Y]Y6YYYY]G]G6]G?6@?G@GA@@GKKhKj]jjjfjjhh  h Kh{ {?t{t {GttGPKG GK GKPPGPPAABABP*CCBCDC>D>***tt??     ''''??? ?{{TTTTT:;;TT;;;99PBBBPPBPPPP99ggn rrrMMMMM@ @ @@;@;@#H#;##;;;nnnn  n nnn'qnNqn qNqq   >E>ED>EEE>EFE3EEE33E3FGFSF3S3SGSG33)==)===  N NNnN)))  (( ( ( _ _  r_r_rrrHGHIHI`_``_ ` V`JIVJKJVlVV.  ` (1 1(111.1..lMlMM2T9TUTUTTU##HHHHDUDUUDDDwwwwDwDww%%%9%99%R29R29%2R%R%RJ%{JJ{v{7v{7{77b7b77v//"((((bb(  ~ p}}bbDDD}}DDD}77<7<77r r rg  g E <I<<<[[HHIIHIXjIX<Ij<jpjXpjp~p~pX~X}~~}MM}M}|M|M|}AA}HAAHA[[ttAA|A{ttmttmmVmVmV{{{||{{--44LL.....~   !L L > >!>!!""!>">";";6;6 7*7*   L*4 4*B7*H*H*BHH88888QQ@7H7@7@6@@C6@6;;6AAACACAC@CC222&&&&&II:IQQ8QQ+::++::IIJJNJJOOjOijjiLjLhjOjjhhhOOxxxxx```o`oZZGZGkGZokZGkKk;K;k6k6oko`o^^Z^^Z^^6^6;6;;;    < < ;;%;;;KK%GKG%%%%a%ala1lK]KK1111122//9/999vv111K11K1KJJvJ%J%2%2ee,,,],],]II]L]llFlL]lLIL{L{{{I{,IIgggT0T000T0T0TeMelMM0eele.le.e,,e0,00,,zzzlzllzlSlSVSKVLKSSLSMLMzMNMNONSSS,,0KK\\\\SKS\.SKS..OP.*PO.P*KC*.K*CKC)bCbbC*QPQRQR||b~|b)~b)C))~)MMg~g~g_gM_gMA_A_}AA}AAA  A AM M $ggg$g$g$L|LLLLLLFLFFaFlaLLLLL__<L_|||'|_':}'}'}A}:_:':_<:<zRzR:z:RARR3R3R3333==V==<VVVVVAA_<_V<<_<gxxxuxuououu~|~|o|oo|RSRSkSTSkjkojjjjjkTkTiUTiiUiUmmmmmxxmxxkkk%%Ik%knknnDnkXXX XXVUV X  WV W \n\7\D\7\ \ XW6X X 6 X6s6s67srs7qrEEr7E7D\nDDEDEdIdIIOdOqdqEdpqOpOpopozzoOooOI%oIoHHo%H%E%EEE!HE!E=!H!HvUU!!==U=UUUUvvv.v.n..nz.znozmn.mlmm~~~}lklkjkfjPPjPPfP_33}}/3}3/333v/y%//}//~~%%%%%y b bbbz<z b  ZZZ) yyyv)vv))["B"OO"BB)BB))xQQQOQQOQOBOQhhLyyy1[1"["["[pp[[11((pp((wOO(OQOOOQQpQpQJJJvvJ__~~~Juuu~u_~f_uf_fu{if{ijfhi{u{h{ghgNNfNfgfNefde+++ee+Nwww(w(w>\  !!u}\\}}ss|s\}\++d+cdc|bc|b|=|s=|s}s====aba`a``_`,_,,f,f-ffff)-)-f-!!---))))huuu}!uu!!h! h! h  YY hhh<<<d d<{d<d  d{ {{<{  dqqLLLLLYLYYLfflll!l!NlNNNllNSN SS S S  SNSNGG>>4>4>444001y01400y0yyGGG!i444L4Li4iMMiMMMMaa!i!!!f~f~~~aa%_q__q%%%a%#JNN+##N#N#5G55+5+555  FF<<F<=<FF=0=<=<3E001100==G=GG11G1CCCCqE--/-'~/v~v~v~y/v/R-/yR/$ R$ -R - q-q qCqC >>>/  HHHHYH:YYqY:qYqq_q: :H : VVtV V~t~ffftVttq q q V / / /+/+/: + : :88:R::+:RRRS8RS8SyS@yS>&@S&F&FFF>>F&>k>S>>kkCkCcccccc>>>>$cTT&&&$R&$&RyT&&yyyv@v@v@ZTTTYYYZbYZbYYgqqqXXXpXpqpqgp?g?g`pg??`??p?XpXXkuq~.=`kkTTkW0TW01TT1XTX12XX223X333444*45**5*7B**B77B7*77GGBBBCBCGCBCGCkk7G7sBssssJJBsBB566677787JdJJdd  8 89 9/ / 9:/:N`N/:N`/N``N```I``I/`/IIIwIwwwFw""FFFwFu9u9uudddJdJ999@&2@9292u22@2@y8y8Q8Q8QQQAQAAAAd d    >> >!!!!QQ!! uuu>>u>!(!(P(PuPuP (((!!,,.._,.^_.^.3.33]^3]3\]]  QQ Q Q\[\[F[Z[FZF55FFFQii"i"i"iiiiZZVVV`VV`V:;;;<<<==5=ZZZ55ZZY5YZ5Y5Y55=52 xsq~Rwuq~.clambda  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~uq~.wDcJ߰"S>Xv#}>>e>?oz hD(?hL h?(޿j&XSlK?pOR?XЗȿ>e>?oq `ap4P8Ȋ}-f?M1?*RM?Gj?#?Q?k<_JX?v a?X#?$}P?'(?o8l?=Y60+T?@d=[KS?鼿rQ?̭ſB-$?2VͿ ?cҿZ?հ.ֿBԑ ~? |FڿAB I?3ݿ6T?G51࿘HE&*տ2?4п2^ro?)=+E ǿ#U? \l%U?yEPe)1 릲LS2jǿI̶Αڧѿ#W a׿ ՗W$Mܿ[2 9?P#?#%r?%ik鿫VUv?IV迖}:?R!bO?ໍBZ*fBC1?ÝhKq.?NSq_(V%?o +n})K 2d~?GX޿o|u?N ڿK.H ?{y(.տǎt[?cu#?ѿ]W ?wa oʿ܇ '?<<~dÿD>?L6doGX ?E5U!Zu?`RMI ?0Eȿ ?bm'ѿ`c׵?=׿rޠ@ܿ@ga,7=IS? Μ?J5W?0,g?:Ov?Gv?y{` ?cYz?kgmH?&g?!Z?uCdE?% s?C?8y;/?٫K?'?UXB?N?kX7?i?$9?n;H?|~q?'76?pod* ^?}DNވ?hۿz[Y? ?w~.!- ? ?¿!9O?\3K ѿ$Q?'ٿlLq?Կ.?I$0Ow;U_?'TgMFM'2r ?Wfchbt/?@ȺEֈ骡??RQUd?ܨ _?,6鞼@>4࿕Əi@?w_4f(M@> ޿Sk@0g/ڿ+#@Jpտ^>>6?lпBtƾt?#lӒ+?ȴ"=ݿ<_n?gPWb>n)<>?(Wo8 N??.쳿+^?tot?D?Q`FV'?sW~?~v?U(U?L2ץ?IJ? f?X`tT-?p%F?xC ߄?O??y3<>95?pl(^?tD`TŠ/?¿m?w Mɿuא?+0п7EP" ?\JrԿ{& ?Ldqؿ\*z?2TNܿ~?lp3߿W,9?ltJ2w݄?ZB?D}YXf?(KNN?oxXj~?4޿/(_?h Ӌۿ2;xa?$q׿Lڬ?yrEӿ.ҹ[?ȅ4o̿0j ȳ?K }~E8?7gܗY?< ߏ;$zӻqGE'3)&Z~vR.1TUͿSƻԿPJ񂧨zR-ڿ0-jFW߿8=?p>85`@wΰ??Dwl^俔V?{/X(@f?翘Z_?i~:֐?\(?po ' vƄ?jK JJu?en>*N?\)翭]*y3?#9¹?Vo0:%Z?#D;%GV?[}fUjON?dN֭ܿ[?p׿t]'?_c9_ӿN(? hkaοx?*M ƿflE?~˙/=o?b4*ȳb}?MS+9k.?ɩ12@Hl;? L¿J92?™ οL ؐ?=?Կ@[=St?\1*{x ȿČ>+) ?9Pп0<A翤 XnԿ,b#jU+ؿua|% vܿRALV4࿠!忥s㿂Dҩs㠡-X(r\ѐ5߿;; 俑AڿlєeֿzN.y#jNҿF^g=⿖YSΟ̿R4&࿛OXſV^kݤݿf |罿,2Fٿ>'**' oEԿ8EݼHGvͿO(i¿8^kD'8M< l?[Wy?&o5둿|#?ؐ=n>?@o<]t4=V?pѐ?VH`Om?@TY~?,ۯu?Bۥ4ꩶ?|/+?n+vO?0߿r8 ?Zeq࿰Ooc@F' q࿼V+@z%d߿A@lX6:ܿl@<-Z׿֕}HrP@6ӿs?h|o̿9ꌼ~?:g̛︩?E?(@ё?ƃS(wͿT{)?T;Px?& uL9Uk@? 6J1?oFhݮ%?t)Ŀ/'Oq#? x9?:x࿠BӦl?M9㿈2??~܀俨vr?2濰4?>o?}翾w@D?:v~?0Jla?B 4f0F췿':j[??aX?oOܿ$mp;?`Pֿ.Fme?п/GI?gtD] ?Qqῌd3? .3 k.5?T"5^5?[fw|pKڐ?CƿVzgp?pzH WϿX(0?e{LԿ\^?pZ׿]=E|?}E~ۿ3 Q?Gх߿4?R;sU?z`*`??: G?icO⿿(/?#;/=X?݌6ZῪz^H?1#DP}?XA*ݿ\mٖ?ȌH0ؿD:b?B7ӿdzh?D&Ϳ,B?.ÿݱ ?H*,PjdLy? 9#0K)L?E8ɿ!?(l-ҿp?9@׿/y?!ݿfgJWTTcS}.pQ} *4P{dh b濺dtɿ&Xq翇ĚпD)ɏGhvwԿwSC|.PIS׿RQ6:] ۿAyl^IJ߿At8Hsk?E }?mC *?[t/cV̒ڥ?,K%5?XS|L?y/˥5?%4x|`r?U ?6:Pqύ?{ P$f?0?fX(1? aɀJS<ؿ@}pm?4sH?ЄE¯dPl忯++Ɔ~˟?\GDVʭ߿/OwldbڿH@'wihտ3@Rῴ!b|ѿ3P Zʆʿ4Wi޿jka¿ɟXRڿקRO$`/v|ֿ:}n&,п Nc1gjcǿZFB& ѐHC *%DJ\s?h?dZ?rvBƧ?T׻p?7YԞ?ƫp?-?\Gd{'?SR?PoR^;?^>?Ncd͆? 9?|4GVw?"9?nr?,?)?LA \?U1? l?f?h4)?&"?Vyd?{?j!*?Cߴ;?SI?:RN??9 C?lBd?.~ɏ?ۗa^?6=% ? j?I?:Bt?Fo,7??M!?HȗS?)'M?5ǿs憷@Cտ-m.JA@>ٿ?֕ȶпi0v@ 7MݿnԂ@颋߿G*?+ 7nT^a?~P.߿ ?$U6βrF]ٿlJ?7GԿ3l? пps^?Oʿg"m9?40RG?& ?\2r?L1?i-OF?"V?wIth?ׇ*?͒>!qlլ ?q~I0?~K*?1zC%f?؋хLT?^hMP@hd?Z_kTӿ"al#?cīKڿp!?BAkſΕ? 05toBm?4s:9]|?v99ٿCQf q?Qc?F-4 {J?S|D}?FA *E?J擮"Ynd?Huoi#?ZmSU8_Q?zx%/#?mȨf%'? f˿ZZ?ݚ}3?|!y-mLUg,"?,N-⿸ONa? [Ϲ? !lkǪZ?|e(@V*޿HZ@@;ڿq6i@bU{ֿn26?X7]ѿ;|N@*nm-c@6a _∈?Ĭ#߿VQ"@xO⬯1?Aߎ(wnL?(?ski?>츿sttCm(ƿң?&2?Ns.6?Ķ?D+?(|y?`|j?*0 ?n ѥ8{*3?3Tw Wп<7$տ9 ȁ80!ڿ,/,?nO߿.1?Cدe,?俰~s?+uMlO7?"ҰIn?^Q,翚!0:?2Ϭ޽g*?n%X^<ſzZ?~?[:Iܿe\f?R FԿ0d]t?wsvϿkJ?}!by!\P?| LlGG-?zAܰ=6?W[1$?L&Ԭ?,ǿDl?GwRпp @?.ԿB8ׁ>?85׿lo ?Ac_Bܿ,  {?1%,mŕYDh?Bdῼ_ⳗ?Z5jyNr?bB~0?d>Fy1?=D_6[ 7?S<~P w#?ڧzuῑ8$? ːFx/辶?oį-ڿD]P?gneJֿxY3?"qoѿT(_?!dʿE\ͫ?2p+x{nTw?k^˿$?v0%Xӿ82x?֑u׿PԐ?Ôō߿U k?2_ Vݖ">d Ixɤb/ 1=^F.0.dƿSz翺"edο,鿷Fquҿw~Ĉ տ<6bٿ/9hB:Xܿ`߷g?d??@0ɶ\? MxK?P\n3o?]̝utH>m?A27eӿAdT? =#=g[? BE:X;ͺ̬?#fZ>/q?.zӤ࿏ P3]h4ῴK2v⿦ߘwAVuސ࿩RGῂϬ'ݿà! W!OjֿWҿiO1&w̿BBhݿFÿ(DaٿI]jIodֿtA(i:Qп*`9WTƿBR{J-- H)h!v[T8VNu?nwٶ?Vn`?L?N{?챥]j?,?bc0??ҥsu?2`Ǒ?dS?M?GCo?DoP? C ?G?^b2?9 ύ?B?/3v$?h? J=?[,ʿau?pMO?h?N(2?1=?$9CAٿ?Vd?$ƿik-@%Oտ9|x@d?݁ӿz%?o-ϿG_ 9u?"씗 ɿ$%mʏ?0EH_?ž~?П@IN?fpu?5pڇ?`!m>\?ހ$d>!F4?V.gni?z>}ꊵA ?6F,Zg[J? ' W vd?Zƕ@m+/? EԿ3;y? YcdLۿ0%?D oaȿHOV?.ȋ1WKs ¸AX?P6+Bx?y~Wտqxgɺ?u E? $?we(?`-E,xl ?w~5¿ƈ-?F4,˿Ⓤ?k+ѿd?POտ?Dn^_ٿF}'?.Xٵݿ^1??3a4\D(7?Rz@//?OĎfW?⿓ ӿ?œbq⿼Q?pN6')v?ItQ࿒5?޿{C_?|mWڿ*|?5;9տ&Dm?WRb<ѿhGA?Aȿ"*)[?x<\޸5b#?]4`ÿrFM?ycϿh3d-?GqEԿ0 ?QBQۿ1} Q@藹=߿n簛b8⿴ Z7<ŗ<߿^Tm@ݿVZٌf ?ͱx+P࿔ȟN7?;}޿3&.?tkI濚g?vPG{忯%?yGH$m?d^ ?9@#߿u,?(o/ۿ)?O0WV׿?Y<-ҿt m?6&Ϳ`4p?#]ƿL?i(_/ ?8?²Ȫ?w$~?Ly?k]? nzxs?TelP16~?h~==?Qq'g?7УpX5?PxG.@?+K=?MLt׿/ R?hUXxn/ݿB?'ο!ZgJ? ؼcMQƔ쮏? 3lhn? _ÿ e(?T⿑jʩ?B?0X`oe??RM?z1u,Swԫ'@Њp,T<+ӜWf?ĆU?bM `] -kJ!t?zGWJ?2j6lz({ɿ@=`9 Ŀ \Pq}8i<˿α|x]&pzsK?X\\?8[&vt X`\G_3M ~@?J@WT"[ iQ?8в'$>7?Rd{?>c?>7[fѓ?ը?hZ+D?q)?k\G&s$?ol?[Ziy?B8U]=bQ?w i1?ZU y? ٥|!YI4?=d"A!d?ȑU# {{$2?N@L|G?eJ@?eI(P2nBO?18p2? n =O?PU q6̥D>׮?0Dq|?E ֞@J?\/`i?Ʉ4 2lŸ?a#~y?HŸyG?:[ETQs?VX>3?X(tY5cs? ̒>?e(@2J?)z"4[t|c?ϿRO?ſWAs^?^fی:?aM%ǿm~m?bOɿ'Mظ?5ѿ?TF dֿ4Vf*ǰ?!~FڿN?I9!*ӿTvߜ?.h˿5/F|?y¿@E?͢ҿZ% ?Aj3Eֿӭ?Ol4Oۿ]?Qc[߿nh3*g0?րlۿV?`)lؿ 0? e <ؿGI?ϋqy Y޿K~t?];MEX?a_,N?!qB.?G w\?%P߿9D?a?>ܿTj=?*ۿuMQ[?I^ڿ@?[06࿯? ~$b$N{b2?bxʬB?>L?g_._?Bq x?p̫[A5q?ɿ{?)lѿnhW-;U?b.ۿ73H?+S? `տN?9Pſ е?:z̿Uո?=v Ԗ?c5 D"J_??kc-C c?,4FEq`?z|\t9?ء^ƿ{ˑt?d x?^aÿHkSIһ?;kɿmgPU?nbο Q}?eœ9Ͽ9x?n*ԿNfըͤ? ؿYҗ?R?1I׿jtyx?a%տS\yhm?*@:?m2+w?ʈ_? )@64)?MBefh?b*JdH?pi`߮?;$1*oK?>WBj"&? Yk;0i?f?g^9?z?1SCU'4?tp*(l?*/v쿞Ec8?Q=?8%p?sQ?+2A|ǿFi??ŨǺa՜?=I`,{h?|.ӿ+2?TȀٿ6?{8ڿ>}o??'p{黱?dz”|տ,Sx6? ⿦,?|޿+$?LǤT*-?[oB 3? ࿪k9?@Xf ࿒,J?l߿Tv? #RIۿPzWI?mLNU.k?Las.R翵;?Dz#俶,=?׻Pʳ9R?]",lf>r?{mlo|鿛 -?﫺3{90?44c?9Q3R? -RR:?Ee/yn?2r{ ?3mfVKVQ?^BՙOO?7`꿃`?wLD75?Of ?_l}⿿`b?^v翨?,Gd쿴6?dɄ@5L?͂f kK=?7 t*T?.*M~%F"?2 !3BwsS?V7;"Ҟj?bwB2?2Qgi ?S󿆦D?v}Fi/?;Ns??=t-bISV!?] m׮k ?|k80?#T?WSˡPn?6u0fT0?zݿF?6y8 K{?> V?mL#Z ?f_. ,?p$-f?}Q(?݅6B4v?vH ￾xn? BW;c?è?<`?z?ٔ9X"? TyVc? >#ho?0tьiޅ?֑5pOF?^6l??v7&?Og]ͧ?;i!8>?/?70e?|}Gr_H ? -l2M=?c` I?F':8 5? xLZCnU?=]@|4؆W;꿐ͧ``?b<(t?lH2쿐)?L&9p0*5?z@jC?" rł?;!.fn:?+P "~N?Bj0v@T_B?sط迻04?XK`5{?G?4Cመ?# gT?'e|;; ?X{ W\?:fD9򿰊EQ?W󿈾Ðq?#+Pb|?NMp2xx? C"V ?1'?B\Q?y$$N( ?֢)=ϣ?&)| %?D5# DD?fߖ"} ?g:I?8 ?=J8?\/U h&m?>~v??Z+{򿠯~?Jğ;?KFpEJRgpVV]w?1 @FѰ? 6 Q?dvG`=GCū?EfH+ ٣x?nIr{ ?6iZL<@b꠿|Ch\§{HN[>ж3-fD{Fa@~Yȿ)GR=8R<5y뿸no!jD(쿒Nÿ̠l&鿼 wϿbdž$뿀.Y;˿ϥ9˿,!!&DZY¢X6gl8cV(Llƿz c, p<;5¿#v~¿|Hk[ᅫuB-.˿` ]5BrSп.*VH ѿ~E.<)Կaؔҿ˅k+[|+2׿&},x&6ۿ`)Yؿ4x뿽(YSԿ>E꿦ԿVl\LL=}Ϳ,@U{Ͽ2o9R87zſHP6$ÿ)1ƶ@%nvp=hq4@[/ g)WԲIFrq&?-k*d %Sp~u @jk?;hpWc?i*H pm?&B{c ?J$0?m8X b?ӅiкNC~?&?+~=辽?hl@1'Xy 0륿fmǞjgk?{\ 2EF?}pu#ӻ?p^.bQ=?Ջy8HlgR?Jacwғ?At ?[CjG2?`0=!?Ra8ev)?!Nj?z H(eqt?8,0 )}?++M` ?p+a~Tn jqv?v''?(efq?:n?rH~mh+i?0Eo%ӻ?Q$9x|?}:l?vBo?Pu7h?4_PS0\C ?>}? XCKK#Y?RZ ?X{ʣ4;a? Lګ?8ת]Ni?X -ow? #e:Bg_?`굠`ᓿ l?0VZ8Aey R?p07 DX?@]dk?@AY{DXL`?W??Lٿ2R׿?/ kT[޿@,IcPN俘'ݿ"̚#޿,[UW XryۿZ.#gؿl_[t< Dӿ`bȾ ׿#%-CzԿ8Cuڿf,BֿfT޿f{ѿn%oܿ4$ڿfowܿZGx޿;H߿YZ^t׿*̩si߿G57DXۿ"MB ؿ ޿{uWԿjܿ&{weпmڿC4 %ҿ3N8DֿIf#ֿ4/ؿ8C!{տFF<ԿǤ ӿ|aϿ|^ͿTѿu̿Z/*dȿD-ѿ8,ǿU ¾ԿBST޿=;X2wZ0*ῂ^C <ǿzW( mѿ %׹uBV{ t#\[?eVm?BK]-v2AjvH1w6(SydהdITVeq m?J?ykn?3 ?me=?) ?Fz?MbAs?ފ&?v|.?{?M)U?6sA ?a? M?#N?I)qEd 04i ?8T?0XtPϣF#~\ؑ_ r?ׁ$s0l Vd!()SĿ*P&Ŀ2 (ÿ<"[YɿUR̿Lǿ5lϿT}73`ɿ$lB!ÿ>H Pҿ\ɿY ׿:|~̿<ïԿ9ƿ;ؿoBv=zk̿BɺZ~NпXunh8|_ӿ[D6.jԿ`565wGӿGRͿi7HH^ƿPTkIĴ{vĿHJGWS} Op? oҜ?@?Ȯϱ?: ҡ?O*?|擙?sP)?Rc?ž0?nԷUt?<2?Z-?_cg?Cl,a;?á ?SC?ޓ1??&J?f4թ?-=?,vS83?C?r#?ΙF?2d-&?~ѹ?,2ؔ?p1?4?}rN? ?(o$w?`?Pd?Õ~K ?9L?wr?kk6?HAMX*?)?e?6#4?% x$?Ŷ!?G}aoy?^ ?3b\?>^?km`?fb?NB?e*?:?.i?q'5k?|_?KeBl?vk ?QzPDD?q?$g?#l?2@v$?4Le?3_-?߲d?l?LK=*?XňFF?0|/w?kfY?#^:?yzaa?5[o?},?ae ?I w? =?f?(@V?[?ᴔEi>?8qy֮ᔿ2?d!?2?:c/?-?|Xy2?H4R5?(:?q:I-?HMQd? z ?t?o6?\a\?^p?k ?]8t]?"?.0?1bi?w(?G.K?%eY ??5 H?c^?~??Q?x?uN?1?qŸ?:wָ}?d B?R"?EV&$?zY.?P@s?u[E??i?ya`(c?>|RP?"%o?-H?Zn?\L?{F ?+ ?h?|U?ٱ?+=r¿Ĥ?t?eޚ?X@:2ǿ~>?g˿f? !.ſجh?rMX?`niD5sfg?ڥEx?_u/&B?Bl?ȫfZ?j"w?^V?[p?P @?Rd Yr?aiӇra?Z& ?-^t?h@Ŀg?X˿q+.?*%aY<] ?H$rb˿IuLC?dO$NjѿV?`Xuѿ|z?ԬTտ;"޿*_?3?|tѿ[sN?l 4ҿt>?IԿ" ?bֿh ?6o/ԿTʵ9? eMPҿFy,E?׿Z"&?nE+\s׿oY?X |տ ?Ё4JԿ7i_m?R#ӿǴ?^(FֿC?B$5ֿ݆4?eM࿯?`[޿,*o[?.>v࿻H?6&Ʃ6ހL8?V؟F"3ⲩi?A_7;?(?T⿹ 5a?eשw⿴?5E?WЬaI?w44?q|㿚e'9?>u o7F_/?俊@ >!?*3,G^n⭌k?V$_^揞?TBz_bΰt_?,4⿟-% ?ͩSܿP?&@&$ ߿n#?U|!߿p? w]xܿQQJ\?§~RڿIk]0? bٿraO3?FԿߊ$5J?݀տ軈?L?׿GNJ?.{D|ԿmEw?vHѿ:?Hο s'Q?N,yѿ-UR?Iƿ,۵~}?~o}V¿Pmf? Ŀ{?Ѓzɿz_ 0?$>ʪͿqK?>*=PͿYA3?z¿z=?P<,ĿF ?K6?RmB-??$bSȿA]?H2˿&>?v%yϿ+M]?gȌpҿď1h?{Sѿ+lL?)ӿ\f~??rTcӿVZS?I20fѿ`\?b&ĤͿ~f:?ccmȿh,;?#^п6`}';? Z݌aѿ[:)? H$, ?k^ i?"mR2U?Dz-RX4V?G.XsrU?p}prId?Oɼ|Z ?m 9 o?b~AMR*f?s Df$ſ?EEؿ9kY;?YǠ?h鿶hUd^?,/_I`?BFFT?O% gW0?(wb,s#4J?lGa-6ȿԫ$`?+\ཿFB?ȝj$^ ?@yE]lX?b 7"̿g?ZOƿcg?@]bͿ3ŽO?ԮϿ>iĥ? HPOҿ3>@ x?Ld׊?1x@T -ؿM' ?uӿi%9?m-տQ@NzEٿi,(@SBwݿvv??ڛa]ؿԫ?XM3Կ[x?t\˿\? O1\j8ʘ?rLRտw?tržۿ@&X| ?t"޿ xC9i@K-^b>_)&@q`Y"IO@2as)"Iն{?&4'0?bS\M4b3AgT\<repdwAmoG^cpiO?ö ?qU}=!,b7wRd+hmWx&pO?ܝƋ`qO(=D?:K?zݱ?վg? : t?IV?(=>?0i$?k~ ?@X?tT ?0m1? ~?HE5?113.?w ?1[U?Sj?ލ9?\ĉl?x]F]F? "?517M?~ގ?>/?z-Ƣ?qD?E?M?X^!?PჂ?]mG?G$LUO?[̑d郫?mtɥ[9{lepӎ?XJg$I~2=?|%&gH?0*BT zz?bSmPU?* !aoZ?v%:0ވ։^@?!񷴿iYG?D~`ȶIV?ŻU W:b?)ZEyY?+(x̬YIǾ?wT}0?@C m\aXz?A@,f?{"B!d/×? d u-z~?ts\EIմ?ZSɄP?GBINclY?do[z?,k!l!B?y`>ZKʕw[?uc?V1eY?Bw.@?8t")?u/tua?`[@%ɮb?1vtڶӑڳ?;zA Їĺ?$wºSʿ 4x?= dſ\%M?fO%z?@Hw@V??;6T=v?]Jʑc'?:ÿ=\5x?‰)l~W&v? iuȿy?E]^纁ϴ?+lǿ?Z"ο:?HMտ)Ti5?ԝؾԿdEº?FJٿ˾ ?LֿLRީ?<䎳ؿ?Կ}ZT?xxп'$?ٱο+ܹ?ҿbjZH?8=*zɿu?ubĿz?,$w乿x>>@G|sĿـ?t`ɿc|?m[οh4u]?BjSѿh?p Vӿ}[?`ؿ@0s/nqҿ@1TtSl! οT阿檊=˿|+ ~DwҿУi@׿Ψ ey?K8E% ۿaϠ?uԿ ?:炳ֿ dž'?_gٿd+?LZ ݿ:ɰ>?g߿G ?6@y|?ŧݿki?bk[5Pl%LaC?(Y)K⿚{i?vK: r? 㿊6/?}%RS j?G%/m/?Z@̲޿w?q4Ὼ$?)|Lǚ?;⿂hPd?FӼ;2Զ?8|ڿb}@? Y޿Y?$Mܿl)?dٿx`?C2AӿV nIo?6cֿϬ!?ֆֿPn?]׿sP?3wAoڿ4L_?k*ֿ:ޚ?I_ ׿ZKj$? ٿ{}/?RʘjܿэRd?ڔW࿈0?Ʈ{wA?0Վ| ?LK߿"Kyq?HYۿݻ?sWHܿc䙔? NÁ߿i3s?\s߿ԴA?8^ ?/W ¤?WOBFqp?qZS [9!?lEC&?h{œdr俀%mvw?G9? ?ǚ)!h?=DU/?"-m?⿝zDc?M2n Z?~[(`?+|Bєn?kvdY俠`z?8fCF?06Ĵ*?wck?8PB ]~S?NVU?k n>g?ڍJ)?/dg?mIm'?7YLk?@؍;հ6? x2s.?:X Ed?vF37 ?؉ů?L /@H)?JN-ikJ탤?iM:D㿥o?/O20{T?~_"v(-? -B?43u\'l"#Y?.῟?iM3h)?gQByiMdҘ?0@⿀U?3/ɤW?7r4E>?W|</k!? 2;C?R?#!m ];t?hf)?tP~|'?Jfr.L P?wfMῄբc?il!޿tCj}?Ղ:Ed? T޿_ k?MW;߿I ?F޿ԉH?T[ݿn6?[޿@?4j6ݿ;?9G>oܿ& ?7+ۿ]?Ib9ݿrC?Yٿ*?.#׿oD?𖼗Oٿ"?efٿ/c?Baۿ#p-ݻ?Ϳܿ8?%L#׿B_ ?MX տp2lћ?r.ٿ#R$??\^77ؿ=uǵ}?TԿs7|?fqԿ.?dֿ>?eKӿA̽?'ҿZZX*?l˿@P&?xtWp Ͽ@$Z?FJ݋.ʿ 1?əYd|Ͽ22?!YҿA\'?vܯ:ҿ}? fֿ<ݎn?R&`0{ֿ  ?Ihֿ|L?0gڿ@ ?xE&J-ۿK C?Pm/eݿB\?6xGݿ^?{@nۿj]?\xʂֿnx?=HI?hZҿ ?<˞~ͿR?gaѿ~`?\jgXӿYXɅ?mV׿TL\?]pv^տpx?ӏѿRI ?Կ~FԿF.ʿVD?e!xпAw?uʿ+˪?)8ÿ1ކA??OU&ԺxG??<>?1ܟ?G^ƿ$v?-ȩȿLS? HYͿ{$?ՌfͿТk?vԹ?ȿS!?gM$?!|7&%p*?Bkdb T?.D&?lm\ Ru1?֦Rϓ?sN, ?d?b!%Ol?Rhl)1I[?!0Xŋ9]?A8o'P8gq| n?gtUè?-)P)?ћEU6䮓Ț;?N/#zʽ?p8"Fd?Hߗÿ0&=:F?4X|ʿ?3bϿqw۹?d<(qUҿWUT?F=ۿ>`y6:?C1?hÎcֿ)f!?GlKӿ`(U?G3YؿSԋ ?EzKB׿4`?oпO,u?-MX\N? PjÿM@}4?bB-xr?4xrbѝ?ч?Rae#yz?m斿TZY?q4ɖ3ɿ#o?9pӿ872?&p畞Ģ&?L0?H8ųd(3r?6H2@Rs?$ɻSM_?d-ǿ 刺D?zJLÿ\|ߝ`?OĿhzB?0ysg D ?: tChċ?f–*(?*N N'?%0e?PX}3r?m_hƕj15?Ww¿L*O?԰hhɿ J?5{WĿH'uqE?;uȿⴍ3?+'&пk@M?m\ο?xDѿ ?zzhҿyB?*4ѿb?u˿!qV?(T˿Us0?f0Tt(˿c6?uO"wϿp?J`jҿ!R?LI_Կ#pw?Pm͋׿(R?fۀ}ֿv?{Jbӿi ? 'x?Կ l? 8ԿLs?vd wտ࿺?.RdֿCƷp?eh*ٿ͟y?6/X]ؿfs?`W5ٿ2 ?4 mݿ'M8?"DžܿB5"?|,ڿIr?~~F΃ֿ?[_#Yu.ҿ}`P1哼?zvzڿsY#Z?{)i~ns?Elo?5.F,?|?&h+nv?:Q}]8I~K?$"޿*O?~[?08Wd@~?"o俌q?nW;߿ve!? #,NPIQ?YG~|濉?{bn ??V]쿅0WX?-[?Jן ?r5GX?"$#g?=zMϩ͗T?uPGy%b޽D?I[ z5ġ?27/RAtX۳?v\_>?ŢR "[*2?BŒ[_??H+? ?sy/bZKv+ ?-eW.=6 ?a2t#Kef,?d~N(Pn?s\ ̊$?D$|NT"?i ?ᅨD"ҥ? q|?&^ssg ^B$?zYz쿜D?%VEfOxRK?WS1?],|꿅ND{wU?0`鿨pf?NZ5\?QTCv:?[DU俬P'?YgE0翾냢?E(翅lM ?*.C `A?8!76< ,?fG?؅m4ͅX? 促Bx:?븊 ⿖%22?g~oyZ?MG?/ܿ6m ?_:xۿ ?qvRs/?{Zŀ?Τ/ء(]?q$ ^ ֕?3x濴h?[@?pzw|~9?Û<4P?1iWʧ?x1(YM#?eUU?-S@6@N?|F DLBB ?U d^*#?,,տ2r?$\ٿS>A?߻{,ݿͿTײ3?'0ȿ[?^S'T B-:?[Rÿv :?],[;?HN5bڷ RL?.fprr;/V??"ĿmY?j]A˿naq?򍒩ÿIB?(:A˿J0?Zmѿh{YW?Pp,Ac:Ͽ@6cc?JCr?zS?xijZgĿH{?av¿)?uҿd c6Վ?6bÿ ]?ry~8 *&?9zƿ9k?mFƿY T?ʗϿA(p?0͏fͿPnʚ?h9̿0V?]IԿYN?,ԿΛw?R{_Կ3?5rK@׿Fd?Z^ٿ4S?3U0%M^5?hM>VڿvRj'x?|ĢeٿخH?úcڿ4~/?,>]ֿl@s?d(@ڿ P?+7JտjA_ ?}=ҿH}5`?{wҿ74^?p2jϿI|@-b?Lʏ̿1E?ӿ `-?<1Կl?S9}paѿd~qK?(п|TW?E#Or9ɿM4&?/&l¿zR;?]?Py=pC"Z*?\jDA 8[?Fܿb?oڿ>giz!?XY΃R5ݿ?n@ ؿtJw?UxٿL[?Q)TۿFs>ah?@C$/޿j?~*޿ M?S3oU_3?NL*ῦx&?NkkJ\k?#ÔqS?̿vVL.ÝNa?Zc4{ 㨻?L7lP锰S?0"=e心\?!ow52俹 ?Eai?<bLS?醛sQ.NW'?8cƹa?q_e|4?!ZbA?|lVrh快0?xa|k:?WvZ~/?fmw~迻q?T2T7u0p?3+8|?;UL0r?X4 o?*>DU?My;꿌)x,6?.7b=?+@^a?:Yᐹ ?t鈡.?L|鿩3>? NP?AeT5:C ?ܐn^LA?h8俠7)?+ %?b,9#?o."Z?DU $HP;?kk!鿡?b~i^x?MQ:G?l\ p?.- a1?YwGNDk?s7h*?aCq=UAd6?$w<:ta?zY~"eߦ?{"]K#)_?XhZ𿖚9?IfrN&j?bs￶mƣf?ؑ&eQTʪ'?,-rl$g?pcxl?[Tw￟?odDzQ?prc+>?+/?H%Z;z 9?P`DX/?%{#?*x$(}?|6:o(?Zz6y?ݛ-c"ks?bV, t7?䌴\2I?.R~V? Y4RY ?p0閅}2? ]e~?q"#u?Aɭo}c&'M?$Ci7?* x|eC? 0QV?bjSx~0)? K }?EH4t.v?Ԑ;3\ʣ5k?-~?ڱǘ#iB#?>2cP8#]? b}f|bEu?>r^^?T7H {w?ztAd?>qB6]?)mE\b>n?,I,q7?Z7ڄvBܳq?ZU9aob?LY' }?%yRiF?X;q?ʿ>f ؿ?N)Q`$ ?!4Qd.? U?6?]翔T?]3AD:=?9)*4o?i.g \XaO?&rmhA3?7y"tYATg?(ӡOWl, ?꿷N3lp?RϯG`}?XX%쿖<< |?ByBM?mШ;PN&?OXl쿆yc4?l%DRiᅳ"9? Ǐ?|q6,?鿣~W?Ѱ >AU?{GVP 1@?F O6I?@Ji&ձ?7!uu~y?~Aw {Y>?x;9=v+Z?I֗vcv+?2{[2&GD??a,_ܱ? r#ru?!<迉|nD?Ϋs{%ʱ~Q?ms]W4 ?ʬ'AtZ?EOܬ"ʾ?щ)[#!x?j俿?,(rM<?Bl?MKD&<{k?(.mV?5Lp+~rQ?}=-M?V4㿳Y$?gBh7De?!-AῩR?+$;޿elК?!࿣R:j~?jFݿ?"߿XkaX?fGE]ῗ?2Cbp炙?U⣁aݿF?Fa޿n.?q=޿&y?X4ezۿ?cۿ`u:?JY#ؿC]?,3ۿIXĔ?v5CԿxں?D23ֿ[,,᤽?2`ؿ.|^Ec?'OٿB$T?l5ٿg8M,?2<^$ҿ'?ҮԿ(?I\AԿfAI/?^xϿ)+ ?glÕtοrP?4޸&&jΣ.?=RU'Sǜ? T |Qй?͐r.Ŀ0g6?`fȿ0Y? % п?Ț !ʿ'?4ɿ c%?ӡtSZǿXE2Ԧ?5qq%ѿ=ijL?(w{ѿpª?\[׿|g}ɮ?^$fӿ.}?LLѢп,j%-?J տ4?pED׿%^q? *ܿ bY ?heN$տrM?Zڿ~A?Xlh{ܿ Q?{\|ު?&(޿DL?&x`޿OZe}?:zeտ2C?Gmڿ-?F{rݿ(Y?xR|u߿n r??ғ#4ldJ"?QD>3-?p1?^w==ῆup#? ;9luFѨ?Oc濠;xkP?~;kDpӴ?h1Ht ?mgHϝP? Űa P?}_U?qA#\7?W㿸#( ?zg(A(} ?Q+pқ?@6Gn.y?>i'_`l.?qj,I툨? BV>#س?v14-?WX߿_?i EFJ ?v޿Qkb? w,߿pv6# ?6Ohٿhso?xݿ#4?rk;'࿐ ,nvM !⿀;Ll?8}gJ:Z>?:28y`GF?< T俀)]? p~忠LЗ4ȿg泗d\2%lƉNX4pDP hTck8:#1#Qc2QFR-Πms?=v(R]zsaϰ>鿀`e&h?I&G(@m?'Չh2_?x7G@P|?4 Px$X?8\ p|?:o d"jhǬ?!E qpc[?*I@o?Yh X.?wy {@D?·jB=^߸? pE,Q&?j=e?9r.y?^$?.rA졽?gkE7`?W݁yNfT?<8,GJ?Ou4`eo?!Px?(㗙lj_E?v3EA鿢@^?uX6:m?v(Q=2#z!?#H@Du8?YBDfu?G?Vgd3?G~??Z@+.j?$S]X*_vi?g`:ԇ?.My;$?^?k#M:?`uN2b(?zr|c8?'OYV΢?Zz??l.|.w5&j?kryYn[dT?orG_?c.'.Y?M{Ht8'Շ?~J(ׂDěߒ7?(#|?/&ۛK?,h]^ ?(y!X?Tђ?fo-?<&x2¥?$=ҤJR?M>eqL6?ШCt9?:xmWl6{i?xd\놸-?40G^8 ? 88UNv_?kT mO?>M|&f ?.b[m?GQrӮ^E.?g$Yu?'S ?$L|?t;L^?dneP…? vB#|XLE}?QTX j9m?Wס'?ةp?fT@YϹ?Fktg)n?b~ED۪p\?*7m8R?f&Lm0?qKs(?w? @,q?EB̟O?^KxsI?? Ȁϭ?)hl?s-БLӵ?n<:𔝌/?כב*Ř?JӍVp2?ެ)sž𣉶?_5*@N7͔vz`<_"iϗ?lY 0qtbӛm"g4j]r){0n?SA6A`? `͹?RiHK?db|1?rTŎ(Fh8?D_(m_]?[J/W?`? :?u`2f3fݼ?fb" d?l4 2ҽ?Se'XĎrV?\#r}[5?E[p &?^Q.QHyd?\xP)֕?YmGERN6\gꐿx4j&D"1Ȋ^X(UyS0"A%8ddCd^ohNڜɱGG *뿰9٨ꟿ&$wU%ީ}jr@`X(]ڡX$:}c֖X翖fÿ4m6(,ÿ!迦 ϊĿ{`t컿F=V5,|籿ղ?]V;|Ia]Ŀ]<.[ǿᛇxTHqY˿̄9t EIο,r鿍9U ѿL-.kqͿ?c'HEG˿ЄtsPZſ0K=:쿐<7Iɿ]L'.zA ɿIJY6 rſHqs4^,ar,*q ÿBЄxst3@>r¿]~RB4:+ĿROA-.a [l-'ߛŽPX%$eh+ ?4/nji^= S>mr|p:"X@#wZ4/t$ d₩(oʿ3^O'뿶{ ο[^Kο2!c9 EпT`nh꿊oNҿ #ouIWѿuN*1qZ׿>I׈ LSӿp.쿈lMzҿ,D'tw2ܱ(ӿI ׹ֿ\q鿬ePNؿ#鿩,׿R˖`迕#4m8ۿ 迩nڿRPxڿ/<#i꿩wdİ+׿cCu;f)ֿƋ7# hҿ;mBfԿGx|v*տ*34쿼I4ѿ%OEѥ8;пM@1o|` \ѿIn";J]c̿x9WX>[ǿە@lxb_οA F -ѿRb[@]3-VͿ ȟN ȿ$p:`ey 8o.Y8JdiʏYH_%xA|/rE$]|oc@ FyJEhSFH޸@H%S'Úi<  7zShr-2c !G˦D載0&kKk.w6U/D^xgjÙ?Y KB?>XvTt!ぽ̡z%^cHz}E z@ʈ?v%)?=(k`w?ᵷyp85V? J[BM/?GM%Oz"@3?0UMF?+G`Ò?: ):?werB?jiCJ2 ?L(ג?}y?Qpk D?_SzJD?aPL_l\S?\?2ƛG?wR:~"?h2Ηvk T?:cyp6?yF N?Ie!!W:&?Y#pJ?H!\]G?eYi_c9M?Ҷ1V??;7gp=?3hO%3-?PװN?ېHT*?Bky(78?!^iY3?m'K{?=u)v?6xOK2?gDҽk?p~Je ?~6W(?nbcY@? jQB?uYBKo?42~NbVP<֭,?iX;?]AU+e}?po_tn_8?Fwj^? T>r]??uDoEpg?#>Ww%ֵ?rDrx"i? e{ԡ?|7~-?͚Ao?f?`5$T;F?cGe?(W(? 痿=UZl?oxEײ9?8͂y=rЄEih.d?Bmȿ?冡~?Kÿ8b?(-xп0@Kx?;gmm3?m5n?..H9ƿ pγ2dtczeܣ?Mʇg?ٚ?f?:K\d?!5m?@^@}8=m?0p_B ?WJ?H? ? ??h'?mf(+}?`k?#nx? ?#`~s?(9ޙ?'*U?>k&?{ӫ?>?G?8ͳ%O?ԋT)?P, ~?uGāvD?5$? &~PLt޵40?&45d?¤?n?X,?5=?ڼ?@ *?̲\?@*T?T~_*z?U~5?s?\C⩏?jm褕]_dE壿Q!\͵ODC8}鿠p_f)@K0Tqo x:g('?&激Xp?^91&j뿈,?:0N2N7T?\je~J?Q࿐" ?,Ip:cYݿZ?Hܔa ?F X!WZ?Y$،pO?zG`? 4! ҷ?-AǂHFcu?jب hB?wD)` v?Ñ𿈿@ܤ?{ܳ?@fX@=_???? ՑBd?2u !MY?>"ܜ1Y? w`>)THHJ l{^HTv-;]\(e9c:o#  S=Ύ~6[+0EDŽ[FQl0̏*@_"?#'p#]?Db##D$㭿Lb%m`6V Æ!Q>e濨DV y$g⿚8V uqcjRbDH۱kLo5hdʪXEa!0忤}I~Y俨qI%0\髄=2{$Wؼ([+뿴osd <뿒"!?ÿ]l9ȿ5翊@ƿ|忦:^Jbǿ;0${v̿72`G$ѿ:j4-ϿdǣMv*Ϳ~b%.{̿O@uBmtɿ'h??џaͿjK>YпvO ο, gcͿRؽfþ'ȿڙ@nEOȿ:qDeƿo /$]oڷuW@￾qd?|Z)T¿z8gVJʿ)I-(ǿY$U쿮ꁤQ̿.3M\ iͿ=ŕTͿ*YQSпh &4ͷԿZD6K4@tѿt鿐#Ykҿ1=_~3Q>ֿhAmLkEؿpHLj$ۿXTxNZ,ڿ0m MYkgJ׿@ΚR[1!VRֿVTK=Jxտ鿅b1ؿ/hg ؿ_h 翄ܿlMWݿ EFDܿ?:6 j{޿2Ƃ(p/࿜XL'@j`{Ue.&.࿓6QB|ܿ^Zݼܿ~ޡO'#Mܿ[V ek >]Leh^߿(&俵DZ࿣WJ<omGD̬gῬ >nvɟ?o߿GQjGd߿տf#ڿj퓰ؿ3%ٿ{wە6ڿSvؿ{JV9ؿ)5f ׿9jտނ?9]ֿszF׿3ҿ`ؚ2ֿ}ɴXпʁEӿh{ҿdѿ!gYӿ))ϿttMYѿ/@ϿW;uͿoҿ. oпS~9ѿ&B8̿ IoϿH>j>ȿYP.j]ȿj-^rǿ̋] ,XKϿx iϿPGHĿYX<ʿQez¿$a ԿſAm׿~Cɿex&ֿ;8&$˿lJ6׿80пM7ӿQFȿm]RԿOk?Jʿp<տdv3οJNcgۿ`Աѿ&hn[ܿ`˿8%͎]п(#ːPѿg޿0j.пQY{7࿨ZFοT{T⿜=xɿx>ٿ cſC߿<% ʿbJ'տL$߉N տJǛY±̍ٿpKuۿe'jXOT߿ٞ¿pI)~YBɆIp޿AѲQCǵҿd3ldѿfx<(־VFϿIF! <lGοO72 ÿZX"BIݳǿM{iĿW渿P9rG._8zȿ>/ϲqm( f[̳騿r іϨ|?a&?"^TD#P !El媿UPКl]k%!c8j`יFx}[ޜ|?E*y?9-?Ҍkx?aĩD?$Bfp?XA?C@?(qv3b?<ƪ?T?3_ε?"?+׿`?8ش?XqT )?Cg?mP_?^9z? ?i?W99m?VV?p0>?@=2L?]Qr?2Z?B?ڥ_f$?v2L?L(?zJD 8?;3Y*=fJZM#Ys6霿S|Q? ̙ P?ZY?9?*=?Ij՜,?\> ?˪9?spJDe,ل3rYHu'0V҂KDDFF=IÀ;g)?4`#EÿvQſ>kQˑc̱\qSc"Y"A3Iq4իm:䶿@?;$=5<\Y1Bÿ=0PU ȿ8K7̀yĿ[):gĿ{Z p¿5{^*8Ǚfƿo%4wɿ5˿Gʿ$3ͿȳȗdϿf@ȿgtoͿ9IĿ*ʿg 3eBeÿdk14Z|"ǿMw7 ǿꉺ8п.gÿ6qQοzURſe.Z:ҿL?KUqȿF=P7~ԿҏɿD(oӿ̿ywɕ@ӿ8g~пmȋտzοa\v׿7*WͿhٿa\˿%+yA0ڿnWcȿj׿2{rпh\{uܿ5οR8޿*YO_ɿۿMſؿk0ƿ׶Կ2ĿNLֿNϏ¿DKe"ӿQO; ?,ѿd $徿$5&ҿZp¿2_B}ֿV|Ngֿ5Wfusgտ<҈@G>`O5ԿAV#cѿrf=yar-ѿ}_9VԿ+pZ>8Ͽ86Dk -ʿDo٨(@?wLȿF!)KL_KĿj^ tIÿJMiS˿|yC3|u"˿q/B-ƿ0s}K2ɿz0Ӱ_ϛ0Dk³wOLÿ_Gh`qNC_ %_JEl?4Ebԭ|]‚霿~nd˪!p 㨄qfe^?.Ip?/'L煯ÿЀPWX*{ꏡ(G:=1LaLXt nοB[u11x˿iQ}ՓF؈Fq^I# a5TA(NBimz5Đ?IbR?8/G%Z\?ˆ:?j.te|l)n?.6 n) ya~nɲX=Ƙr&y|0 =d`'BitHV*[?(uڨ?1?'!?;?Xc赜?#oQ?BC?t({2|?;]"?FZ?Le }?b`72?UmK?P @{??P5?Pi4W@? h?﮿v?%'?glJ?Nh%Y+?h>?<=|s?75ګ?pf~?\#?< @@?<{M02?zR0?g7?i@4?qV&?`e??@$?G?6?.?;,3?,ɵ?%7?VѴ ?0qTQ?oP?nS]v?p͜?.[S?a"ׯ?º@?2[d?BA?^^nGȧ?EŹ?Ht?C|?mH?TEX@?b@?إU*?a^(3L?y-J?D?Qi*?%4 غ?e}d?_ Yl{?UJg?L1h,? Yu ?0Rw?ҝ&V?$]v?@>?xJ?w? P ? ?Xż?v6@i?^??=K?,pg ?"?~8??B6?ltgh?W,n?Dk9?f_2K?=G?mL?(<,?)Y`"?V/D3?8ײR?V"?b^ ?T*4߮??%!?QEȻ?9^[? A=?d}?k$w!?ȕj?P%f?n#? c?xeC?Dڦ?DS?"5?JG? ? Sd?CB68?3,/ ?仇?4?N)Z9?Y?4/? ĿqN?t4_?\ܛ@?{ ?.t5v?ʺC?#!NZ??V㥧#?rcKP?$?qP?l(?TXr2?op?jnu?8HAf?5?8@;aJ?? ~?P3.??jY ?T@?|zO?=i*?5&?^!8O?jsn?ø7"?@?"KG?}?N??wN?SE?6?<0[?n??s?NYT?Ya?xb?!G=? 7bh?9?\\Y4f?yQSo?fNQf?˒P3?/R,?6 s?тsu-?zLUʌ?6B?g;j?O h?#t\h?%?}@?f,)?Vkd?|]?҉*-?xhI?bռe?lv(-U?N'nZ?qp?~0?W?dSU?TA?F? T?P7@?]?K.lt?ǒO}?_ ???N7?>:W?E?5d?"hdp?>ls%PZ?*bo?q?V2R5 ??5 ??S?8{Z???xa?]?d˜x?A]?8R?Z4v?]\a?Uׅ?V?ف+bZ@?l)#?Q?4!4r?O('`? eWU?6g3AP?¬}?T6??Ly13?b ʒ?Zq P?W@H??j?Ҏ?({?^vD?z}# ?lo?D%?>H\? ҀH?M?@ m?lz{K=?/?6q?gaE?RHI*j?*]?ijvQ?l\f?&ta?r"?Z ],?'D?VF?Vf.s[?̒,=?Xe?1iqv?g=<#?(U?,bD?H:jƷ?scr?݆u? OB? 1@D?9 B:?;ր?$qZW1? agt?!n %S?N#U?ٷp?~U?h?1?B,Vy?.Y?ȷ%?Ph?T?(>?juO?@-1?z?ȍ Mܤ?Uŭ?}F5?i@?޲Eg?`?@6?R?E h>b?Ї鸂2?(5a5"]?@s?#?:/?ku?s(?݁?ՎFM?ja? b|?Z?UE??w꩓?wZT?Rv?нQM?@5F?1i?jH9.n?ވ5?zՑ?J>;?F?>F?tV?pG$?)?^??{lP? Z+2?.?$ro=?{ߚ%3? mN ?UY᰿>?0ᅮmdM?P Ťj?,n!%?9561lyh?YSî }?@"Pgx?`ƚ?8%ſ Y?AĿNS`r?8b ֍d?@=؅o3=?@<Ɍ_(? A ?+?%q_v?re? n?=u?ؔ 7?m$?~4?²eC??tw?fZ!YV??K?%_c? r?+E?X?8&U?`H?|r?#1}?w{}=?9:?$05?iF6?6?Г;B\J?81D?7-K.?<Un?8I!!?ܟ?`#y0 ?8:?P.X?֩u?&焫?^@$?4eFF?i?kGp?  ?-?@K̒?ڹ? p,?`Yy1??@ i]ؿ]c?=W׿d0?82QGؿJs?rB ڿt$?n.{տo$?ѿ `!?'B{ӿZp'?8 տ l?"տ2 t?dfŰӿEC& ?&̄&<п(^?3/LϿH[C_?0 )̿\R?9ʿ-C?гkͿ[)?h͕Ͽ0w)?#{ҿɻ?-]ѿn׆\?2jпq }?u-ѿMG?!i>ҿ%? mZӿK=?ҿ7?wr7ֿVU?Eֿڠ?iտZV(?6;[AW׿y,{?>Կq@?: ҿ=cy?@&*UϿ3??6g*ӿ6Z?wKӿN?H4ֿgR?o>ֿʜ?_LZտs?S/ֿ|y?yؿnM"?*0տ3?&fӿ\?'V&zҿRsߒ? | ӿ:fN?}  տBzPփ?ҝ$)Կ1I88?n pտnSa$?  gտB☟+?" qc׿ֲ?QB1׿,9q?``ֿ_?K9/׿\L3I8?takf4ٿt9?UK8ۿcu?0|pؿͮ,?OVL<ֿr$4.?e.׿6 /?ٿO ?Y)ڿ\?Xp-ܿ(p?$ۿ{1?GYڿ?:o? ʲܿX6?z3ܿ\A.?߷bܿs|F?\ZIEzܿD'?XCQ޿7b?Fcm7߿v?~^8߿S!I8"?[&ܿ5aw?P{޿3?6>@Bݿ|dM?=ܿڄ]I?|u_ܿ?}yڿe؉?H?HnCI]pڿƼV3? ؿGL?k:3ۿY%Hi\?"-ڿ_X?A ؿj0v?ڿG }?-wۿkMt?&tݿZn? O1޿RM`?Ae޿c?c.W޿X$Z?O%Yݿ fA }?5ߪ w߿@ɣ?4z޿kI? I.F0 |YY?ݲ߿1K?<9Oz߿TŚ?Ձ[Q߿?p%T߿\=?3AtOӟ߿!?ss۵^e?߿Q@]?04K߿[+?c E%޿qoDP?W|޿5D?޿,QYn_?PCb߿sY?b>߿x;?nk:J?y z߿?Tlc?q՘qῦzjJ;?Zb4N?>2e4L)?U^c?`x:}y_ɠ?>{3}ԏ?T^ -D3?\B#㿔 9?L1修4?y=f1wf?%nE+{J{?l㿲؝?Tu5I?b[ ѡ3?6r h:㿕?0ojh?x1n]-/?$O֚HZ?'w4念?WP FQuֹ?h"G?V{  Cj?V<Ѭ{*f?A"DS忒#?RΆ俍k@?Pcd16?k6sFf=?(^sz}ٞ?)nXJRh?]|#j⿤f?qCM?d῞HIU?kٮUs ? `9g ?g.tр?nݿAU?m\)yBQ?[m$ܿbsɟJD?IX߿LB_\?-=ݿ> kw?=y!a?(|࿆W?rȏ?:aCd?࿊dl?zԘ2࿙)o?%S{߿{m@?߿V?~xO)?$iQ(&?.߿#V??,l+l=?9Dh-߿+|%?@|ݿ{^?rݿPh?: xSܿĦ_ m?Y߿P?)́ܿ?"vkۿ4%Q?IܿBϫ!4?<b'lؿw? @rٿɆW?-vٿ4U0?V6b^ؿzKg?R!ЪBؿ \?.j ׿xU{;?TȐMֿ{&%?~kzֿV?ؿ6?`\;׿]Fׇ?E>;mֿ"/6M?ޤuԿV=zp?UֿIsj?6*ۿۉ^ՙ?[Xbؿ+?Y?-beڿ&?1C%0g׿;}?Pտ1?W;pԿ6`T?vѿVP?_Qցҿ.Ϡ?$~!ÿC[?ؑy,w ¿Oo?|W)ƿSng?>׵ſʙ{?ߩ9\ÿoV?6F¿C`Ϗ?[$ſ rk?׻:<ǿm?8i?*vȿ Y~?ckhGʿE5\?(̢̿F )?S(C̿.+`?.H^ʿꝕ[?ȑ Zu˿Y??ʿꨔk?T$k5ȿ"x@?O@ƿь2Gz?RD}1b(0iU?wujĿL?|gſjzK?T¿siS?|y,pi?}gĿlX?krjƿfg?>= 9ȿd{~?ǿqLv\?8V%}<ɿؼ ?潞ο!m?yп֫ V?k duѿʊ~u?NѿҭO?$t}Ϳ-EQ?ZѿxB@K?ҿ ?^ǰ};dҿ~-jy?&Hӿȃ&?l Կji`?o~Կ<๞?V4Pҿ6x-?;տs?;Gտ[e?+d Կu?ho)ҿ4?IQӿO? <ҿe?+#HͿ5 ?r,j̿>?,ο|yN ?qпr)?4ܱпTYL?&6O˿?CvkпCN?<ҿfke+?{9<`[ѿinC.? пV~?#sп KCR?ufο-&D%?֤ wϿ:?Y5Eѿ &/?(ɿUFK?P?ƫ4;ȿL0T?#M˿ RD?pVJ̿c#?X˘ÿd?ց~6 %}s6'?,`uɿdw?4nƿ|K?ޞ8+Ŀ k>W?{/TRO{?6![`b?Ap¿ ?@$}cݻN`v?33hU? k}+~ވ?}#J/G?`;Du]=?q$[꼿`۔@2?k&%g?(I ?|iBſ1 Л?,%@ǿUw04?p~ ˿J`m]?4ſߊ?( SjRȿl?Bƿ%zG?:ÿrڼO?lQ0ÿ?{¿H&?NB?)Cktg?a|n?O?"?1Hudn?(ݟ疨y凂V?HBamT? GK@v ?t>7 Ӷz?pi/Ӵ7׋y?Qys:?'wb6L?͎A*Ũ/?-Qj?|+-?*颿\?`,,Z-D s?#qzxYt?C67?2Ҥe? _?pC;Jg?ϤF2srF?:aL"` %?HΣ?0i?: ?`?AA$^?`m$灿(A?|F?}8P?n;?G"?'B-?~&?x0ϔO?WJ[?𚱪?fA{?v?ETۢ?@?a>,д/b?)k˰QLj?ײB^L?tOʘ@#?ZL}Q,I?z}Q# ?.G* (*E?~u}]ׯ9?Qw1r?r }c ?ob#}C?<L*p? 즿}&]?Q&0U??yHq?<{ Nwtr?>C-#ӫ6 ? U5L?ӺֺX?lpgLyܫ?5Yؿ ?ۿ@).I?U>*ݿC?$G/ؿ+4a?pEWNƹ1?ketfr?`տF?;?9s *͝?|`3?vS9o1?|r|cE?^F&?Ʃ?]5zPS?eZ=ÿ#{m?d"5_!ǿh?@ÿtm[?ܱxͿZѪ?%e׿i!-?23ڿ@?hNyѿ5 !?)Tпr*F/?p4MԿiw?ܣZĿGs?"3&a? ʿ]l<?[n5?+aQ|+?^?W'ud?Xj4?%¿0Tat?\&a5?_h jU?Uތa? dտ@ ?(w`.Cs0;?6lk?W?>qCt(?i) D>?k`)CY?Zfux?6L(UP]̶? l+?k$xI?{^/T ("?8f2,@58G?ͬAXK?I9) x?X$q?myRV[?߰YJq?-Ae-כ@.z?L5$ibG?u(U$ t?Xa^l ?Tq1@Y?VdwS?FjB+?0v`>lNm?b2K ?îf`}I?HK˚a.4?\@䃻G?-.:ZZh?^_P?{/>?],Zx)?=FgCA?Ȣ b?n]< {RM?н 4Rq?Y&/?➌$l?4?UX?u 5}T)ښ?pb_VS~?I47ɕ?<Ì:?{ѧ&*F?Բvz!A8#? ]?\ `[R^}_j?lNjvHO?,W0?)?@zwJ[?wgx3%?,|{IG?u8"NNPF?Ubhs?3[KW?ZxF8?F&=l?( a*?JC)MBR_R?O=𿈙?sv›N?I~ᅥ2? -xO_Dv? ^  ?1+>#?R D5?u@Z?%gMP?*|T(:fӼk?eb53?0 ~߿?""{ƿcA?N?~Ў\zҘ?iʎʰ? )>?KiοvT9?F:п<7?Ν6PZy ?lƿ?}?ƪwvqP}?*5е粶b?f=S㶿 \mD?[Ϳʊ?$ȿi6?;z\ѿ{T?eh̿x+SL?v.ؿ#6yfM?'Dҿ :s?h{Cwҿ<?MD ٿ+ud?Dۿ4{~?—cؿxk?¥bxԿ{?v8MPؿo.C?Ф8׿Ӭ:L@":޿_a?(ܿxn? _d޿E >ԙ@"Ηݿoj֧@ % QI@:rCnFrt@=]Q@!J"2@{\࿃~>[@h[Xݿߋ^@;IڿDs @6BvۿR%G@7^ݿQLO@3߿ye=@Zfy߿Œ@FݿP)P[@pʰܿP5@!R/|)q @i2:&-@]/=kT@FI1y/@P+n2|bi@bAw߿P?|ۿlD,+(?*r߿ڀw?vVĜ࿇wF'S?.Kà?P1huċ(ёD?)?xr? Rr 9?ß?FwD;?0Ժ?\ ma#?[BSJ ?.?ՓҹT?XU|?dlYXIxR|=?JU܊?P㓖R+chS?qVīԴ?ZĿ8!? mֿ8t\Ӂ?L@Gaп䓻O?vbOJZa?(N4? pԿm?g?׿,S?ٔÿVҫ?A,[忐:?/R翦G?G!djo,?ϯ5U{⿢OE?y8X0%{6?]2ܿv6? o<ؿtC?$aܿOto?8`Q?F⟐ݿnێ+d?pHh⡖߿Dqe?V&׿$ϱӸ??h)ϿeF ?'L˿V?^9Q3v?[r@ۿM88?4ٿ(> ?rԏ?Ѵkǿ /K?cmq0IҾ?V ,ҿn N?+ ݿ|c=4j?KR￳?aD3t"x%?Ǭ$rr?X\#3𿂯~&w?$H/jf?o`#hqDl?ݿtX?S )lpJod?{׽*׿' ?xPXϿD2?""Z#x?ܰDÿF?bϿ;[?OhW]׿wM ?ݣKhɿRH?+[¿ 2+?%{p:1 ? U.?kGd_ͿMav?PS~0ؿm撇W?iJ?W? V★ͷ ?ͨZc5u?k?wNN_{+v?* YIyZUo?ob.2L;EcI67?&MVhY~?/ c$*U#?)^0S?3騘݀68?Ԅȕ:{!}?Jrm4?&ݿT /?Vҿ?0?Ǿ sĿJ?kӿP/R?RLݿܺ\$?gQ5-J:?Y^翄J"fG?:B^G?ѐNpq.E2.Pkdy?\\uxYQ?9dcm?z=t@~m? i_Ԇ,q?}sW4뿬q/M?>bH?V=^<8|?!R?6 !`?:&8A?mLqb [>Lz"-NY@̷&ܽ@S꿬B]Ӱm2=rn]"g ɿ~#/Ep4п. swտ]v}R|O>+-mi,ܵ?|~@˾?=-]Z?~L+C:N?7 QFDm?x|=d pɕn?k/fqH[?Tʂ?8[4)?@hojp?Rւ?Y?sF?~QǴ`v8^d? c6¿p}|!6 ?5_ ?V(}4Lx$:?_͘?!ҿ$HiȧrLd%Z7qfS@̃ڐR`aĦ?6bqX.!?V8f9 U濄m۾/ -N8+ҷ9aʿa#e 54ӿdv,g/̿>V~2ʿ&Cm*\TڿlFKK֙2lߋbUBٿ|նٿ$,ڿDվٿЎ*oпq޿9?Bѿ~#ѿo;3˿ {C`տjT'\ɿY޿ʺ:3Ϳ&7ɿ\6!J!ѥa?^9P?-?BM|c?rV?I0=?68`"( '-zE Tq¿3́ƿ]wCƿaXҿV],=se¿  =JŃ\MgV[5C鶿\xsU/yQ?1kI?[E?mPsz=?xGҍ?Ca? s?_%'^?hXD?b޳H+? ?3WC?q?n?:Ӵ?nET?X_|?Q{?\D?$$5?5݈mK?[{#J/0bC?E6&9bY?Sٲ?+0}q)?l$['?L"?<9?JQ?XsFKVɿXpI?x3ÿt9?12v?`A ?3 XO8y·¿ ]ط,PA&@xIdd?3?Yd٦TXp2)|$`^ W 0q紿VmMMG~u(k7?)1s`ܷe?@#b[uo?m ? Zo?X,OQ?8qdŔ?b JrA?4ۉ?ȸ?d\?~.%?h?4Dw?%X|?w-.?li?Ri?`C2?]?F^_6lM?UFdVY 9bS?^bs=H붿`?|f4U?*͵+!س0 0?+QWMGr&J?Rx1?P'~W?-1ο`)5r?{`޿`hnl?@ؿA@?8ڿ,&K׳?j5 +ݿ8?\KB93cvY+n?|;㿞R\?sQ\z?>YݿQcm?La'[ҵ?{sY^+XMG ?Y~aڿD䒼?R9׿r/2?ֿ ?"P '|ڿ^%?B|hڿTOD?󱦒,߿ ?)r4,?`hZ-K?Bj߿w ?!߿P|_?̓~߿J0@?T῁?&Age㿟u?y<0G俈9:?[ m忒"x?Y~la5? n ]+DJ?o;忩߿Wzoo??8t'qݿ-Ѧ?^4߿@3_Z\?ۻ߿%eH?œ?y޿uGZ24?zݿ-w?z Lۿؕ-?v#NڿC.?,"ۿF'??t&ֿ*N7?Lۿ e?aٿ? ?Ӷ]ֿ@l`M?o"IJՊֿfv?l5גӿmk=? vпf?~J)ҿpY,M!?u9\z/˿t?$ƿ? Yʿ + ?? vԿ?f6ֿ4?U CؿEEoH?NۿҿA?Δ8&ؿ9\tw?ێZֿ*t۝]?Xҿ$o"?9 տ.?Կ_4F(?~NfSҿ\Qo?`?oͿ̫ɇ?=mq[ȿL ?DxܴȿƱ\??rÿ>?6ſN2?ϿB&g?b01baמ?-'혿L{mแ}?A-SWJ%sŎ?t hp?$Ūa?{㙿m|㷯_K?ſA1a? O/oiοDI?#6׿ ~?= ߿ 7*W%?BͿR5P`?BIAܿDieM?Jʍ:ҿeH?ȿf ;?Q@2 Ψ?Y8{*?WyF?\˩Ԇ? 8-`dsDH ?K\ ?h%׹¿ `}P?v2ſjŔa?BxKdlP?m <TK?ƕWC+?xmQƿmr[? -57?R-?BV* ̿g? ˿q{?:ο s"?01ʿpl8u*?ѿȁ*?G-ҿƷ:c?-(ֿҀ鲫7?9ӌտԑA?\^Կ)[Yp?u׿ _y?RW*>ڿ!?ȰńXcؿ/{?조Ŀc,v%g?%38Uv?(Yq X`?ڵ}?7|#wD?naN꿹FuQ?' 43?R}7$?E-ua,?T3Z8F (o?+bn@?]`w6ɍ$?Or>Ml_?.E6_Ha%1?Z""g?oCH-?.70HIoP ?x8w~.?U?^n&Jդ?tFazL+n?vd!=忠=G?8' /eN?>}>c?SƠr?cv< m??tۨƿߨ?/DJq?6ɿҡ#?ųԿNwIJ?*ۉҿvΡ0?`ǵڿ# ?Rܿ+oo?n Aٿؚ 7? ؿ(2!?0 2WտF_/T?ɉ5R׿^8 v?|nҿPx%?p5bbѿ?rNοifG?B~|-VѿXݶX?帴8̿iG ?:hk%ƿ9Dr?r2"УAS{?zſdWQ^?6J?~Yc?&V/?;T Ŀn7T?'&pʿ\-O?FXnƿ?XѝztD{m?=Vv赿Ph?]E=Fр?V~˿҄/v?!tbsѿ+۶\?Uh<ֿ?fK!ڿ7?ܿ*J?[Կ8?F׿P Q?z,ݿ?`?֌UV-r1?i(O߿kH?^e[\ܿBhC`?w=2c6O60c;?Pvyے?v}|7 ?:NEs?g_/7X?Cn/p?F߿膤"?$"ٿPJX?[&ݿȹp?$?jYݿb~)b?[ s]O ?Hc:X/? =s$}o?NWA?mpR?u??u+0n̅?<ہ?&GV)?^LG}XBai?.h p?]M^ޗD ?4@VU?͓𿂄p%?ha2B{6P3?Ov6t#S?tm9 ?ˣ=뱗?f8?0_C?{YUW?EDB?YAVC)-?=I=p$"?`Tfww?t "+a,lK?ZDQӞN^?6O, Wd?hxx?TA2Ŋx?r*IB㚧?:3U+4d?&?- ;>"?xVR%A? ;X\n?ryLwPz?~]pc=F? :O_|?n?#_72\?k爩IF2^e?R KC?3񕻅`?<(e%CͪS?\?}eTէ p?{k䊞G?߰ -}7꘾?H"؅,.?ͩU$;?Edҵ?-l曶bJ?`ĩCֿkRm?BP+錮?:\! VD?𿢩!?QI0@dA?!8J?Y{%G_?A迃wA?{UAq͡?bj?翳=? c[ ׳]?1S翾w;`$?qxil?c3"+`?RV[֩ ?X/zHp?(}"2>?D{?r\@S? 4NŢl:?;[Ӊ뿨 4(?濖ư.? ~1vi*?r#TzO2\?ǻC\忣U1f? -濁?H?  e?T)-俎7\:?Nq⿰irN*?JW}h?2{eC?QT${뿃Z}wh?y],F?ʌ5^s4w ?p&(?~>G13?$| 3?" m?{Ŝ13ݿswߨ?fYUԿV&b? Pٿ? ML =׿8?rӿk[2?tRU&x[?>yͿ:fl Q@?̿NT?Sғ׿dHK{?}kԽڿ`DC8e?jٿ0EP?!U/ TAd~?tb3ܿ$Mȵ?@nS"#ٿU#?iHV'?nsl߿$5?PeVL㿘oo?:2俴F?kʭL?BX hҹ? ]P;?mӴP[?68Pd?40¬濐{?#b +p]S?l?#10O)?8߹&kI"?eٿD?4@7q?3Et\:Dײw?nO?@;鞂FӉD⿠Ή˥h;8z}; a%翰I,xH Iaߞݰ꿀LE/?Kdۏ?\۲#鿔s?»`H%?ۄ?EЇ<?aAM7u ?8Rr@5+3?wcVNOZ?tKf?pG` ?X{CX?:[ ]PA?S{dA0z?R _||;~_?ABxp~?w3>D{mnb2|e[?w@u:?tQq1UUaʳ]?`'9xc4d?Eɭi:?#nl9?vt}r??NXʊ-۶?K7 ?bx0FPf?ח _*Pw?ZFPzz?!v41?an-L5xR?j=$`mv?p?<ה'0Űߧr|px^&$ऺ6}?BYPsuZ?,i "f?_  R?#| ? @@lI)?d!w)￘7?v{=<3WUS$A2IQ│\&.jPLʨ뿄=䷿t~`A\?N 뿐Mo3W/ɉ8<`>Lt翮soʿEA翨ѿ ']2п\X.dA,(=77ʿXUkǿ_@+D\˿ ueǿΌ?]@Hſ,:91<ʳĿ\7 DF % kgrO᠟;ɄCwpͮjذ}koq`Wʶƿ" F;X,(ǿ`2EYH.пr۶쿬p.п\Կ-+Nd^ҿE?Zz'`)տF(0#ڿdu}꿶tٸ ֿ꿚'{5׿ܕ _뿡z wԿ,>8S+rӿ?" ÿ `0ɿwxh0򇏶ʿN)fVh=Ŀ "2}?;ϰTo.!0PR⾿D1]‘rjEĨJ"%7B &zT?UX`]U?Fj)@\ )-\Q,qpU?DBtpP߀q-?s ܼds?ΤRdI?Ai MH! e޽?ɮbk'X?([Ky@&rNfk]âLN?p̛-Db?xLT?@9f3*QA?Г[1z( ?*?p2p?<$? x?9Л?u@d?W?_q:\?\#m?k W?t` ~?M;?"g4?r;ɭ?zoR?t7:,V XfewP4En]EēE^8ſ #%ӿncQ1Ӿ~> VϿ@6&u0ڿPC}Ʒ0Xrnfڿ>~b޿R60b#V8nĿ?@1 ҿf0 bΣֳʿ阼6Aeѿ)K꿔qx&пړd"ʿ0\¿Et8₩qĿPJ}tϮ%ǿCXh뿶Ͽ~9;~VMҿ}rhЕjҿq-''ֿhOٿ ܬٿn hd{< iٿ3k[Ծڿ‚{ j' ݿ. f#&؝D߿y]&LJI-H#V0FX53޿oI~J}mm1=h῁y, VSݿ2 x =fٿw&P:% ؿvA%ߠ`ۿbNW忯R!Tտvx'ӿ\$-=Zտ[0vW࿻EwMӿ~L//ܿK|bE-Կ(E.ҫۿ"ܹRؿna޿g`(ڿN d߿ e`ٿN4-03!ݿ Q޿rXDZ޿e)"߿{ @ڿ]|U޿d[J2׿4vL`ۿT}ڋӿIX޿{Rtѿ7ݿcCѿ:ؿW&ԿI͏׿u׿`~Yտιӿ,+2տF/vԿsѿP:kпAԿMH,~ҿ:^E]˿5V οDFſIѵƿ6vi1VّͿ/w`o ѿK4lĿ;ֿ.o/4ƿ;}{׿ \9˿ٿzQ!ο:Cy ܿ6ο#Ὲ+ѿ"?JQn] ʿnIxe|ſTFyܿ8s<ȿxֿ'h.nܿ3<Ŀ+QzqIOV5%JiX׿h/*ͿdXOj3tĿ3 wRL6Ϳiw cl9p[zpn2#:E5뫿4 A^?>˗?^BC d]&D#g9 ~#py(6YLb|Ϛ`}?hø?}]`Eʿ1Dп;@E, G̫Ŀÿ~ ̿NGKSο8˿zտNKkʿ& "/ҿѼο<7`7ܿB ȿHܿOץZſrh\Qkտ0A0uiпE7οE'. oҿ<كS"gԿ|n/ؿ~Y:yq տڅPSNѿ-v,ܙ SjM"-ਿ}~ZpշUĿ{aH^0;-~J? M UQe-xj\{?k;?Vb?EϢ? ׮7?mzD?@q"R+=>Se|mɿ`.amIdd #BdſFʿplj6UZXR2'5|?~?$pΕV?X{~? \?e="?H^1?"Q?D&7V?p?5?/"L?eb"%?gя߾?v?9tK i?u?`_?|=? =5?s"g?2N??R, (?G?X:Olʝ????J=?&>ֶ?jp&Bt2? p9?>Xe e?˚V?=?V?0,?F?Gȭ ?t?P5?*,8?^ƔdZ?3^t?hQ?禩n?)#Mz?Ĺ(?$vг?u?y`c+?9i~?n?U?}Q!?fT D?$0?` D(%?1p?IDr?ݝ_ǯ??,~?n?F*B?U?Јϯ??^ZQo?c2? ?zx~͎?ĄA,N?~? $?}FBY? F?QR}r?0Ǔ?_}X?׊x?r]ܢ?8 V ?OԹ?/ŹVC?]@J0?x?~ZC?rG2co?P?ypJ"?os?|U?n T?l??|mhHW?/ nk?7?";4?g%\ ?9 ?*YW?l?'?wc?<?`I?9'? S?tr?&\'?B0+ g?LO#?t*rdd?]4?I^9?ʔנ?<^#Ǔ?p?[?(, R?~/q'?XK?J" ?Җ ?RM!h?>?Zϱ?t.k?߭5c? }ߏ?$m?>I?Pl?8|L4o?/C?{? vY?$@ވB?V3J&?:e?8pو?_7?N?~?N?xG$G?8R5n?G~E? 'f? ?RD&?>j6?t?wy??ʳ??B?]H? l?K(? (][?ݤP+{?;?0#?aSHw?Rb?rP?&K*?W(?8?o6x{?,Ӿ6?U4O?^짼?/58??ԽM;? ?PO&*?0Ϣzx?!m?ȽDM?U_?'M?Ih?"T??Z&?@M?ޫ?N%?XQ!?jDxUp?&&^S??4?r|G?׳%?Fb ?D ?n{?(w©?zE ƌ?DR_,m?-?|Pؼ?_Y?Е~6?Z?4,?Ƴ?0X??ڄ?U`"L?Bx?0pM$#?8 .?ﶱzγ|!?vPJeB?gٰ?Q[K?E>R?kW?Bg7or?Rlwq?F?GY?8_?# `I?D?Q(zeh?jK?m7~O)3?V\? *88ٖɢ?)빻cqڊͿyi ?l NͿ흎?SGǿR3b{o? `d$ÿh?4e:qjDJ5? :m$~>?PVn¿iΛ?,'@_ɿ*!?]kwȿnܡ G?@xr5rr?hGj0]%?h #R7kf ?J8ߞ[;?0wW連8;?籉?TxHL?$R?h ?>#'?/Kǰ?r(F?P^|P)4?dJġ?x P?`=ǎCe4?H {?#!cp=?hf53xc?};L¿qIH?͚ſ;4?.'b:οn*]?Mu$Ħ?+х??ȿ+cK?fKĈѿZ'?vǺxӿb5᭺?L&haӿhؿ͔?Z.ٿcz?v^V1ڿށKҜ?J\4DFֿX3j B?G;ؿw`?Mۿ&X-?3ۿ ?r32b޿/Rfp?N Iݿvsv?1|2R޿1 r`?spwܿC`Po?@Π3ݿ _܀f?ۿSYݥ?̥PڿQ>U?L)ٿcI?"$x׿of?ٓܿg?T&߿~8-d?`1޿!ו?L4>0߿?ޠ]paHȶ.?~"H߿}.Ω?EL{߿Mlx,|?3Jf߿Lr?` G޿\k`[?;29e߿k(?(H9)IQ?$԰J࿫?{c࿰BFL?r"B?wO]?(((0s?Rr@)RI? i8῞nv?xi)hῺ?ys M0ۆ?Taf(Yxj?AG%޿hemd?tdx1|?M.hkE?8 .y41|?vXe?hNY⿵sNU?a?~?":;ij|?Ԣ2`⿱>?a9EHA?SwEZAQ^k?I#8*@_?N4 qIo?D4㿉mt˿?Ϻ[≩俨Ts?˒xwD'?biG[I?"-uTSZc ?1YƁ?V?#m⿾ς?ͷT;pҩuS? ݿ E?qi<ݿ 4x?hO%)?Xj|ٶͧY?4a«U;r-?hDЫYkP?lg@?%D>?@'y ޝf?oaG[錮2 ?a:sR?m,au?Q?J`? `p)G??l?cyt?'h???_?0k?ߗL&? ˪nd?b%Νe뫉?>+ߺ:6a? `i~٢y9*? ߀\Pp9?yFo?ܦLL3-1')u?@VA+5H?s C[?訋P4Թ}*?*Ԝ]DhC/?M$"_;?!cʗ1~?2'I?1ֱ))?cո(,M?wK ֿ&>1;?[p^f}?wTq6+?_8)?=2x}>?VBYĻvcE?Jsh^?g Y~ȟ&?`9/P ?A޳i:J?^fas?r@ E?֎?Zydd?9M;˚2?Щv~F?$D V?sbp%쁤!?Ƌֿڸ?|j?yIbS&?vt! Yj(?nl}ÿf}ƿT]?@Oj2^ޓ?Dŀ޿~ü?;&*wc?鐗Lr?> AտCP??*ѿ4퀡? Zֿ_d?bAaԿ @Z|Sؿ*HZ@hU^ٿKRP@?hB.ֿ@(?j@ɿ2U?PAȿ(B?؏cdѿr#? fT¿:A2m?(JbſTtW8?޼t)տd+ 5?(*ؿ` ?&Y׿*7'P[r?Z ~ۿ^?\OJݿ/:0`@u࿪dz@ eDPJ@YѽOt#iL@vT߿ j@~dݿ H=@Dfs}޿[0@߄c޿@q;@.s qܿ Œb@# НHKY@Bwc~ۜ_??@6[ݿxsq~Vwq~uq~]uq~tstruct('elem',{'elmesh'},'g',{{'1'}},'frame',{{'ref'}},'geomdim',{{{struct('qualname',{'qual'},'dvolname',{'dvol'},'sshape',{{{'vtx',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2'}}),'lvtx',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2'}})}}},'ind',{{{'1','2','3','4','5','6','7','8'}}}),struct('qualname',{'qual'},'dvolname',{'dvol'},'sshape',{{{'edg',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2'}}),'ledg',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2'}}),'edg2',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2'}})}}},'ind',{{{'1','2','3','4','5','6','7','8'}}}),struct('qualname',{'qual'},'sizename',{'h'},'dvolname',{'dvol'},'detjacname',{'detjac'},'reldetjacname',{'reldetjac'},'reldetjacminname',{'reldetjacmin'},'sshape',{{{'tri',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2'}}),'ltri',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2'}}),'quad',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2'}}),'lquad',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2'}}),'tri2',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2'}}),'quad2',struct('type',{'fixed'},'sorder',{'2'},'sdimdofs',{{'x$2','y$2'}})}}},'ind',{{{'1','2'}}})}}})tstruct('elem',{'elmesh'},'g',{{'0'}},'frame',{{'ref'}},'geomdim',{{{struct('qualname',{'qual'},'dvolname',{'dvol0'},'ind',{{{'1'}}},'sshape',{{{'vtx',struct('type',{'fixed'},'sorder',{'1'},'sdimdofs',{{}}),'lvtx',struct('type',{'fixed'},'sorder',{'1'},'sdimdofs',{{}})}}})}}})t'struct('elem',{'elshape'},'g',{{'1'}},'tvars',{'on'},'geomdim',{{{struct('shelem',{struct('default',{{{'vtx','shlag',struct('order',{'2'},'basename',{'Ez'},'frame',{'ref'}),'lvtx','shlag',struct('order',{'2'},'basename',{'Ez'},'frame',{'ref'})}}},'case',{{{}}},'mind',{{}})},'ind',{{{'1','2','3','4','5','6','7','8'}}}),struct('shelem',{struct('default',{{{'edg','shlag',struct('order',{'2'},'basename',{'Ez'},'frame',{'ref'}),'ledg','shlag',struct('order',{'2'},'basename',{'Ez'},'frame',{'ref'})}}},'case',{{{}}},'mind',{{}})},'ind',{{{'1','2','3','4','5','6','7','8'}}}),struct('shelem',{struct('default',{{{'tri','shlag',struct('order',{'2'},'basename',{'Ez'},'frame',{'ref'}),'ltri','shlag',struct('order',{'2'},'basename',{'Ez'},'frame',{'ref'})}}},'case',{{{}}},'mind',{{}})},'ind',{{{'1','2'}}})}}})tPstruct('elem',{'elvar'},'g',{{'1'}},'geomdim',{{{struct('var',{{'I0_rfwe',{'0'},'Im0_rfwe',{'0'}}},'ind',{{{'1','2','3','4','5','6','7','8'}}}),struct('var',{{'dVolbnd_rfwe',{'1'},'Jsz_rfwe',{'unx*(Hy_rfwe_down-Hy_rfwe_up)-uny*(Hx_rfwe_down-Hx_rfwe_up)'},'Qsav_rfwe',{'0.5*real(Jsz_rfwe*conj(Ez))'},'nPoav_rfwe',{'nx_rfwe*Poxav_rfwe+ny_rfwe*Poyav_rfwe'},'tEscz_rfwe',{'Ez'},'tHscx_rfwe',{'Hx_rfwe'},'tHscy_rfwe',{'Hy_rfwe'},'Z_TE_rfwe',{'omega_rfwe*mu_rfwe/betaport_rfwe'},'Z_TM_rfwe',{'betaport_rfwe/(omega_rfwe*epsilon_rfwe)'},'Z_TEM_rfwe',{'sqrt(mu_rfwe/epsilon_rfwe)'},'Pin_port_rfwe',{'Pport_rfwe'},'murbnd_rfwe',{'1'},'epsilonrbnd_rfwe',{'1'},'sigmabnd_rfwe',{'0'},'nbnd_rfwe',{'sqrt(epsilonrbnd_rfwe)'},'betaTE_rfwe',{'0'},'betaTM_rfwe',{'0'},'betaport_rfwe',{'0'},'eta_rfwe',{'1'},'Esz_rfwe',{'0'},'portnr_rfwe',{'1'},'Pport_rfwe',{'1'},'Pphase_rfwe',{'0'},'nu0_rfwe',{'0'},'nucutoff_rfwe',{'0'},'nx_rfwe',{'nx'},'ny_rfwe',{'ny'},'murbndxx_rfwe',{'1'},'murbndyx_rfwe',{'0'},'murbndxy_rfwe',{'0'},'murbndyy_rfwe',{'1'},'H0x_rfwe',{'0'},'H0y_rfwe',{'0'},'E0z_rfwe',{'0'},'Js0z_rfwe',{'0'},'srcpntx_rfwe',{'0'},'srcpnty_rfwe',{'0'},'kdirx_rfwe',{'-nx_rfwe'},'kdiry_rfwe',{'-ny_rfwe'},'E0normz_rfwe',{'0'},'H0normz_rfwe',{'0'},'H0z_rfwe',{'0'}}},'ind',{{{'1','2','3','4','5','6','7','8'}}}),struct('var',{{'dr_guess_rfwe',{'0','0'},'R0_guess_rfwe',{'0','0'},'SR_rfwe',{'',''},'Sx_rfwe',{'x','x'},'Sdx_guess_rfwe',{'0','0'},'rCylx_rfwe',{'',''},'srcpntx_guess_rfwe',{'0','0'},'Sy_rfwe',{'y','y'},'Sdy_guess_rfwe',{'0','0'},'rCyly_rfwe',{'',''},'srcpnty_guess_rfwe',{'0','0'},'detJ_rfwe',{'1','1'},'Jxx_rfwe',{'1','1'},'invJxx_rfwe',{'1','1'},'Jxy_rfwe',{'0','0'},'invJxy_rfwe',{'0','0'},'Jyx_rfwe',{'0','0'},'invJyx_rfwe',{'0','0'},'Jyy_rfwe',{'1','1'},'invJyy_rfwe',{'1','1'},'k_rfwe',{'k0_rfwe*sqrt(mur_rfwe*(epsilonr_rfwe+sigma_rfwe/(jomega_rfwe*epsilon0_rfwe)))','k0_rfwe*sqrt(mur_rfwe*(epsilonr_rfwe+sigma_rfwe/(jomega_rfwe*epsilon0_rfwe)))'},'c_rfwe',{'c0_rfwe/sqrt(epsilonr_rfwe*mur_rfwe)','c0_rfwe/sqrt(epsilonr_rfwe*mur_rfwe)'},'Z_wave_rfwe',{'c_rfwe*mu0_rfwe*mur_rfwe','c_rfwe*mu0_rfwe*mur_rfwe'},'delta_rfwe',{'1/(omega_rfwe*sqrt(0.5*mu0_rfwe*mur_rfwe*epsilon0_rfwe*epsilonr_rfwe*(-1+sqrt(1+(sigma_rfwe/(omega_rfwe*epsilon0_rfwe*epsilonr_rfwe))^2))))','1/(omega_rfwe*sqrt(0.5*mu0_rfwe*mur_rfwe*epsilon0_rfwe*epsilonr_rfwe*(-1+sqrt(1+(sigma_rfwe/(omega_rfwe*epsilon0_rfwe*epsilonr_rfwe))^2))))'},'dVol_rfwe',{'detJ_rfwe','detJ_rfwe'},'curlEx_rfwe',{'Ezy','Ezy'},'curlEy_rfwe',{'-Ezx','-Ezx'},'depEz_rfwe',{'Ez','Ez'},'epsilon_rfwe',{'epsilon0_rfwe*epsilonr_rfwe','epsilon0_rfwe*epsilonr_rfwe'},'mu_rfwe',{'mu0_rfwe*mur_rfwe','mu0_rfwe*mur_rfwe'},'muxx_rfwe',{'mu0_rfwe*murxx_rfwe','mu0_rfwe*murxx_rfwe'},'muxy_rfwe',{'mu0_rfwe*murxy_rfwe','mu0_rfwe*murxy_rfwe'},'muyx_rfwe',{'mu0_rfwe*muryx_rfwe','mu0_rfwe*muryx_rfwe'},'muyy_rfwe',{'mu0_rfwe*muryy_rfwe','mu0_rfwe*muryy_rfwe'},'jwHx_rfwe',{'jwBx_rfwe/(mur_rfwe*mu0_rfwe)','jwBx_rfwe/(mur_rfwe*mu0_rfwe)'},'Hx_rfwe',{'jwHx_rfwe/jomega_rfwe','jwHx_rfwe/jomega_rfwe'},'jwHy_rfwe',{'jwBy_rfwe/(mur_rfwe*mu0_rfwe)','jwBy_rfwe/(mur_rfwe*mu0_rfwe)'},'Hy_rfwe',{'jwHy_rfwe/jomega_rfwe','jwHy_rfwe/jomega_rfwe'},'Dz_rfwe',{'epsilon_rfwe*Ez','epsilon_rfwe*Ez'},'Jdz_rfwe',{'jomega_rfwe*Dz_rfwe','jomega_rfwe*Dz_rfwe'},'Jiz_rfwe',{'sigma_rfwe*Ez','sigma_rfwe*Ez'},'jwBx_rfwe',{'-curlEx_rfwe','-curlEx_rfwe'},'jwBy_rfwe',{'-curlEy_rfwe','-curlEy_rfwe'},'Bx_rfwe',{'jwBx_rfwe/jomega_rfwe','jwBx_rfwe/jomega_rfwe'},'By_rfwe',{'jwBy_rfwe/jomega_rfwe','jwBy_rfwe/jomega_rfwe'},'normE_rfwe',{'abs(Ez)','abs(Ez)'},'normD_rfwe',{'abs(Dz_rfwe)','abs(Dz_rfwe)'},'normB_rfwe',{'sqrt(abs(Bx_rfwe)^2+abs(By_rfwe)^2)','sqrt(abs(Bx_rfwe)^2+abs(By_rfwe)^2)'},'normH_rfwe',{'sqrt(abs(Hx_rfwe)^2+abs(Hy_rfwe)^2)','sqrt(abs(Hx_rfwe)^2+abs(Hy_rfwe)^2)'},'normPoav_rfwe',{'sqrt(abs(Poxav_rfwe)^2+abs(Poyav_rfwe)^2)','sqrt(abs(Poxav_rfwe)^2+abs(Poyav_rfwe)^2)'},'Wmav_rfwe',{'0.25*real(Hx_rfwe*conj(Bx_rfwe)+Hy_rfwe*conj(By_rfwe))','0.25*real(Hx_rfwe*conj(Bx_rfwe)+Hy_rfwe*conj(By_rfwe))'},'Weav_rfwe',{'0.25*real(Ez*conj(Dz_rfwe))','0.25*real(Ez*conj(Dz_rfwe))'},'Wav_rfwe',{'Wmav_rfwe+Weav_rfwe','Wmav_rfwe+Weav_rfwe'},'Qav_rfwe',{'0.5*real(-j*real(omega_rfwe)*Ez*conj(Dz_rfwe))','0.5*real(-j*real(omega_rfwe)*Ez*conj(Dz_rfwe))'},'Poxav_rfwe',{'0.5*real(-Ez*conj(Hy_rfwe))','0.5*real(-Ez*conj(Hy_rfwe))'},'Poyav_rfwe',{'0.5*real(Ez*conj(Hx_rfwe))','0.5*real(Ez*conj(Hx_rfwe))'},'mur_rfwe',{'1','1'},'epsilonr_rfwe',{'n_rfwe^2','n_rfwe^2'},'sigma_rfwe',{'0','0'},'n_rfwe',{'n_Air','n_GaAs'},'dr_rfwe',{'dr_guess_rfwe','dr_guess_rfwe'},'R0_rfwe',{'R0_guess_rfwe','R0_guess_rfwe'},'ispml_rfwe',{'0','0'},'srcpntx_rfwe',{'0','0'},'srcpnty_rfwe',{'0','0'},'userx_rfwe',{'0','0'},'usery_rfwe',{'0','0'},'Sdx_rfwe',{'Sdx_guess_rfwe','Sdx_guess_rfwe'},'Sdy_rfwe',{'Sdy_guess_rfwe','Sdy_guess_rfwe'},'murxx_rfwe',{'1','1'},'muryx_rfwe',{'0','0'},'murxy_rfwe',{'0','0'},'muryy_rfwe',{'1','1'}}},'ind',{{{'1'},{'2'}}})}}})t ?struct('elem',{'elvar'},'g',{{'1'}},'geomdim',{{{struct('var',{{'epsilon0_rfwe',{'8.854187817000001e-012'},'mu0_rfwe',{'4e-007*pi'},'k0_rfwe',{'omega_rfwe*sqrt(epsilon0_rfwe*mu0_rfwe)'},'damp_rfwe',{'real(-jomega_rfwe)'},'jomega_rfwe',{'-lambda'},'omega_rfwe',{'imag(jomega_rfwe)'},'lambda0_rfwe',{'2*pi/k0_rfwe'},'nu_rfwe',{'0.5*omega_rfwe/pi'},'nuinv_rfwe',{'-2*j*pi*nu_rfwe'},'Qfact_rfwe',{'0.5*omega_rfwe/abs(damp_rfwe)'},'lambdaS_rfwe',{'2*pi/(k0_rfwe*sqrt(mur_rfwe*epsilonr_rfwe))'},'c0_rfwe',{'1/sqrt(epsilon0_rfwe*mu0_rfwe)'},'kx',{'k*(k1*b1x+k2*b2x)'},'ky',{'k*(k1*b1y+k2*b2y)'},'b1x',{'2*pi*a2y/(a1x*a2y-a1y*a2x)'},'b1y',{'-2*pi*a2x/(a1x*a2y-a1y*a2x)'},'b2x',{'-2*pi*a1y/(a1x*a2y-a1y*a2x)'},'b2y',{'2*pi*a1x/(a1x*a2y-a1y*a2x)'},'n_Air',{'1'},'n_GaAs',{'3.5031-199710000000000*pi/(unit_m_cf*imag(lambda))'},'n_GaAs2',{'3.5031+332800*lambda0_rfwe/unit_m_cf'}}},'ind',{{{'1','2','3','4','5','6','7','8'}}}),struct('var',{{'epsilon0_rfwe',{'8.854187817000001e-012'},'mu0_rfwe',{'4e-007*pi'},'k0_rfwe',{'omega_rfwe*sqrt(epsilon0_rfwe*mu0_rfwe)'},'damp_rfwe',{'real(-jomega_rfwe)'},'jomega_rfwe',{'-lambda'},'omega_rfwe',{'imag(jomega_rfwe)'},'lambda0_rfwe',{'2*pi/k0_rfwe'},'nu_rfwe',{'0.5*omega_rfwe/pi'},'nuinv_rfwe',{'-2*j*pi*nu_rfwe'},'Qfact_rfwe',{'0.5*omega_rfwe/abs(damp_rfwe)'},'lambdaS_rfwe',{'2*pi/(k0_rfwe*sqrt(mur_rfwe*epsilonr_rfwe))'},'c0_rfwe',{'1/sqrt(epsilon0_rfwe*mu0_rfwe)'},'kx',{'k*(k1*b1x+k2*b2x)'},'ky',{'k*(k1*b1y+k2*b2y)'},'b1x',{'2*pi*a2y/(a1x*a2y-a1y*a2x)'},'b1y',{'-2*pi*a2x/(a1x*a2y-a1y*a2x)'},'b2x',{'-2*pi*a1y/(a1x*a2y-a1y*a2x)'},'b2y',{'2*pi*a1x/(a1x*a2y-a1y*a2x)'},'n_Air',{'1'},'n_GaAs',{'3.5031-199710000000000*pi/(unit_m_cf*imag(lambda))'},'n_GaAs2',{'3.5031+332800*lambda0_rfwe/unit_m_cf'}}},'ind',{{{'1','2','3','4','5','6','7','8'}}}),struct('var',{{'epsilon0_rfwe',{'8.854187817000001e-012'},'mu0_rfwe',{'4e-007*pi'},'k0_rfwe',{'omega_rfwe*sqrt(epsilon0_rfwe*mu0_rfwe)'},'damp_rfwe',{'real(-jomega_rfwe)'},'jomega_rfwe',{'-lambda'},'omega_rfwe',{'imag(jomega_rfwe)'},'lambda0_rfwe',{'2*pi/k0_rfwe'},'nu_rfwe',{'0.5*omega_rfwe/pi'},'nuinv_rfwe',{'-2*j*pi*nu_rfwe'},'Qfact_rfwe',{'0.5*omega_rfwe/abs(damp_rfwe)'},'lambdaS_rfwe',{'2*pi/(k0_rfwe*sqrt(mur_rfwe*epsilonr_rfwe))'},'c0_rfwe',{'1/sqrt(epsilon0_rfwe*mu0_rfwe)'},'kx',{'k*(k1*b1x+k2*b2x)'},'ky',{'k*(k1*b1y+k2*b2y)'},'b1x',{'2*pi*a2y/(a1x*a2y-a1y*a2x)'},'b1y',{'-2*pi*a2x/(a1x*a2y-a1y*a2x)'},'b2x',{'-2*pi*a1y/(a1x*a2y-a1y*a2x)'},'b2y',{'2*pi*a1x/(a1x*a2y-a1y*a2x)'},'n_Air',{'1'},'n_GaAs',{'3.5031-199710000000000*pi/(unit_m_cf*imag(lambda))'},'n_GaAs2',{'3.5031+332800*lambda0_rfwe/unit_m_cf'}}},'ind',{{{'1','2'}}})}}})tstruct('elem',{'elconst'},'var',{{'k','0.225','k1','1','k2','1','a1x','375*unit_nm_cf','a1y','0','a2x','0','a2y','375*unit_nm_cf'}})tHstruct('elem',{'elgeom'},'g',{{'1'}},'frame',{{'ref'}},'sorder',{{'2'}})tOstruct('elem',{'elepspec'},'g',{{'1'}},'geom',{{struct('ep',{{'2','2','1'}})}})tOstruct('elem',{'elgpspec'},'g',{{'1'}},'geom',{{struct('ep',{{'4','4','0'}})}})t\struct('elem',{'eleqw'},'g',{{'1'}},'geomdim',{{{struct('coeff',{{{'0'}}},'tcoeff',{{{'0'}}},'ipoints',{{'3'}},'dvolname',{{{'dvol'}}},'ind',{{{'1','2','3','4','5','6','7','8'}}}),struct('coeff',{{{'0'}}},'tcoeff',{{{'0'}}},'ipoints',{{{'1'}}},'dvolname',{{{'dvol'}}},'ind',{{{'1','2','3','4','5','6','7','8'}}}),struct('coeff',{{{'+(-dVol_rfwe*mu0_rfwe*(jomega_rfwe^2*Dz_rfwe*test(depEz_rfwe)+jomega_rfwe*Jiz_rfwe*test(depEz_rfwe)-jwHx_rfwe*test(curlEx_rfwe)-jwHy_rfwe*test(curlEy_rfwe)))'}}},'tcoeff',{{{'0'}}},'ipoints',{{{'1'}}},'dvolname',{{{'dvol'}}},'ind',{{{'1','2'}}})}}},'nonlintest',{{'off'}})tistruct('elem',{'elcplscalar'},'var',{{}},'g',{{'1'}},'src',{{{{},{},{}}}},'geomdim',{{{}}},'global',{{}})tstruct('elem',{'elcplscalar'},'var',{{'A','nEz'}},'g',{{'1'}},'src',{{{{},{},struct('expr',{{{'1'},{'Ez*nojac(conj(Ez))/A'}}},'ipoints',{{{'2'},{'2'}}}, 'frame',{{{'ref'},{'ref'}}},'ind',{{{'1','2'}}})}}},'geomdim',{{{}}},'global',{{'1','2'}},'maxvars',{{}})tstruct('elem',{'elcplextr'},'var',{{'pconstr1','pconstr2'}},'g',{{'1'}},'src',{{{{},struct('expr',{{{'Ez',{},{}},{{},'Ez',{}}}},'map',{{{'1','1','1'},{'1','1','1'}}},'ind',{{{'1'},{'2'},{'3','4','5','6','7','8'}}}),{}}}},'geomdim',{{{{},struct('map',{{{{},{},'2'},{{},'3',{}}}},'ind',{{{'1','2','5','6','7','8'},{'3'},{'4'}}}),{}}}},'map',{{struct('type',{'unit'}),struct('type',{'linear'},'sg',{'1'},'sv',{{'7','8'}},'dg',{'1'},'dv',{{'1','2'}}),struct('type',{'linear'},'sg',{'1'},'sv',{{'2','8'}},'dg',{'1'},'dv',{{'1','7'}})}})tstruct('elem',{'elpconstr'},'g',{{'1'}},'geomdim',{{{{},struct('constr',{{{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))','0'}}},'cpoints',{{{'2','2'},{'2','2'}}},'ind',{{{'3'},{'4'}}}),{}}}})tEstruct('elem',{'elode'},'dim',{{'freq'}},'f',{{'1-nEz'}},'weak',{{}})tstruct('elem',{'elvar'},'g',{{'0','1'}},'geomdim',{{{struct('var',{{'unit_nm_cf',{'1.0E-9'},'geomnum',{'0'}}},'ind',{{{'1'}}})},{struct('var',{{'unit_m_cf',{'1.0'},'unit_nm_cf',{'1.0E-9'}}},'ind',{{{'1','2','3','4','5','6','7','8'}}}),struct('var',{{'unit_m_cf',{'1.0'},'unit_nm_cf',{'1.0E-9'}}},'ind',{{{'1','2','3','4','5','6','7','8'}}}),struct('var',{{'unit_m_cf',{'1.0'},'unit_nm_cf',{'1.0E-9'}}},'ind',{{{'1','2'}}})}}})uq~]uq~t$struct('elem',{'elvar'},'g',{{'1'}},'geomdim',{{{struct('var',{{'x$2',{'xg'},'y$2',{'yg'}}},'ind',{{{'1','2','3','4','5','6','7','8'}}}),struct('var',{{'x$2',{'xg'},'y$2',{'yg'}}},'ind',{{{'1','2','3','4','5','6','7','8'}}}),struct('var',{{'x$2',{'xg'},'y$2',{'yg'}}},'ind',{{{'1','2'}}})}}})tstruct('elem',{'elvar'},'g',{{'1'}},'geomdim',{{{struct('var',{{'Ez',{''},'Ezt',{''}}},'ind',{{{'1','2','3','4','5','6','7','8'}}}),struct('var',{{'Ez',{''},'Ezt',{''}}},'ind',{{{'1','2','3','4','5','6','7','8'}}}),struct('var',{{'Ez',{'Ez'},'Ezt',{'0'}}},'ind',{{{'1','2'}}})}}})tBstruct('elem',{'elconst'},'var',{{'freq','-imag(lambda)/(2*pi)'}})t0struct('elem',{'elconst'},'var',{{'freqt','0'}})uq~]uq~]uq~zsq~|wtls(0)uq~]uq~tfrequq~xsq~|wtls(0)uq~]uq~tEzuq~xsq~|wts(1)uq~]uq~tEztEztEztx$2ty$2uq~uq~????xsq~|wts(2)uq~]uq~ tEztEztEztEztEztEztx$2tx$2tx$2ty$2ty$2ty$2uq~uq~ ???????uq~ ???????xsq~|wtls(2)uq~]uq~tEztEztEztEztEztEzuq~uq~???uq~???xuq~]xsrcom.femlab.api.client.MFileInfo3$$LfemNameq~[historyq~~[mfileTagsAndTypest[[Ljava/lang/String;[ resetHistoryq~~[ storedNamesq~~Lversionq~xpwsq~wq~q~q~ q~ t COMSOL 3.3tawt $Name: $t$Date: 2007/02/02 19:05:58 $xuq~t`% COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) flclear fem % COMSOL version clear vrsn vrsn.name = 'COMSOL 3.3'; vrsn.ext = 'a'; vrsn.major = 0; vrsn.build = 511; vrsn.rcs = '$Name: $'; vrsn.date = '$Date: 2007/02/02 19:05:58 $'; fem.version = vrsn; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','375', ... 'a1y','0', ... 'a2x','0', ... 'a2y','375'}; % Geometry g1=rect2(0.4,0.4,'base','center','pos',[0,0]); g2=rect2('3.75e-7','3.75e-7','base','center','pos',{'0','0'},'rot','0'); g3=ellip2(1.875E-7,1.875E-7,'base','center','pos',[0,0]); g4=ellip2('7e-8','7e-8','base','center','pos',{'0','0'},'rot','0'); % Analyzed geometry clear s s.objs={g2,g4}; s.name={'R1','E1'}; s.tags={'g2','g4'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Initialize mesh fem.mesh=meshinit(fem, ... 'hauto',5); % Initialize mesh fem.mesh=meshinit(fem, ... 'hauto',3); % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0', ... 'a2x','0', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0', ... 'a2x','0', ... 'a2y','375[nm]'}; % Initialize mesh fem.mesh=meshinit(fem, ... 'hauto',3); % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.5', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {{},{},{}}; elem.geomdim = geomdim; elem.var = {}; map = cell(1,0); elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; elem.geomdim = {{{},{},{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Solve problem fem.sol=femeig(fem, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.74626e14 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.658549175727535E-7,3.658549175727535E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.74626e14 Surface: Electric field, norm [V/m]', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.74626e14 Surface: Electric field, norm [V/m]', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Hx_rfwe','cont','internal','unit','A/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.74626e14 Surface: Magnetic field, x component [A/m]', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.1060740181556086E-7,2.1060740181556086E-7,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.74626e14 Surface: Electric field, norm [V/m]', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.1515288530798306E-7,2.1515288530798306E-7,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'contdata',{'Ez','cont','internal','unit','V/m'}, ... 'contlevels',20, ... 'contlabel','off', ... 'contmap','cool(1024)', ... 'title','nu_rfwe(1)=3.74626e14 Surface: Electric field, norm [V/m] Contour: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.1060740181556086E-7,2.1060740181556086E-7,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'contdata',{'Ez','cont','internal','unit','V/m'}, ... 'contlevels',20, ... 'contlabel','off', ... 'contmap','cool(1024)', ... 'title','nu_rfwe(1)=3.74626e14 Surface: Electric field, norm [V/m] Contour: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.3284176853543768E-7,2.3284176853543768E-7,-1,1]); % Initialize mesh fem.mesh=meshinit(fem, ... 'hauto',3); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.5', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {{},{},{}}; elem.geomdim = geomdim; elem.var = {}; map = cell(1,0); elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; elem.geomdim = {{{},{},{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'xmesh',fem0.xmesh); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'contdata',{'Ez','cont','internal','unit','V/m'}, ... 'contlevels',20, ... 'contlabel','off', ... 'contmap','cool(1024)', ... 'title','nu_rfwe(1)=3.74626e14 Surface: Electric field, norm [V/m] Contour: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-1.6520979980007623E-6,1.6520979980007623E-6,-9.313670741417508E-7,9.313670741417508E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.328e5[1/m]*3.0e8*(-2*pi)/lambda+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {{},{},{}}; elem.geomdim = geomdim; elem.var = {}; map = cell(1,0); elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; elem.geomdim = {{{},{},{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'contdata',{'Ez','cont','internal','unit','V/m'}, ... 'contlevels',20, ... 'contlabel','off', ... 'contmap','cool(1024)', ... 'title','nu_rfwe(1)=3.743373e14 Surface: Electric field, norm [V/m] Contour: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-1.344101171137512E-6,1.344101171137512E-6,-9.313670741417508E-7,9.313670741417508E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.328e5[1/m]*3.0e8*(-2*pi)/lambda+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'contdata',{'Ez','cont','internal','unit','V/m'}, ... 'contlevels',20, ... 'contlabel','off', ... 'contmap','cool(1024)', ... 'title','nu_rfwe(1)=3.743373e14 Surface: Electric field, norm [V/m] Contour: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.914540954787187E-7,3.914540954787187E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.328e5[1/m]*3.0e8*(-1)/lambda+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'contdata',{'Ez','cont','internal','unit','V/m'}, ... 'contlevels',20, ... 'contlabel','off', ... 'contmap','cool(1024)', ... 'title','nu_rfwe(1)=3.743043e14 Surface: Electric field, norm [V/m] Contour: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-2.9764942743773546E-7,2.9764942743773546E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.328e5[1/m]*3.0e8*(1)/lambda+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'contdata',{'Ez','cont','internal','unit','V/m'}, ... 'contlevels',20, ... 'contlabel','off', ... 'contmap','cool(1024)', ... 'title','nu_rfwe(1)=3.743043e14 Surface: Electric field, norm [V/m] Contour: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-2.9764942743773546E-7,2.9764942743773546E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.328e5[1/m]*3.0e8*(1)/lambda+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Solve problem fem.sol=femeig(fem, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'contdata',{'Ez','cont','internal','unit','V/m'}, ... 'contlevels',20, ... 'contlabel','off', ... 'contmap','cool(1024)', ... 'title','nu_rfwe(1)=3.743043e14 Surface: Electric field, norm [V/m] Contour: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-2.9764942743773546E-7,2.9764942743773546E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8/(-2*pi*lambda)+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'contdata',{'Ez','cont','internal','unit','V/m'}, ... 'contlevels',20, ... 'contlabel','off', ... 'contmap','cool(1024)', ... 'title','nu_rfwe(1)=3.743035e14 Surface: Electric field, norm [V/m] Contour: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.914540954787187E-7,3.914540954787187E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/imag(lambda)+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'contdata',{'Ez','cont','internal','unit','V/m'}, ... 'contlevels',20, ... 'contlabel','off', ... 'contmap','cool(1024)', ... 'title','nu_rfwe(1)=4.347363e14 Surface: Electric field, norm [V/m] Contour: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-2.9764942743773546E-7,2.9764942743773546E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(2*pi)/imag(lambda)+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'contdata',{'Ez','cont','internal','unit','V/m'}, ... 'contlevels',20, ... 'contlabel','off', ... 'contmap','cool(1024)', ... 'title','nu_rfwe(1)=4.021541e14 Surface: Electric field, norm [V/m] Contour: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0125729928546554E-7,3.0125729928546554E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8/nu_rfwe+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'contdata',{'Ez','cont','internal','unit','V/m'}, ... 'contlevels',20, ... 'contlabel','off', ... 'contmap','cool(1024)', ... 'title','nu_rfwe(1)=4.347363e14 Surface: Electric field, norm [V/m] Contour: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0125729928546554E-7,3.0125729928546554E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Initialize mesh fem.mesh=meshinit(fem, ... 'hauto',3); % Refine mesh fem.mesh=meshrefine(fem, ... 'mcase',0, ... 'rmethod','regular'); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8/nu_rfwe+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'xmesh',fem0.xmesh); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'contdata',{'Ez','cont','internal','unit','V/m'}, ... 'contlevels',20, ... 'contlabel','off', ... 'contmap','cool(1024)', ... 'title','nu_rfwe(1)=4.347331e14 Surface: Electric field, norm [V/m] Contour: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.658549175727535E-7,3.658549175727535E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(1/(2*pi))/nu_rfwe+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'contdata',{'Ez','cont','internal','unit','V/m'}, ... 'contlevels',20, ... 'contlabel','off', ... 'contmap','cool(1024)', ... 'title','nu_rfwe(1)=3.70216e14 Surface: Electric field, norm [V/m] Contour: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-2.9764942743773546E-7,2.9764942743773546E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Initialize mesh fem.mesh=meshinit(fem, ... 'hauto',3); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8/nu_rfwe+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'xmesh',fem0.xmesh); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'contdata',{'Ez','cont','internal','unit','V/m'}, ... 'contlevels',20, ... 'contlabel','off', ... 'contmap','cool(1024)', ... 'title','nu_rfwe(1)=4.347363e14 Surface: Electric field, norm [V/m] Contour: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.658549175727535E-7,3.658549175727535E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8/nu_rfwe+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.324779e15*i, ... 'eigref','-i*2*pi*3.7e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'contdata',{'Ez','cont','internal','unit','V/m'}, ... 'contlevels',20, ... 'contlabel','off', ... 'contmap','cool(1024)', ... 'title','nu_rfwe(1)=3.481739e14 Surface: Electric field, norm [V/m] Contour: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0125729928546554E-7,3.0125729928546554E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*2*pi/(-imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.324779e15*i, ... 'eigref','-i*2*pi*3.7e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... t`'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'contdata',{'Ez','cont','internal','unit','V/m'}, ... 'contlevels',20, ... 'contlabel','off', ... 'contmap','cool(1024)', ... 'title','nu_rfwe(1)=3.481739e14 Surface: Electric field, norm [V/m] Contour: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-2.9764942743773546E-7,2.9764942743773546E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*2*pi/(-imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Solve problem fem.sol=femeig(fem, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.324779e15*i, ... 'eigref','-i*2*pi*3.7e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'contdata',{'Ez','cont','internal','unit','V/m'}, ... 'contlevels',20, ... 'contlabel','off', ... 'contmap','cool(1024)', ... 'title','nu_rfwe(1)=3.481739e14 Surface: Electric field, norm [V/m] Contour: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-2.9764942743773546E-7,2.9764942743773546E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*2*pi/(-imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'contdata',{'Ez','cont','internal','unit','V/m'}, ... 'contlevels',20, ... 'contlabel','off', ... 'contmap','cool(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=4.347363e14 Surface: Electric field, norm [V/m] Contour: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-2.9764942743773546E-7,2.9764942743773546E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'contdata',{'Ez','cont','internal','unit','V/m'}, ... 'contlevels',20, ... 'contlabel','off', ... 'contmap','cool(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=4.347363e14 Surface: Electric field, norm [V/m] Contour: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0125729928546554E-7,3.0125729928546554E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'contdata',{'Ez','cont','internal','unit','V/m'}, ... 'contlevels',20, ... 'contlabel','off', ... 'contmap','cool(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=4.347363e14 Surface: Electric field, z component [V/m] Contour: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0125729928546554E-7,3.0125729928546554E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=4.347363e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.084730429809258E-7,3.084730429809258E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=4.347363e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*2*pi/(-imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'xmesh',fem0.xmesh); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.347363e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.7715942345281047E-7,3.7715942345281047E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*2*pi/(-imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.347363e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Store solution fem1 = fem0; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*2*pi/(-imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Update model fem.sol = fem1.sol; % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','lambda(1)=-0.097649-2.731529e15i Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*2*pi/(-imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.223503e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.7715942345281047E-7,3.7715942345281047E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*2*pi/(-imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol); % Update model fem.sol = init; % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','Time=-4.05778-2.653705e15i Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-i*2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'4e14'}; ode.init={'4e14'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=4.336484e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'4e14'}; ode.init={'4e14'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=4.486048e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'4e14'}; ode.init={'4e14'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=4.223503e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=4.223503e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.05', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.05', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'4e14'}; ode.init={'4e14'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=4.122948e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.7715942345281047E-7,3.7715942345281047E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.1', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.1', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.1', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.1', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.1', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'4e14'}; ode.init={'4e14'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=3.995599e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.15', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.15', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'4e14'}; ode.init={'4e14'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=3.887174e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.2', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.2', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'4e14'}; ode.init={'4e14'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',2, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=3.807268e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.25', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.25', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'4e14'}; ode.init={'4e14'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multipt`hysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',2, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=3.764246e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.3', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.3', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'4e14'}; ode.init={'4e14'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',2, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=3.76403e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.35', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.35', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'4e14'}; ode.init={'4e14'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',2, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=3.804281e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.4', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.4', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'4e14'}; ode.init={'4e14'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',2, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=3.868519e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.45', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.45', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'4e14'}; ode.init={'4e14'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',2, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=3.927594e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'4e14'}; ode.init={'4e14'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',2, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=3.951637e14 (1) Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'4e14'}; ode.init={'4e14'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',2, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=4.223503e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Store solution fem1 = fem0; fem1.sol = asseminit(fem0,'init',fem0.sol,'solnum',[1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'freq','1-nEz'}; % Descriptions clear descr descr.globalexpr= {'freq','Frequency'}; fem.descr = descr; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Solve problem fem.sol=femstatic(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{}, ... 'outcomp',{'Ez'}, ... 'pname','k', ... 'plist',[0:0.01:0.5], ... 'oldcomp',{}); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','k(51)=0.5 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'title','k(2)=0.01 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'title','k(2)=0.01 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',3, ... 'title','k(3)=0.02 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',3, ... 'title','k(3)=0.02 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',7, ... 'title','k(7)=0.06 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',7, ... 'title','k(7)=0.06 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',27, ... 'title','k(27)=0.26 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Global variables plot postglobalplot(fem,{'freq'}, ... 'title','Frequency', ... 'axislabel',{',Frequency'}); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'freq','1-nEz'}; % Descriptions clear descr descr.globalexpr= {'freq','Frequency'}; fem.descr = descr; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Solve problem fem.sol=femstatic(fem, ... 'init',init, ... 'conjugate','on', ... 'solcomp',{}, ... 'outcomp',{'Ez'}, ... 'pname','k', ... 'plist',[0:0.01:0.5], ... 'oldcomp',{}); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','k(51)=0.5 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {}; % Descriptions clear descr descr.globalexpr= {}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',0, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'freq','Ez'}, ... 'neigs',2, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=4.223503e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.658549175727535E-7,3.658549175727535E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',0, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'freq','Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.223503e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Store solution fem1 = fem0; % Integrate I1=postint(fem,'Ez', ... 'unit','V*m', ... 'dl',[1,2]); % Integrate I2=postint(fem,'Ez', ... 'unit','V*m', ... 'dl',[1,2]); % Integrate I3=postint(fem,'dom', ... 'unit','m^2', ... 'dl',[1,2]); % Integrate I4=postint(fem,'dom', ... 'unit','m^2', ... 'dl',[1,2]); % Integrate I5=postint(fem,'1.11/1.56', ... 'unit','m^2', ... 'dl',[1,2]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol); % Update model fem.sol = init; % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','Time=-0.071189-2.653705e15i Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.7715942345281047E-7,3.7715942345281047E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Update model fem.sol = fem0.sol; % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','Time=-0.071189-2.653705e15i Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Initialize mesh fem.mesh=meshinit(fem, ... 'hauto',3); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'4e14'}; ode.init={'4e14'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Mapping stored solution to current extended mesh u = asseminit(fem,'init',fem1.sol,'solnum',1,'xmesh',fem1.xmesh); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.223503e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.658549175727535E-7,3.658549175727535E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'4e14'}; ode.init={'4e14'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femstatic(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'freq','Ez'}, ... 'pname','k', ... 'plist',[0:0.01:0.5], ... 'oldcomp',{}); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','k(51)=0.5 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Global variables plot postglobalplot(fem,{'freq'}, ... 'title','Frequency', ... 'axislabel',{',Frequency'}); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... t` 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.223503e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.221207979105417E-7,3.221207979105417E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femstatic(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'freq','Ez'}, ... 'pname','k', ... 'plist',[0:0.01:0.5], ... 'oldcomp',{}); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','k(51)=0.5 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Global variables plot postglobalplot(fem,{'freq'}, ... 'title','Frequency', ... 'axislabel',{',Frequency'}); % Global variables plot postglobalplot(fem,{'freq'}, ... 'title','freq', ... 'axislabel',{',freq'}); % Global variables plot postglobalplot(fem,{'freq'}, ... 'solnum',[1], ... 'title','freq', ... 'axislabel',{',freq'}); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','k(1)=0 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.221207979105417E-7,3.221207979105417E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',4, ... 'title','k(4)=0.03 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','k(1)=0 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.2038273605131213E-7,3.2038273605131213E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','k(1)=0 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1:solsize(fem0.sol)); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.223503e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*conj(Ez)/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'4.223503e14'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femstatic(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'freq','Ez'}, ... 'pname','k', ... 'plist',[0:0.01:0.5], ... 'oldcomp',{}); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','k(51)=0.5 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Global variables plot postglobalplot(fem,{'freq'}, ... 'title','freq', ... 'axislabel',{',freq'}); % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.223503e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.7715942345281047E-7,3.7715942345281047E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femstatic(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'freq','Ez'}, ... 'pname','k', ... 'plist',[0:0.01:0.5], ... 'oldcomp',{}); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','k(51)=0.5 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Global variables plot postglobalplot(fem,{'freq'}, ... 'title','freq', ... 'axislabel',{',freq'}); % Global variables plot postglobalplot(fem,{'freq'}, ... 'title','freq', ... 'axislabel',{',freq'}); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.223503e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.221207979105417E-7,3.221207979105417E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femstatic(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'freq','Ez'}, ... 'pname','k', ... 'plist',[0:0.01:0.5], ... 'oldcomp',{}); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','k(51)=0.5 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Global variables plot postglobalplot(fem,{'freq'}, ... 'title','freq', ... 'axislabel',{',freq'}); % Global variables plot postglobalplot(fem,{'freq'}, ... 'title','Frequency', ... 'axislabel',{',Frequency'}); % Global variables plot postglobalplot(fem,{'freq'}, ... 'title','Frequency', ... 'axislabel',{',Frequency'}); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Mapping stored solution to extended mesh init = asseminit(fem,'init',fem1.sol,'solnum',1,'xmesh',fem1.xmesh); % Mapping stored solution to current extended mesh u = asseminit(fem,'init',fem1.sol,'solnum',1,'xmesh',fem1.xmesh); % Solve problem fem.sol=femstatic(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'freq','Ez'}, ... 'pname','k', ... 'plist',[0:0.01:0.5], ... 'oldcomp',{}, ... 'pminstep',1, ... 'pmaxstep',1); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','k(51)=0.5 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.221207979105417E-7,3.221207979105417E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Global variables plot postglobalplot(fem,{'freq'}, ... 'title','Frequency', ... 'axislabel',{',Frequency'}); % Global variables plot postglobalplot(fem,{'freq'}, ... 'title','Frequency', ... 'axislabel',{',Frequency'}); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.223503e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.221207979105417E-7,3.221207979105417E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.05', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.122948e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.1', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.1', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.995599e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.15', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.887174e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.2', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.2', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.2', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.807268e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.25', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031't`}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.155936e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.3', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.094297e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.35', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.037516e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.4', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.991701e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.3950141650283713E-7,3.3950141650283713E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.45', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.961949e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.45', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.961949e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.4', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.991701e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.223503e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.05', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.05', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.122948e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Solver script init = asseminit(fem,'u',fem0.sol,'solnum',1); u = asseminit(fem,'init',fem0.sol,'solnum',1); fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',4e14, ... 'eigref','-i*2*pi*4e14'); fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.6114e13 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.122948e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.1', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.995599e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.15', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.887174e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.2', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.2', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.807268e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.25', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % t`Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.155936e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.155936e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Solve problem fem.sol=femeig(fem, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.155936e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','1', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','1', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Solve problem fem.sol=femeig(fem, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.223503e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.025', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.18666e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.377633546436075E-7,3.377633546436075E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.05', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.122948e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.075', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.057706e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.1', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.995599e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.125', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.93836e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.15', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.887174e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.175', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.843119e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.2', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.2', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.807268e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Constants fem.const = {'k','0.225', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Descriptions clear descr descr.ode= {'freq','Frequency'}; fem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; clear units; units.basesystem = 'SI'; ode.units = units; fem.ode=ode; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-2.513274e15*i, ... 'eigref','-i*2*pi*4e14'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=4.18659e14 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.36025292784378E-7,3.36025292784378E-7,-2.062500072952389E-7,2.062500072952389E-7,-1,1]); % Store solution fem1 = fem0; % Geometry g5=ellip2(5.0E-8,5.0E-8,'base','center','pos',[-1.5E-7,5.0E-8]); g6=rect2(1.0E-7,1.0E-7,'base','center','pos',[0,0]); g7=rect2('29E-6','38.16614637E-6','base','center','pos',{'0','0'},'rot','0'); g8=ellip2(5.0E-6,5.0E-6,'base','center','pos',[0,1.0E-5]); g9=ellip2('7.25E-6','7.25E-6','base','center','pos',{'0','16.7431578E-6'},'rot','0'); g11=ellip2(5.0E-6,5.0E-6,'base','center','pos',[1.5E-5,1.0E-5]); g12=ellip2('7.25E-6','7.25E-6','base','center','pos',{'14.5E-6','8.3715789E-6'},'rot','0'); g13=rect2('2.9E-5','50.229473E-6','base','center','pos',{'0','0'},'rot','0'); [g14]=geomcopy({g12}); [g15]=geomcopy({g14}); g15=move(g15,[-2.9E-5,0]); [g16,g17,g18]=geomcopy({g9,g12,g15}); [g19,g20,g21]=geomcopy({g16,g17,g18}); g19=move(g19,[0,0]); g20=move(g20,[0,0]); g21=move(g21,[0,0]); g22=mirror(g19,[0,0],[0,1]); g23=mirror(g20,[0,0],[0,1]); g24=mirror(g21,[0,0],[0,1]); % Using multiple geometries flclear xfem % Keep global fields fields={'functions','const','globalexpr','xmesh','version'}; for ii=1:length(fields) if isfield(fem,fields{ii}) xfem.(fields{ii})=fem.(fields{ii}); fem=rmfield(fem,fields{ii}); end end if isfield(fem,'sol') fem=rmfield(fem,'sol'); end xfem.fem{1}=fem; % Geometry 1 [g25,g26,g27,g28,g29,g30,g31,g32,g33,g34]=geomcopy({g9,g12,g13,g15,g19,g20,g21,g22,g23,g24}); [g35]=geomcopy({g13}); % Geometry 3 [g36]=geomcopy({g35}); g36=move(g36,[0,0]); % Geometry 1 [g37,g38,g39,g40,g41,g42,g43,g44,g45,g46]=geomcopy({g9,g12,g13,g15,g19,g20,g21,g22,g23,g24}); % Geometry 4 [g47,g48,g49,g50,g51,g52,g53,g54,g55,g56]=geomcopy({g37,g38,g39,g40,g41,g42,g43,g44,g45,g46}); g47=move(g47,[0,0]); g48=move(g48,[0,0]); g49=move(g49,[0,0]); g50=move(g50,[0,0]); g51=move(g51,[0,0]); g52=move(g52,[0,0]); g53=move(g53,[0,0]); g54=move(g54,[0,0]); g55=move(g55,[0,0]); g56=move(g56,[0,0]); % Geometry 1 g57=geomcomp({g13,g19,g21,g22,g23,g24,g20},'ns',{'R1','E4','E6','CO1','CO2','CO3','E5'},'sf','R1-(E4+E6+CO1+CO2+CO3+E5)','edge','none'); % Geometry 4 g58=geomcomp({g48,g49,g51,g53,g54,g55,g56},'ns',{'E2','R1','E4','E6','CO1','CO2','CO3'},'sf','R1*(E2+E4+E6+CO1+CO2+CO3)','edge','none'); % Geometry 1 g59=extrude(g57,'distance',[0.7E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); fem=xfem.fem{1}; % Geometry objects clear s s.objs={g57}; s.name={'CO4'}; s.tags={'g57'}; fem.draw=struct('s',s); xfem.fem{1}=fem; % Geometry 2 flclear fem % Geometry objects clear s s.objs={g59}; s.name={'EXT1'}; s.tags={'g59'}; fem.draw=struct('s',s); xfem.fem{2}=fem; % Geometry 3 flclear fem % Geometry objects clear s s.objs={g36}; s.name={'R1'}; s.tags={'g36'}; fem.draw=struct('s',s); xfem.fem{3}=fem; % Geometry 4 flclear fem % Geometry objects clear s s.objs={g58}; s.name={'CO4'}; s.tags={'g58'}; fem.draw=struct('s',s); xfem.fem{4}=fem; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.shape = 1; equ.matparams = 'n'; equ.ind = [1,2]; appl.equ = equ; appl.var = {'nu','freq', ... 'E0iz','exp(-j*k0_rfwe*x)'}; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'1'},{'Ez*nojac(conj(Ez))/A'}}; equ.ipoints = {{'4'},{'4'}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'7','8'}; submap.dg = '1'; submap.dv = {'1','2'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'2','8'}; submap.dg = '1'; submap.dv = {'1','7'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y','z'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Descriptions clear descr descr.ode= {'freq','Frequency'}; xfem.descr = descr; % ODE Settings clear ode ode.dim={'freq'}; ode.f={'1-nEz'}; ode.init={'-imag(lambda)/(2*pi)'}; ode.dinit={'0'}; xfem.ode=ode; % Multiphysics xfem=multiphysics(xfem); % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Geometry 3 [g1]=geomcopy({g36}); g2=extrude(g36,'distance',[0.04E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); % Geometry 2 g2=move(g2,[0,0,-0.04E-6]); % Geometry 3 g3=extrude(g36,'distance',[0.5E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); % Geometry 2 g3=move(g3,[0,0,-0.5E-6]); % Geometry 3 g6=extrude(g36,'distance',[1E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); % Geometry 2 g6=move(g6,[0,0,-1.54E-6]); % Geometry 4 g7=extrude(g58,'distance',[0.7E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); % Geometry 3 g8=extrude(g36,'distance',[40E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); g9=extrude(g36,'distance',[40E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); % Geometry 2 g8=move(g8,[0,0,40E-6]); % Constants xfem.const = {'k','0.225', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]'}; % Constants xfem.const = {'k','0.225', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','0.2', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','0.2', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Geometry 2 fem=xfem.fem{2}; % Analyzed geometry clear s s.objs={g59,g2,g3,g6,g7,g8,g9}; s.name={'EXT1','EXT2','EXT3','EXT4't`,'EXT5','EXT6','EXT7'}; s.tags={'g59','g2','g3','g6','g7','g8','g9'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); g8=move(g8,[0,0,-4.0E-5]); g6=move(g6,[0,0,0.04E-6]); % Analyzed geometry clear s s.objs={g59,g2,g3,g6,g7,g8,g9}; s.name={'EXT1','EXT2','EXT3','EXT4','EXT5','EXT6','EXT7'}; s.tags={'g59','g2','g3','g6','g7','g8','g9'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','5.7735026E-1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','5.7735026E-1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Geometry 3 g10=extrude(g36,'distance',[40E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); % Geometry 2 g10=move(g10,[0,0,40E-6]); % Analyzed geometry clear s s.objs={g59,g2,g3,g6,g7,g8,g10}; s.name={'EXT1','EXT2','EXT3','EXT4','EXT5','EXT6','EXT8'}; s.tags={'g59','g2','g3','g6','g7','g8','g10'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); xfem.fem{2}=fem; % Geometry 1 fem=xfem.fem{1}; % Analyzed geometry clear s s.objs={g57}; s.name={'CO4'}; s.tags={'g57'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Geometry 2 g11=geomcomp({g2,g3},'ns',{'EXT2','EXT3'},'sf','EXT2+EXT3','face','all','edge','all'); xfem.fem{1}=fem; fem=xfem.fem{2}; % Analyzed geometry clear s s.objs={g59,g6,g7,g8,g10,g11}; s.name={'EXT1','EXT4','EXT5','EXT6','EXT8','CO1'}; s.tags={'g59','g6','g7','g8','g10','g11'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Initialize mesh for geometry 2 fem.mesh=meshinit(fem, ... 'hauto',6, ... 'hmaxsub',[2,0]); % Initialize mesh for geometry 2 fem.mesh=meshinit(fem, ... 'hauto',7, ... 'hmaxsub',[2,0]); xfem.fem{2}=fem; % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g36}; s.name={'R1'}; s.tags={'g36'}; fem.draw=struct('s',s); xfem.fem{3}=fem; % Geometry 4 fem=xfem.fem{4}; % Geometry objects clear s s.objs={g58}; s.name={'CO4'}; s.tags={'g58'}; fem.draw=struct('s',s); xfem.fem{4}=fem; % (Default values are not included) fem=xfem.fem{1}; fem.appl={}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {{},{},{}}; elem.geomdim = geomdim; elem.var = {}; map = cell(1,0); elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; elem.geomdim = {{{},{},{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,1,2,1,1,2,1,1,2,1,1,1,1,1,2,2,2,1,2,1,2,2,2,1,2,1,1, ... 1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',1,1,1}; equ.n = {1,'n_GaAs',1,1}; equ.Stype = {'none','none','none','coord'}; equ.matparams = {'epsr','n','epsr','epsr'}; equ.ind = [1,2,1,3,4,3,3,3,3,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*lambda0_rfw+3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{},{}},{{},'psi',{},'psi'},{'tEx',{},{},{}},{'tEy',{}, ... {},{}},{'tEz',{},{},{}},{{},'tEx',{},{}},{{},'tEy',{},{}},{{},'tEz',{},{}}}; bnd.map = {{'1','1','1','1'},{'1','1','1','1'},{'1','1','1','1'},{'1','1', ... '1','1'},{'1','1','1','1'},{'1','1','1','1'},{'1','1','1','1'},{'1','1', ... '1','1'}}; bnd.ind = {{'1','4','7','10','13','21','27'},{'2','5','8','11','14'},{'3', ... '6','9','12','15','16','17','18','19','20','22','23','24','25','26','28', ... '29','30','31','32','33','34','35','36','37','38','39','40','41','42', ... '43','44','45','46','47','48','49','50','51','52','53','54','55','57', ... '58','59','60','61','62'},{'56'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','34','35','36','37','38','39','40','41','42','43','44','45','46', ... '47','48','49','50','51','52','53','59','61'},{'29','30','31','32','33'}, ... {'54','55','56','57','58','60','62'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'68','62','47'}; submap.dg = '1'; submap.dv = {'22','16','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'22','16','62'}; submap.dg = '1'; submap.dv = {'7','1','47'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*ky*a1y))'},{'pconstr3-(psi*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'29','30','31','32','33'},{'54','55','56','57','58','60', ... '62'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*ky*a1y))', ... 'pconstr2y-(tEy*exp(i*ky*a1y))','pconstr2z-(tEz*exp(i*ky*a1y))'}},{{'pconstr1x-(tEx*exp(i*kx*a1x))', ... 'pconstr1y-(tEy*exp(i*kx*a1x))','pconstr1z-(tEz*exp(i*kx*a1x))'},{'0','0', ... '0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','34','35','36','37','38','39','40','41','42','43','44','45','46', ... '47','48','49','50','51','52','53','59','61'},{'29','30','31','32','33'}, ... {'54','55','56','57','58','60','62'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.ode= {}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g36}; s.name={'R1'}; s.tags={'g36'}; fem.draw=struct('s',s); xfem.fem{3}=fem; % Geometry 4 fem=xfem.fem{4}; % Geometry objects clear s s.objs={g58}; s.name={'CO4'}; s.tags={'g58'}; fem.draw=struct('s',s); xfem.fem{4}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) fem=xfem.fem{2}; % Initialize mesh for geometry 2 fem.mesh=meshinit(fem, ... 'hauto',9, ... 'hmaxsub',[2,0]); xfem.fem{2}=fem; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; map = cell(1,0); elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; elem.geomdim = {{{},{},{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,1,2,1,1,2,1,1,2,1,1,1,1,1,2,2,2,1,2,1,2,2,2,1,2,1,1, ... 1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',1,1,1}; equ.n = {1,'n_GaAs',1,1}; equ.Stype = {'none','none','none','coord'}; equ.matparams = {'epsr','n','epsr','epsr'}; equ.ind = [1,2,1,3,4,3,3,3,3,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*lambda0_rfw+3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{},{}},{{},'psi',{},'psi'},{'tEx',{},{},{}},{'tEy',{}, ... {},{}},{'tEz',{},{},{}},{{},'tEx',{},{}},{{},'tEy',{},{}},{{},'tEz',{},{}}}; bnd.map = {{'1','1','1','1'},{'1','1','1','1'},{'1','1','1','1'},{'1','1', ... '1','1'},{'1','1','1','1'},{'1','1','1','1'},{'1','1','1','1'},{'1','1', ... '1','1'}}; bnd.ind = {{'1','4','7','10','13','21','27'},{'2','5','8','11','14'},{'3', ... '6','9','12','15','16','17','18','19','20','22','23','24','25','26','28', ... '29','30','31','32','33','34','35','36','37','38','39','40','41','42', ... '43','44','45','46','47','48','49','50','51','52','53','54','55','57', ... '58','59','60','61','62'},{'56'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','34','35','36','37','38','39','40','41','42','43','44','45','46', ... '47','48','49','50','51','52','53','59','61'},{'29','30','31','32','33'}, ... {'54','55','56','57','58','60','62'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'68','62','47'}; submap.dg = '1'; submap.dv = {'22','16','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'22','16','62'}; submap.dg = '1'; submap.dv = {'7','1','47'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*ky*a1y))'},{'pconstr3-(psi*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'29','30','31','32','33'},{'54','55','56','57','58','60', ... '62'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*ky*a1y))', ... 'pconstr2y-(tEy*exp(i*ky*a1y))','pconstr2z-(tEz*exp(i*ky*a1y))'}},{{'pconstr1x-(tEx*exp(i*kx*a1x))', ... 'pconstr1y-(tEy*exp(i*kx*a1x))','pconstr1z-(tEz*exp(i*kx*a1x))'},{'0','0', ... '0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','34','35','36','37','38','39','40','41','42','43','44','45','46', ... '47','48','49','50','51','52','53','59','61'},{'29','30','31','32','33'}, ... {'54','55','56','57','58','60','62'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1,'xmesh',fem0.xmesh,'gmap',[0]); % Mapping current solution to current extended mesh u = asseminit(xfem,'init',fem0.sol,'solnum',1,'xmesh',fem0.xmesh,'gmap',[0]); % Solve problem xfem=adaption(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',1, ... 'shift',0-1.69646e13*i, ... 'eigref','-i*2*pi*2.7e12', ... 'solver','eigenvalue', ... 'eigselect',[1], ... 'l2scale',[1], ... 'l2staborder',[2], ... 'maxt',10000000, ... 'ngen',2, ... 'resorder',[0], ... 'rmethod','longest', ... 'tppar',1.7, ... 'linsolver','pardiso', ... 'geomnum',1); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Wav_rfw','cont','internal','unit','J/m^3'}, ... 'slicexspacing',5, ... 'sliceyspacing',0, ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'title','nu_rfw(1)=2.702313e12 Slice: Total energy density, time average [J/m^3]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.636837875825234E-4,-3.436394023844154E-4,2.893281058982558E-4], ... 'camtarget',[0,0,3.9249998962986865E-5], ... 'camup',[0,0,1], ... 'camva',12.279139809389953); % Plot solution postplot(xfem, ... 'slicedata',{'Wav_rfw','cont','internal','unit','J/m^3'}, ... 'slicexspacing',0, ... 'sliceyspacing',5, ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'title','nu_rfw(1)=2.702313e12 Slice: Total energy density, time average [J/m^3]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.636837875825234E-4,-3.436394023844154E-4,2.893281058982558E-4], ... 'camtarget',[0,0,3.9249998962986865E-5], ... 'camup',[0,0,1], ... 'camva',12.279139809389958); % Plot solution postplot(xfem, ... 'slicedata',{'Wav_rfw','cont','internal','unit','J/m^3'}, ... 'slicexspacing',1, ... 'sliceyspacing',0, ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'title','nu_rfw(1)=2.702313e12 Slice: Total energy density, time average [J/m^3]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[0,5.001562138705379E-4,3.9249998962986865E-5], ... 'camtarget',[0,0,3.9249998962986865E-5], ... 'camup',[1,0,0], ... 'camva',6.069736065650187); % Plot solution postplot(xfem, ... 'slicedata',{'Wav_rfw','cont','internal','unit','J/m^3'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[-3.2e-7 -3.2e-7], ... 'slicemap','jet(1024)', ... 'title','nu_rfw(1)=2.702313e12 Slice: Total energy density, time average [J/m^3]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[1.2828427487279438E-5,5.001562138705379E-4,1.3893955054955498E-7], ... 'camtarget',[1.2828427487279438E-5,0,1.3893955054955498E-7], ... 'camup',[1,0,0], ... 'camva',0.734775115199288); % Plot solution postplot(xfem, ... 'slicedata',{'Wav_rfw','cont','internal','unit','J/m^3'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[-3.2e-7 -3.2e-7], ... 'slicemap','jet(1024)', ... 'title','nu_rfw(1)=2.702313e12 Slice: Total energy density, time average [J/m^3]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[1.2828427487279438E-5,5.001562138705379E-4,1.3893955054955498E-7], ... 'camtarget',[1.2828427487279438E-5,0,1.3893955054955498E-7], ... 'camup',[1,0,0], ... 'camva',0.734775115199288); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[-3.2e-7 -3.2e-7], ... 'slicemap','jet(1024)', ... 'title','nu_rfw(1)=2.702313e12 Slice: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[0,0,5.394062128335248E-4], ... 'camtarget',[0,0,3.9249998962986865E-5], ... 'camup',[0,1,0], ... 'camva',6.03619037396728); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[-3.5e-7 -3.5e-7], ... 'slicemap','jet(1024)', ... 'title','nu_rfw(1)=2.702313e12 Slice: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[0,0,5.394062128335248E-4], ... 'camtarget',[0,0,3.9249998962986865E-5], ... 'camup',[0,1,0], ... 'camva',6.03619037396728); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[-3.6e-7 -3.6e-7], ... 'slicemap','jet(1024)', ... 'title','nu_rfw(1)=2.702313e12 Slice: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[0,0,5.394062128335248E-4], ... 'camtarget',[0,0,3.9249998962986865E-5], ... 'camup',[0,1,0], ... 'camva',6.03619037396728); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[-3e-7 -3e-7], ... 'slicemap','jet(1024)', ... 'title','nu_rfw(1)=2.702313e12 Slice: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[0,0,5.394062128335248E-4], ... 'camtarget',[0,0,3.9249998962986865E-5], ... 'camup',[0,1,0], ... 'camva',6.03619037396728); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[-3.1e-7 -3.1e-7], ... 'slicemap','jet(1024)', ... 'title','nu_rfw(1)=2.702313e12 Slice: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[0,0,5.394062128335248E-4], ... 'camtarget',[0,0,3.9249998962986865E-5], ... 'camup',[0,1,0], ... 'camva',6.03619037396728); % Plot solution postplot(xfem, ... 'slicedata',{'Hy','cont','internal','unit','A/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[-3.1e-7 -3.1e-7], ... 'slicemap','jet(1024)', ... 'title','nu_rfw(1)=2.702313e12 Slice: Magnetic field, y component [A/m]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[0,0,5.394062128335248E-4], ... 'camtarget',[0,0,3.9249998962986865E-5], ... 'camup',[0,1,0], ... 'camva',6.03619037396728); % Plot solution postplot(xfem, ... 'slicedata',{'Hy','cont','internal','unit','A/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[-3.1e-7 -3.1e-7], ... 'slicemap','jet(1024)', ... 'title','nu_rfw(1)=2.702313e12 Slice: Magnetic field, y component [A/m]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[0,0,5.394062128335248E-4], ... 'camtarget',[0,0,3.9249998962986865E-5], ... 'camup',[0,1,0], ... 'camva',6.03619037396728); fem=xfem.fem{2}; % Initialize mesh for geometry 2 fem.mesh=meshinit(fem, ... 'hmax',[3e-6], ... 'hmaxfact',5, ... 'hcurve',1, ... 'hgrad',2, ... 'hcutoff',0.07, ... 'hnarrow',0.1, ... 'hmaxsub',[1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,11,0]); % Initialize mesh for geometry 2 fem.mesh=meshinit(fem, ... 'hauto',9, ... 'hmaxsub',[1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,11,0]); xfem.fem{2}=fem; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; map = cell(1,0); elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; elem.geomdim = {{{},{},{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,1,2,1,1,2,1,1,2,1,1,1,1,1,2,2,2,1,2,1,2,2,2,1,2,1,1, ... 1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',1,1,1}; equ.n = {1,'n_GaAs',1,1}; equ.Stype = {'none','none','none','coord'}; equ.matparams = {'epsr','n','epsr','epsr'}; equ.ind = [1,2,1,3,4,3,3,3,3,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*lambda0_rfw+3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{},{}},{{},'psi',{},'psi'},{'tEx',{},{},{}},{'tEy',{}, ... {},{}},{'tEz',{},{},{}},{{},'tEx',{},{}},{{},'tEy',{},{}},{{},'tEz',{},{}}}; bnd.map = {{'1','1','1','1'},{'1','1','1','1'},{'1','1','1','1'},{'1','1', ... '1','1'},{'1','1','1','1'},{'1','1','1','1'},{'1','1','1','1'},{'1','1', ... '1','1'}}; bnd.ind = {{'1','4','7','10','13','21','27'},{'2','5','8','11','14'},{'3', ... '6','9','12','15','16','17','18','19','20','22','23','24','25','26','28', ... '29','30','31','32','33','34','35','36','37','38','39','40','41','42', ... '43','44','45','46','47','48','49','50','51','52','53','54','55','57', ... '58','59','60','61','62'},{'56'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','34','35','36','37','38','39','40','41','42','43','44','45','46', ... '47','48','49','50','51','52','53','59','61'},{'29','30','31','32','33'}, ... {'54','55','56','57','58','60','62'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'68','62','47'}; submap.dg = '1'; submap.dv = {'22','16','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'22','16','62'}; submap.dg = '1'; submap.dv = {'7','1','47'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*ky*a1y))'},{'pconstr3-(psi*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'29','30','31','32','33'},{'54','55','56','57','58','60', ... '62'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*ky*a1y))', ... 'pconstr2y-(tEy*exp(i*ky*a1y))','pconstr2z-(tEz*exp(i*ky*a1y))'}},{{'pconstr1x-(tEx*exp(i*kx*a1x))', ... 'pconstr1y-(tEy*exp(i*kx*a1x))','pconstr1z-(tEz*exp(i*kx*a1x))'},{'0','0', ... '0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','34','35','36','37','38','39','40','41','42','43','44','45','46', ... '47','48','49','50','51','52','53','59','61'},{'29','30','31','32','33'}, ... {'54','55','56','57','58','60','62'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Mapping current solution to current extended mesh u = asseminit(xfem,'init',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Solve problem xfem=adaption(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',1, ... 'shift',0-1.69646e13*i, ... 'eigref','-i*2*pi*2.7e12', ... 'solver','eigenvalue', ... 'eigselect',[1], ... 'l2scale',[1], ... 'l2staborder',[2], ... 'maxt',10000000, ... 'ngen',2, ... 'resorder',[0], ... 'rmethod','longest', ... 'tppar',1.7, ... 'linsolver','pardiso', ... 'geomnum',1); % Save current fem structure for restart purposes fem0=xfem; fem=xfem.fem{2}; % Initialize mesh for geometry 2 fem.mesh=meshinit(fem, ... 'hauto',8, ... 'hmaxsub',[1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,11,0]); xfem.fem{2}=fem; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; map = cell(1,0); elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; elem.geomdim = {{{},{},{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,1,2,1,1,2,1,1,2,1,1,1,1,1,2,2,2,1,2,1,2,2,2,1,2,1,1, ... 1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',1,1,1}; equ.n = {1,'n_GaAs',1,1}; equ.Stype = {'none','none','none','coord'}; equ.matparams = {'epsr','n','epsr','epsr'}; equ.ind = [1,2,1,3,4,3,3,3,3,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*lambda0_rfw+3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{},{}},{{},'psi',{},'psi'},{'tEx',{},{},{}},{'tEy',{}, ... {},{}},{'tEz',{},{},{}},{{},'tEx',{},{}},{{},'tEy',{},{}},{{},'tEz',{},{}}}; bnd.map = {{'1','1','1','1'},{'1','1','1','1'},{'1','1','1','1'},{'1','1', ... '1','1'},{'1','1','1','1'},{'1','1','1','1'},{'1','1','1','1'},{'1','1', ... '1','1'}}; bnd.ind = {{'1','4','7','10','13','21','27'},{'2','5','8','11','14'},{'3', ... '6','9','12','15','16','17','18','19','20','22','23','24','25','26','28', ... '29','30','31','32','33','34','35','36','37','38','39','40','41','42', ... '43','44','45','46','47','48','49','50','51','52','53','54','55','57', ... '58','59','60','61','62'},{'56'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','34','35','36','37','38','39','40','41','42','43','44','45','46', ... '47','48','49','50','51','52','53','59','61'},{'29','30','31','32','33'}, ... {'54','55','56','57','58','60','62'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'68','62','47'}; submap.dg = '1'; submap.dv = {'22','16','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'22','16','62'}; submap.dg = '1'; submap.dv = {'7','1','47'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*ky*a1y))'},{'pconstr3-(psi*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'29','30','31','32','33'},{'54','55','56','57','58','60', ... '62'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*ky*a1y))', ... 'pconstr2y-(tEy*exp(i*ky*a1y))','pconstr2z-(tEz*exp(i*ky*a1y))'}},{{'pconstr1x-(tEx*exp(i*kx*a1x))', ... 'pconstr1y-(tEy*exp(i*kx*a1x))','pconstr1z-(tEz*exp(i*kx*a1x))'},{'0','0', ... '0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','34','35','36','37','38','39','40','41','42','43','44','45','46', ... '47','48','49','50','51','52','53','59','61'},{'29','30','31','32','33'}, ... {'54','55','56','57','58','60','62'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Mapping current solution to current extended mesh u = asseminit(xfem,'init',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',1, ... 'shift',0-1.69646e13*i, ... 'eigref','-i*2*pi*2.7e12', ... 'linsolver','pardiso'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Hy','cont','internal','unit','A/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[-3.1e-7 -3.1e-7], ... 'slicemap','jet(1024)', ... 'title','nu_rfw(1)=2.681603e12 Slice: Magnetic field, y component [A/m]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[4.245817087407863E-6,5.001562138705379E-4,-7.483119080765377E-7], ... 'camtarget',[4.245817087407863E-6,0,-7.483119080765377E-7], ... 'camup',[1,0,0], ... 'camva',0.444986318904739); % Removing geometries xfem.fem={xfem.fem{1},xfem.fem{3},xfem.fem{4}}; % Geometry 3 [g1]=geomcopy({g58}); [g2]=geomcopy({g58}); [g3]=geomcopy({g58}); % Geometry 1 [g4]=geomcopy({g3}); g4=move(g4,[0,0]); fem=xfem.fem{1}; % Analyzed geometry clear s s.objs={g57,g4}; s.name={'CO4','CO1'}; s.tags={'g57','g4'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Constants xfem.const = {'k','0', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Initialize mesh for geometry 1 fem.mesh=meshinit(fem, ... 'hauto',3); xfem.fem{1}=fem; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a1y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Mapping current solution to current extended mesh u = asseminit(xfem,'init',fem0.sol,'solnum',1,'xmesh',fem0.xmesh,'gmap',[0]); % Solve problem xfem.sol=femeig(xfem, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-1.69646e13*i, ... 'eigref','-i*2*pi*2.7e12', ... 'linsolver','pardiso'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=2.693645e12 Surface: Ez [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.7051420646814764E-5,5.7051420646814764E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.328e5[1/m]*lambda0_rfwe+3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a1y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... t` 'geoms',[1]); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-1.69646e13*i, ... 'eigref','-i*2*pi*2.7e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=2.693645e12 Surface: Ez [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.246356837754131E-5,5.246356837754131E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a1y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-1.69646e13*i, ... 'eigref','-i*2*pi*2.7e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.081635e12 Surface: Ez [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.8941678559811635E-5,5.8941678559811635E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0.5', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0.5', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a1y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-1.69646e13*i, ... 'eigref','-i*2*pi*2.7e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.081635e12 Surface: Ez [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.246356837754131E-5,5.246356837754131E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a1y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-1.69646e13*i, ... 'eigref','-i*2*pi*2.7e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.081635e12 Surface: Ez [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.246356837754131E-5,5.246356837754131E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0.5', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0.5', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a1y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-1.69646e13*i, ... 'eigref','-i*2*pi*2.7e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.081635e12 Surface: Ez [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.246356837754131E-5,5.246356837754131E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a1y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Solve problem xfem.sol=femeig(xfem, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-1.69646e13*i, ... 'eigref','-i*2*pi*2.7e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.081635e12 Surface: Ez [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.246356837754131E-5,5.246356837754131E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0.05', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0.05', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0.05', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a1y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Solve problem xfem.sol=femeig(xfem, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-1.69646e13*i, ... 'eigref','-i*2*pi*2.7e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.081635e12 Surface: Ez [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.246356837754131E-5,5.246356837754131E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a1y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Solve problem xfem.sol=femeig(xfem, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-1.69646e13*i, ... 'eigref','-i*2*pi*2.7e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.081635e12 Surface: Ez [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.8941678559811635E-5,5.8941678559811635E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Plot solution postplot(xfem, ... 'tridata',{'Hy_rfwe','cont','internal','unit','A/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.081635e12 Surface: Magnetic field, y component [A/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.246356837754131E-5,5.246356837754131E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Plot solution postplot(xfem, ... 'tridata',{'normH_rfwe','cont','internal','unit','A/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.081635e12 Surface: Magnetic field, norm [A/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.027378465395699E-5,5.027378465395699E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a1y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Solve problem xfem.sol=femeig(xfem, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-1.69646e13*i, ... 'eigref','-i*2*pi*2.7e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'normH_rfwe','cont','internal','unit','A/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Magnetic field, norm [A/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.136867651574914E-5,5.136867651574914E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*ky*a1y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Solve problem xfem.sol=femeig(xfem, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-1.69646e13*i, ... 'eigref','-i*2*pi*2.7e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'normH_rfwe','cont','internal','unit','A/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Magnetic field, norm [A/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.136867651574914E-5,5.136867651574914E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.136867651574914E-5,5.136867651574914E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfwe(2)=3.081635e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=3.583435e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.246356837754131E-5,5.246356837754131E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=3.583435e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.246356837754131E-5,5.246356837754131E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Geometry 2 fem=xfem.fem{2}; % Geometry objects clear s s.objs={g36}; s.name={'R1'}; s.tags={'g36'}; fem.draw=struct('s',s); xfem.fem{2}=fem; % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g58}; s.name={'CO4'}; s.tags={'g58'}; fem.draw=struct('s',s); xfem.fem{3}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Constants xfem.const = {'k','0', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(-i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Solve problem xfem.sol=femeig(xfem, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-1.69646e13*i, ... 'eigref','-i*2*pi*2.7e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.894167855981163E-5,5.894167855981163E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0.5', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(-i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Solve problem xfem.sol=femeig(xfem, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-1.69646e13*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*2.7e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.081636e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(-i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))',t` ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Solve problem xfem.sol=femeig(xfem, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-1.69646e13*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*2.7e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.246356837754131E-5,5.246356837754131E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=3.583433e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(-i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-1.69646e13*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*2.7e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.894167855981163E-5,5.894167855981163E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfwe(2)=3.081635e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=3.583434e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.246356837754131E-5,5.246356837754131E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(-i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-1.69646e13*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*2.7e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.894167855981163E-5,5.894167855981163E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfwe(2)=3.081635e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(-i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-1.69646e13*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*2.7e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.246356837754131E-5,5.246356837754131E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(-i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-1.69646e13*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*2.7e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(-i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-1.69646e13*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*2.7e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(-i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-1.69646e13*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*2.7e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfwe(2)=3.081635e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(-i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.894167855981163E-5,5.894167855981163E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(-i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','1', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(-i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0.1', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(-i*ky*a2y))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(-i*ky*a2y*0))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.894167855981163E-5,5.894167855981163E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.2t`29473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(-i*ky*a2y*0))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','0.3333333333', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(-i*ky*a2y*0))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.894167855981163E-5,5.894167855981163E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0.5', ... 'k1','1.732050', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(-i*ky*a2y*0))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(-i*ky*a2y*0))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); fem=xfem.fem{1}; % Initialize mesh for geometry 1 fem.mesh=meshinit(fem, ... 'hauto',3); xfem.fem{1}=fem; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(-i*ky*a2y*0))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'xmesh',fem0.xmesh); % Mapping current solution to current extended mesh u = asseminit(xfem,'init',fem0.sol,'xmesh',fem0.xmesh); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.496738e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.705142064681475E-5,5.705142064681475E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(-i*ky*a2y*0))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948101e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.894167855981163E-5,5.894167855981163E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(-i*ky*a2y*0))'},{'pconstr1-(Ez*exp(i*kx*a1x))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-1.884956e13*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*3e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948268e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(0))'},{'pconstr1-(-Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-1.884956e13*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*3e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.94834e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.894167855981163E-5,5.894167855981163E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfwe(2)=3.081635e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(0))'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-1.884956e13*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*3e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948334e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.894167855981163E-5,5.894167855981163E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-1.884956e13*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*3e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948116e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.894167855981163E-5,5.894167855981163E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs2'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-1.884956e13*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*3e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=2.48939e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.894167855981163E-5,5.894167855981163E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfwe(2)=2.715182e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.222551e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.246356837754131E-5,5.246356837754131E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs2'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez*exp(i*kx*a1x))','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-1.884956e13*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*3e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=2.48939e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.894167855981163E-5,5.894167855981163E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear propt` prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_Air','n_GaAs2'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez*exp(i*kx*a1x))','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-1.884956e13*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*3e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=2.48939e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.894167855981163E-5,5.894167855981163E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=2.48939e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.894167855981163E-5,5.894167855981163E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfwe(2)=2.715182e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.222552e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.246356837754131E-5,5.246356837754131E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.222552e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.246356837754131E-5,5.246356837754131E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Geometry 2 fem=xfem.fem{2}; % Geometry objects clear s s.objs={g36}; s.name={'R1'}; s.tags={'g36'}; fem.draw=struct('s',s); xfem.fem{2}=fem; % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g58}; s.name={'CO4'}; s.tags={'g58'}; fem.draw=struct('s',s); xfem.fem{3}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez*exp(i*kx*a1x))','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',fem0.sol, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-1.884956e13*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*3e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948325e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.894167855981163E-5,5.894167855981163E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0.45', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez*exp(i*kx*a1x))','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-1.884956e13*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*3e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.948227e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez*exp(i*kx*a1x))','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-1.884956e13*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*3e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.081636e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez*exp(i*kx*a1x))','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-1.884956e13*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*3e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.081636e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.246356837754131E-5,5.246356837754131E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez*exp(i*kx*a1x))','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12', ... 'linsolver','pardiso'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=1.948087e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.246356837754131E-5,5.246356837754131E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0.4', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez*exp(i*kx*a1x))','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12', ... 'linsolver','pardiso'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=1.948074e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez*exp(i*kx*a1x))','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12', ... 'linsolver','pardiso'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=1.948082e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Constants xfem.const = {'k','0.25', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez*exp(i*kx*a1x))','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12', ... 'linsolver','pardiso'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=1.948079e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.894167855981163E-5,5.894167855981163E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % (Default values are not included) fem=xfem.fem{1}; % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = 'E0'; bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3','4','5','6','7'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','3','4','5','6'},{'2'},{'7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','13','14','15','16','17','18','19', ... '20','21','22','23','24','25','26','27','28'},{'7'},{'8','9','10','11', ... '12'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'24','19'}; submap.dg = '1'; submap.dv = {'6','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez*exp(i*kx*a1x))','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'7'},{'8','9','10','11','12'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',1, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12', ... 'linsolver','pardiso'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=1.948076e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.273729134298935E-5,5.273729134298935E-5,-3.029200817624994E-5,3.029200817624994E-5,-1,1]); % Geometry 2 fem=xfem.fem{2}; % Geometry objects clear s s.objs={g36}; s.name={'R1'}; s.tags={'g36'}; fem.draw=struct('s',s); xfem.fem{2}=fem; % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g58}; s.name={'CO4'}; s.tags={'g58'}; fem.draw=struct('s',s); xfem.fem{3}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Geometry 2 carr={curve2([0,3.9999999999999996E-5],[0,0],[1,1]), ... curve2([3.9999999999999996E-5,4.9999999999999996E-5],[0,1.9999999999999998E-5],[1,1]), ... curve2([4.9999999999999996E-5,9.999999999999999E-6],[1.9999999999999998E-5,1.9999999999999998E-5],[1,1]), ... curve2([9.999999999999999E-6,0],[1.9999999999999998E-5,0],[1,1])}; g1=geomcoerce('solid',carr); gg=geomedit(g1); gg{2}=beziercurve2([0,2.9E-5],[0,0],[1,1]); gg{4}=beziercurve2([2.9E-5,3.35E-5],[0,2.51147367E-5],[1,1]); gg{3}=beziercurve2([1.0E-5,5.0E-5],[2.51147367E-5,2.51147367E-5],[1,1]); gg{3}=beziercurve2([1.45E-5,3.35E-5],[2.51147367E-5,2.51147367E-5],[1,1]); gg{1}=beziercurve2([0,1.45E-5],[0,2.51147367E-5],[1,1]); gg{4}=beziercurve2([2.9E-5,4.35E-5],[0,2.51147367E-5],[1,1]); gg{3}=beziercurve2([1.45E-5,4.35E-5],[2.51147367E-5,2.51147367E-5],[1,1]); g2=geomedit(g1,gg); g3=ellip2(1.0E-5,1.0E-5,'base','center','pos',[-1.0E-5,0]); g5=ellip2(1.0E-5,1.0E-5,'base','center','pos',[0,0]); g6=ellip2('0.725E-5','0.725E-5','base','center','pos',{'1.45E-6','0.83715789E-5'},'rot','0'); g7=ellip2('0.725E-5','0.725E-5','base','center','pos',{'1.45E-5','0.83715789E-5'},'rot','0'); [g8]=geomcopy({g7}); g9=circ2(6.5E-6,'base','center','pos',[4.35E-5,2.51147367E-5]); g10=circ2('7.25E-6','base','center','pos',{'4.35E-5','2.51147367E-5'},'rot','0'); g10=move(g10,[-14.5E-6,-8.3715789E-6]); % Geometry 1 % Geometry 2 [g11,g12,g13]=geomcopy({g2,g7,g10}); % Geometry 1 [g14,g15,g16]=geomcopy({g11,g12,g13}); g14=move(g14,[0,0]); g15=move(g15,[0,0]); g16=move(g16,[0,0]); % Using one single geometry fem=xfem.fem{1}; % Keep global fields fields={'functions','const','globalexpr','xmesh','version'}; for ii=1:length(fields) if isfield(xfem,fields{ii}) fem.(fields{ii})=xfem.(fields{ii}); end end flclear xfem % Constants fem.const = {'k','0.25', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants fem.const = {'k','0.25', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Geometry % Analyzed geometry clear s s.objs={g14,g15,g16}; s.name={'CO1','E1','C1'}; s.tags={'g14','g15','g16'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Initialize mesh fem.mesh=meshinit(fem, ... 'hauto',3); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; % Application mode 2 clear appl appl.mode.class = 'AxisymmetricWaves'; appl.mode.type = 'axi'; appl.dim = {'Ephidr','Hphidr2','Ar2','Aphidr2','Az2','scEphi2','scHphi2', ... 'psi2'}; appl.sdim = {'x','z','y'}; appl.name = 'rfwe2'; appl.module = 'RF'; appl.assignsuffix = '_rfwe2'; clear prop clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm4','lm5','tlmr4','lm6','tlmz4'}; prop.weakconstr = weakconstr; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; fem.appl{2} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {{},{},{}}; elem.geomdim = geomdim; elem.var = {}; map = cell(1,0); elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; elem.geomdim = {{{},{},{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Mapping current solution to current extended mesh u = asseminit(fem,'init',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ephidr','Ez'}, ... 'outcomp',{'Ephidr','Ez'}, ... 'neigs',1, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12', ... 'linsolver','pardiso'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'title','nu_rfwe(1)=3.386833e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.705142064681476E-5,5.755363385673391E-5,-3.289496524970393E-5,3.0484341842092046E-5,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; % Application mode 2 clear appl appl.mode.class = 'AxisymmetricWaves'; appl.mode.type = 'axi'; appl.dim = {'Ephidr','Hphidr2','Ar2','Aphidr2','Az2','scEphi2','scHphi2', ... 'psi2'}; appl.sdim = {'x','z','y'}; appl.name = 'rfwe2'; appl.module = 'RF'; appl.assignsuffix = '_rfwe2'; clear prop clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm4','lm5','tlmr4','lm6','tlmz4'}; prop.weakconstr = weakconstr; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; fem.appl{2} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {{},{},{}}; elem.geomdim = geomdim; elem.var = {}; map = cell(1,0); elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; elem.geomdim = {{{},{},{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnumt`',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ephidr','Ez'}, ... 'outcomp',{'Ephidr','Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12', ... 'linsolver','pardiso'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=-3.387686e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.705142064681476E-5,5.755363385673391E-5,-3.431581207295793E-5,3.190518866534604E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfwe(2)=3.387712e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.705142064681476E-5,5.755363385673391E-5,-3.431581207295793E-5,3.190518866534604E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.47938e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.705142064681476E-5,5.755363385673391E-5,-3.431581207295793E-5,3.190518866534604E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.47938e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.705142064681476E-5,5.755363385673391E-5,-3.440864525156303E-5,3.199802184395115E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.47938e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.705142064681476E-5,5.755363385673391E-5,-3.440864525156303E-5,3.199802184395115E-5,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; % Application mode 2 clear appl appl.mode.class = 'AxisymmetricWaves'; appl.mode.type = 'axi'; appl.dim = {'Ephidr','Hphidr2','Ar2','Aphidr2','Az2','scEphi2','scHphi2', ... 'psi2'}; appl.sdim = {'x','z','y'}; appl.name = 'rfwe2'; appl.module = 'RF'; appl.assignsuffix = '_rfwe2'; clear prop clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm4','lm5','tlmr4','lm6','tlmz4'}; prop.weakconstr = weakconstr; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; fem.appl{2} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear pnt pnt.expr = {{'Ez',{},{}},{{},{},'Ez'}}; pnt.map = {{'1','1','1'},{'1','1','1'}}; pnt.ind = {{'1'},{'2','3','4','6','7','8','9','10','11','12'},{'5'}}; src{1} = {pnt,{},{}}; elem.src = src; geomdim = cell(1,1); clear pnt pnt.map = {{{},'2',{}},{{},{},'3'}}; pnt.ind = {{'1','2','3','4','5','6','7','9','10','11'},{'8'},{'12'}}; geomdim{1} = {pnt,{},{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8'}; submap.dg = '1'; submap.dv = {'1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'12'}; submap.dg = '1'; submap.dv = {'5'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear pnt pnt.constr = {{'pconstr1-(Ez)','0'},{'0','pconstr2-(Ez)'}}; pnt.cpoints = {{'2','2'},{'2','2'}}; pnt.ind = {{'8'},{'12'}}; elem.geomdim = {{pnt,{},{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ephidr','Ez'}, ... 'outcomp',{'Ephidr','Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12', ... 'linsolver','pardiso'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=3.387712e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.8068078388378485E-5,5.8570291598297636E-5,-3.2894965249703924E-5,3.048434184209204E-5,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; % Application mode 2 clear appl appl.mode.class = 'AxisymmetricWaves'; appl.mode.type = 'axi'; appl.dim = {'Ephidr','Hphidr2','Ar2','Aphidr2','Az2','scEphi2','scHphi2', ... 'psi2'}; appl.sdim = {'x','z','y'}; appl.name = 'rfwe2'; appl.module = 'RF'; appl.assignsuffix = '_rfwe2'; clear prop clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm4','lm5','tlmr4','lm6','tlmz4'}; prop.weakconstr = weakconstr; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; fem.appl{2} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear pnt pnt.expr = {{'Ez',{},{}},{{},{},'Ez'}}; pnt.map = {{'1','1','1'},{'1','1','1'}}; pnt.ind = {{'1'},{'2','3','4','6','7','8','9','10','11','12'},{'5'}}; src{1} = {pnt,{},{}}; elem.src = src; geomdim = cell(1,1); clear pnt pnt.map = {{{},'2',{}},{{},{},'3'}}; pnt.ind = {{'1','2','3','4','5','6','7','9','10','11'},{'8'},{'12'}}; geomdim{1} = {pnt,{},{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8'}; submap.dg = '1'; submap.dv = {'1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'12'}; submap.dg = '1'; submap.dv = {'5'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear pnt pnt.constr = {{'pconstr1-(-Ez)','0'},{'0','pconstr2-(-Ez)'}}; pnt.cpoints = {{'2','2'},{'2','2'}}; pnt.ind = {{'8'},{'12'}}; elem.geomdim = {{pnt,{},{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ephidr','Ez'}, ... 'outcomp',{'Ephidr','Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12', ... 'linsolver','pardiso'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=-3.387702e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.8068078388378485E-5,5.8570291598297636E-5,-3.2894965249703924E-5,3.048434184209204E-5,-1,1]); % Constants fem.const = {'k','0.25', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; clear pair pair.type = 'cont'; pair.pair = {{'Pair 1';'Pair 2'}}; bnd.pair = pair; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; % Application mode 2 clear appl appl.mode.class = 'AxisymmetricWaves'; appl.mode.type = 'axi'; appl.dim = {'Ephidr','Hphidr2','Ar2','Aphidr2','Az2','scEphi2','scHphi2', ... 'psi2'}; appl.sdim = {'x','z','y'}; appl.name = 'rfwe2'; appl.module = 'RF'; appl.assignsuffix = '_rfwe2'; clear prop clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm4','lm5','tlmr4','lm6','tlmz4'}; prop.weakconstr = weakconstr; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; clear pair pair.type = 'cont'; pair.pair = {{'Pair 1';'Pair 2'}}; bnd.pair = pair; appl.bnd = bnd; fem.appl{2} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Boundary settings clear bnd bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1]; bnd.dim = {'Ez','Ephidr'}; % Boundary pairs clear pair pair{1}.type= 'identity'; pair{1}.name= 'Pair 1'; pair{1}.src.dl = [1]; pair{1}.src.operator = 'src2dst_ip1'; pair{1}.dst.dl = [4]; pair{1}.dst.operator = 'dst2src_ip1'; pair{2}.type= 'identity'; pair{2}.name= 'Pair 2'; pair{2}.src.dl = [2]; pair{2}.src.operator = 'src2dst_ip2'; pair{2}.dst.dl = [3]; pair{2}.dst.operator = 'dst2src_ip2'; bnd.pair = pair; fem.bnd = bnd; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {{},{},{}}; elem.geomdim = geomdim; elem.var = {}; map = cell(1,0); elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; elem.geomdim = {{{},{},{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ephidr','Ez'}, ... 'outcomp',{'Ephidr','Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12', ... 'linsolver','pardiso'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=-3.387704e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.8068078388378485E-5,5.8570291598297636E-5,-3.2894965249703924E-5,3.048434184209204E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.479443e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.705142064681476E-5,5.755363385673391E-5,-3.431581207295793E-5,3.190518866534604E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.479443e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.705142064681476E-5,5.755363385673391E-5,-3.440864525156303E-5,3.199802184395115E-5,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; % Application mode 2 clear appl appl.mode.class = 'AxisymmetricWaves'; appl.mode.type = 'axi'; appl.dim = {'Ephidr','Hphidr2','Ar2','Aphidr2','Az2','scEphi2','scHphi2', ... 'psi2'}; appl.sdim = {'x','z','y'}; appl.name = 'rfwe2'; appl.module = 'RF'; appl.assignsuffix = '_rfwe2'; clear prop clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm4','lm5','tlmr4','lm6','tlmz4'}; prop.weakconstr = weakconstr; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; fem.appl{2} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Boundary settings clear bnd bnd.ind = [1,1,1,1,1,1,1,1,1,1,1,1]; bnd.dim = {'Ez','Ephidr'}; fem.bnd = bnd; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{}}}; bnd.map = {{'1','1'}}; bnd.ind = {{'1'},{'2','3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},'2'}}; bnd.ind = {{'1','2','3','5','6','7','8','9','10','11','12'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1'}; map = cell(1,2); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'pconstr1-(Ez)'}}; bnd.cpoints = {{'2'}}; bnd.ind = {{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ephidr','Ez'}, ... 'outcomp',{'Ephidr','Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12', ... 'linsolver','pardiso'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=-3.387675e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.8068078388378485E-5,5.8570291598297636E-5,-3.2894965249703924E-5,3.048434184209204E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.479862e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.705142064681476E-5,5.755363385673391E-5,-3.431581207295793E-5,3.190518866534604E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.479862e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.705142064681476E-5,5.755363385673391E-5,-3.440864525156303E-5,3.199802184395115E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.479862e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.705142064681476E-5,5.755363385673391E-5,-3.440864525156303E-5,3.199802184395115E-5,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; % Application mode 2 clear appl appl.mode.class = 'AxisymmetricWaves'; appl.mode.type = 'axi'; appl.dim = {'Ephidr','Hphidr2','Ar2','Aphidr2','Az2','scEphi2','scHphi2', ... 'psi2'}; appl.sdim = {'x','z','y'}; appl.name = 'rfwe2'; appl.module = 'RF'; appl.assignsuffix = '_rfwe2'; clear prop clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm4','lm5','tlmr4','lm6','tlmz4'}; prop.weakconstr = weakconstr; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; fem.appl{2} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'6','24'}; submap.dg = '1'; submap.dv = {'1','19'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(-Ez)'},{'pconstr1-(-Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Geometry g1=rect2(1.0E-5,1.0E-5,'base','corner','pos',[-3.0E-5,1.0E-5]); g2=rect2(1.0E-5,1.0E-5,'base','corner','pos',[-4.0E-5,-1.0E-5]); g3=rect2(1.0E-5,1.0E-5,'base','corner','pos',[-2.0E-5,-1.0E-5]); % Analyzed geometry clear s s.objs={g16,g14,g15,g1,g2,g3}; s.name={'C1','CO1','E1','R1','R2','R3'}; s.tags={'g16','g14','g15','g1','g2','g3'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Analyzed geometry clear s s.objs={g16,g14,g15}; s.name={'C1','CO1','E1'}; s.tags={'g16','g14','g15'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Initialize mesh fem.mesh=meshinit(fem, ... 'hauto',3); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; % Application mode 2 clear appl appl.mode.class = 'AxisymmetricWaves'; appl.mode.type = 'axi'; appl.dim = {'Ephidr','Hphidr2','Ar2','Aphidr2','Az2','scEphi2','scHphi2', ... 'psi2'}; appl.sdim = {'x','z','y'}; appl.name = 'rfwe2'; appl.module = 'RF'; appl.assignsuffix = '_rfwe2'; clear prop clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm4','lm5','tlmr4','lm6','tlmz4'}; prop.weakconstr = weakconstr; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; fem.appl{2} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{{},'Ez',{}},{{},{},'Ez'}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'3','4','5','6','7','8','9','10','11','12'},{'1'},{'2'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(-Ez)'},{'pconstr1-(-Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Mapping current solution to current extended mesh u = asseminit(fem,'init',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ephidr','Ez'}, ... 'outcomp',{'Ephidr','Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12', ... 'linsolver','pardiso'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=-3.387667e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.705142064681476E-5,5.755363385673391E-5,-3.350950141409961E-5,3.109887800648773E-5,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; % Application mode 2 clear appl appl.mode.class = 'AxisymmetricWaves'; appl.mode.type = 'axi'; appl.dim = {'Ephidr','Hphidr2','Ar2','Aphidr2','Az2','scEphi2','scHphi2', ... 'psi2'}; appl.sdim = {'x','z','y'}; appl.name = 'rfwe2'; appl.module = 'RF'; appl.assignsuffix = '_rfwe2'; clear prop clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm4','lm5','tlmr4','lm6','tlmz4'}; prop.weakconstr = weakconstr; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; fem.appl{2} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{{},'Ez',{}},{{},{},'Ez'}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'3','4','5','6','7','8','9','10','11','12'},{'1'},{'2'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(-Ez)'},{'pconstr1-(-Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ephidr','Ez'}, ... 'outcomp',{'Ephidr','Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=3.387712e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.705142064681476E-5,5.755363385673391E-5,-3.619622028293401E-5,3.3785596875322126E-5,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; % Application mode 2 clear appl appl.mode.class = 'AxisymmetricWaves'; appl.mode.type = 'axi'; appl.dim = {'Ephidr','Hphidr2','Ar2','Aphidr2','Az2','scEphi2','scHphi2', ... 'psi2'}; appl.sdim = {'x','z','y'}; appl.name = 'rfwe2'; appl.module = 'RF'; appl.assignsuffix = '_rfwe2'; clear prop clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm4','lm5','tlmr4','lm6','tlmz4'}; prop.weakconstr = weakconstr; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.epsilonr = {12.88,1}; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{2} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{{},'Ez',{}},{{},{},'Ez'}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'3','4','5','6','7','8','9','10','11','12'},{'1'},{'2'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(-Ez)'},{'pconstr1-(-Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ephidr','Ez'}, ... 'outcomp',{'Ephidr','Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=-3.387686e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.88220043540325E-5,5.932421756395165E-5,-3.350950141409961E-5,3.109887800648773E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfwe(2)=3.387712e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.705142064681476E-5,5.755363385673391E-5,-3.619622028293401E-5,3.3785596875322126E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfwe(2)=3.387712e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.705142064681476E-5,5.755363385673391E-5,-3.619622028293401E-5,3.3785596875322126E-5,-1,1]); % Initialize mesh fem.mesh=meshinit(fem, ... 'hauto',3); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.appl(2:end)=[]; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(-Ez)'},{'pconstr1-(-Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Mapping current solution to current extended mesh u = asseminit(fem,'init',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=3.387712e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.705142064681476E-5,5.755363385673391E-5,-3.350950141409961E-5,3.109887800648773E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=3.387712e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.705142064681476E-5,5.755363385673391E-5,-3.619622028293401E-5,3.3785596875322126E-5,-1,1]); % Initialize mesh fem.mesh=meshinit(fem, ... 'hauto',3); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Mapping current solution to current extended mesh u = asseminit(fem,'init',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=-3.387645e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.705142064681476E-5,5.755363385673391E-5,-3.350950141409961E-5,3.109887800648773E-5,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(-Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=-3.387676e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.88220043540325E-5,5.932421756395165E-5,-3.350950141409961E-5,3.109887800648773E-5,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(-Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Mapping current solution to current extended mesh u = asseminit(fem,'init',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Solve problem fem=adaption(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12', ... 'solver','eigenvalue', ... 'eigselect',[1], ... 'l2scale',[1], ... 'l2staborder',[2], ... 'maxt',10000000, ... 'ngen',2, ... 'resorder',[0], ... 'rmethod','longest', ... 'tppar',1.7, ... 'geomnum',1); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=3.387689e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.705142064681476E-5,5.755363385673391E-5,-3.619622028293401E-5,3.3785596875322126E-5,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'t`ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(-Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Mapping current solution to current extended mesh u = asseminit(fem,'init',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Solve problem fem=adaption(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12', ... 'solver','eigenvalue', ... 'eigselect',[1], ... 'l2scale',[1], ... 'l2staborder',[2], ... 'maxt',10000000, ... 'ngen',2, ... 'resorder',[0], ... 'rmethod','longest', ... 'tppar',1.7, ... 'geomnum',1); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=3.387687e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.88220043540325E-5,5.932421756395165E-5,-3.350950141409961E-5,3.109887800648773E-5,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = 'n_GaAs2'; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(-Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=2.343568e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.88220043540325E-5,5.932421756395165E-5,-3.350950141409961E-5,3.109887800648773E-5,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = 'n_GaAs2'; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(-Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.698662e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.88220043540325E-5,5.932421756395165E-5,-3.350950141409961E-5,3.109887800648773E-5,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(-Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.949912e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.88220043540325E-5,5.932421756395165E-5,-3.350950141409961E-5,3.109887800648773E-5,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.460078e11 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.88220043540325E-5,5.932421756395165E-5,-3.350950141409961E-5,3.109887800648773E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=3.736491e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-5.705142064681476E-5,5.755363385673391E-5,-3.619622028293401E-5,3.3785596875322126E-5,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez)'},{'pconstr1-(Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-1.884956e13*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*3e12'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=3.729123e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.195750012811662E-5,7.545750030250677E-5,-1.6976773064860507E-5,4.1763227170626324E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfwe(2)=3.741017e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.958400562252695E-5,4.437045972829277E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.300987e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.958400562252695E-5,4.437045972829277E-5,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(-Ez)'},{'pconstr1-(-Ez)','0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.951071e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.195750012811662E-5,7.545750030250677E-5,-1.6976773064860507E-5,4.1763227170626324E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfwe(2)=2.432708e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.958400562252695E-5,4.437045972829277E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfwe(2)=2.432708e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.958400562252695E-5,4.437045972829277E-5,-1,1]); % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.951071e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'phase',(90)*pi/180, ... 'title','nu_rfwe(1)=1.951071e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.951071e12 Surface: Electric field, z component [V/m]', ... 'geom','off', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9918262410074794E-5,4.4704716515840615E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.951071e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfwe(2)=2.432708e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.672522033890553E-5,8.022522051329569E-5,-1.958400562252695E-5,4.437045972829277E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.951071e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfwe(2)=2.432708e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'phase',(90)*pi/180, ... 'title','nu_rfwe(2)=2.432708e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfwe(2)=2.432708e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'phase',(45)*pi/180, ... 'title','nu_rfwe(2)=2.432708e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'phase',(90)*pi/180, ... 'title','nu_rfwe(2)=2.432708e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'phase',(90)*pi/180, ... 'title','nu_rfwe(3)=3.343213e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=3.343213e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*(0.5*b1x*a1x+0.5*b1y*a1x)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=9.324353e11 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.672522033890553E-5,8.022522051329569E-5,-1.958400562252695E-5,4.437045972829277E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfwe(2)=3.226514e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.061720960315309E-5,7.411720977754325E-5,-1.958400562252695E-5,4.437045972829277E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=3.266668e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.061720960315309E-5,7.411720977754325E-5,-1.958400562252695E-5,4.437045972829277E-5,-1,1]); % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*(0.5*b1x*a1x+0.5*b1y*a1x)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=9.341016e11 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.672522033890553E-5,8.022522051329569E-5,-1.958400562252695E-5,4.437045972829277E-5,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*(0.5*b1x*a1x+0.5*b1y*a1x)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=3.387687e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.672522033890553E-5,8.022522051329569E-5,-1.958400562252695E-5,4.437045972829277E-5,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*(0.5*b1x*a1x+0.5*b1y*a1x)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=9.328974e11 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.672522033890553E-5,8.022522051329569E-5,-1.958400562252695E-5,4.437045972829277E-5,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.934885e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.672522033890553E-5,8.022522051329569E-5,-1.958400562252695E-5,4.437045972829277E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfwe(2)=2.436988e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=3.266137e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=3.266137e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'kx','k*(k1*b1x+k2*b2x)', ... 'ky','k*(k1*b1y+k2*b2y)', ... 'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {t`'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.945726e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.945726e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.672522033890553E-5,8.022522051329569E-5,-1.958400562252695E-5,4.437045972829277E-5,-1,1]); % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants fem.const = {'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-4, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.955338e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.672522033890553E-5,8.022522051329569E-5,-1.958400562252695E-5,4.437045972829277E-5,-1,1]); % Constants fem.const = {'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants fem.const = {'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'k','0:Gamma, 1:X or J'}; fem.descr = descr; % Multiphysics fem=multiphysics(fem); % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Constants fem.const = {'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants fem.const = {'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'k','0:Gamma, 1:X'}; fem.descr = descr; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-8, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=1.947645e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=3.469535e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'phase',(90)*pi/180, ... 'title','nu_rfwe(3)=3.469535e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'phase',(45)*pi/180, ... 'title','nu_rfwe(3)=3.469535e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9918262410074794E-5,4.4704716515840615E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=3.469535e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=3.469535e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=3.469535e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Constants fem.const = {'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants fem.const = {'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'k','0:Gamma, 1:X'}; fem.descr = descr; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-8, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=-5.547649e10 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfwe(2)=5.82753e10 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.070703329044357E-5,7.420703346483373E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=3.72858e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.06172096031531E-5,7.411720977754325E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'InPlaneWaves'; appl.module = 'RF'; appl.assignsuffix = '_rfwe'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'H0','cont'}; bnd.ind = [1,1,1,1,2,2,2,2,2,2,2,2]; appl.bnd = bnd; clear equ equ.n = {'n_GaAs2','n_Air'}; equ.init = {{'Ez';0;0;0;0;0;0;'psi0_rfwe'}}; equ.matparams = 'n'; equ.ind = [1,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'k','0:Gamma, 1:X'}; fem.descr = descr; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(fem,'init',fem0.sol,'solnum',1); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'Ez'}, ... 'outcomp',{'Ez'}, ... 'neigs',3, ... 'shift',0-2.324779e13*i, ... 'etol',1e-8, ... 'eigref','-i*2*pi*3.7e12'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfwe(1)=3.72851e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfwe(2)=3.740056e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.314144e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'normH_rfwe','cont','internal','unit','A/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.314144e12 Surface: Magnetic field, norm [A/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Hx_rfwe','cont','internal','unit','A/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.314144e12 Surface: Magnetic field, x component [A/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-2.0259580960739833E-5,4.504603506650566E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Hy_rfwe','cont','internal','unit','A/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.314144e12 Surface: Magnetic field, y component [A/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-2.0608187451988485E-5,4.53946415577543E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'normPoav_rfwe','cont','internal','unit','W/m^2'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.314144e12 Surface: Power flow, time average, norm [W/m^2]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-2.0608187451988485E-5,4.53946415577543E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'n_rfwe','cont','internal'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.314144e12 Surface: Refractive index', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9984416848265487E-5,4.477087095403131E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'epsilonr_rfwe','cont','internal'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.314144e12 Surface: Relative permittivity', ... 'axisvisible','off', ... 'axis',[-3.06172096031531E-5,7.411720977754325E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.314144e12 Surface: Electric field, norm [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.975026506451349E-5,4.4536719170279306E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.314144e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-2.0259580960739833E-5,4.504603506650566E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'normE_rfwe','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.314144e12 Surface: Electric field, norm [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.314144e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-2.0259580960739833E-5,4.504603506650566E-5,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Ez','cont','internal','unit','V/m'}, ... 'trimap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfwe(3)=4.314144e12 Surface: Electric field, z component [V/m]', ... 'axisvisible','off', ... 'axis',[-3.0347738541281665E-5,7.384773871567182E-5,-1.9584005622526957E-5,4.437045972829278E-5,-1,1]); % Using multiple geometries flclear xfem % Keep global fields fields={'version','const','functions','xmesh','sol','globalexpr'}; for ii=1:length(fields) if isfield(fem,fields{ii}) xfem.(fields{ii})=fem.(fields{ii}); fem=rmfield(fem,fields{ii}); end end xfem.fem{1}=fem; % Geometry 1 [g1,g2,g3]=geomcopy({g16,g14,g15}); % Geometry 3 [g4,g5,g6]=geomcopy({g1,g2,g3}); g4=move(g4,[0,0]); g5=move(g5,[0,0]); g6=move(g6,[0,0]); g7=geomcomp({g4,g5,g6},'ns',{'C1','CO1','E1'},'sf','CO1-(C1+E1)','edge','none'); g8=geomcomp({g7},'ns',{'CO2'},'sf','CO2','edge','none'); % Geometry 1 g9=extrude(g14,'distance',[1E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); g10=extrude(g14,'distance',[0.5E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); % Geometry 2 g10=move(g10,[0,0,1E-6]); % Geometry 3 g11=extrude(g8,'distance',[0.7E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); % Geometry 2 g11=move(g11,[0,0,1.7E-6]); g11=move(g11,[0,0,-0.2E-6]); % Geometry 1 g12=extrude(g16,'distance',[0.7E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); g13=extrude(g15,'distance',[0.7E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); % Geometry 2 g12=move(g12,[0,0,1.5E-6]); g13=move(g13,[0,0,1.5E-6]); % Geometry 1 g17=extrude(g14,'distance',[40E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); % Geometry 2 g17=move(g17,[0,0,2.2E-6]); % Geometry 1 g18=extrude(g14,'distance',[40E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); % Geometry 2 g18=move(g18,[0,0,42.2E-6]); flclear fem % Analyzed geometry clear s s.objs={g9,g10,g11,g12,g13,g17,g18}; s.name={'EXT1','EXT2','EXT3','EXT4','EXT5','EXT6','EXT7'}; s.tags={'g9','g10','g11','g12','g13','g17','g18'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Constants xfem.const = {'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'gm','0', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'gm','0', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Initialize mesh for geometry 2 fem.mesh=meshinit(fem, ... 'hauto',9); xfem.fem{2}=fem; % (Default values are not included) fem=xfem.fem{1}; fem.appl={}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont','H0'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,2,2,2,2,3,3,3,3,3,2,2,2, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; flclear fem fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; flclear fem fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Mapping current solution to current extended mesh u = asseminit(xfem,'init',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',3, ... 'shift',0-2.324779e13*i, ... 'etol',1e-8, ... 'eigref','-i*2*pi*3.7e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Wav_rfw','cont','internal','unit','J/m^3'}, ... 'slicexspacing',5, ... 'sliceyspacing',0, ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=2.909793e12 Slice: Total energy density, time average [J/m^3]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[-2.321823371977652E-4,-3.1837369614360933E-4,2.8192981666666446E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,0,1], ... 'camva',11.748261283506755); % Plot solution postplot(xfem, ... 'slicedata',{'Wav_rfw','cont','internal','unit','J/m^3'}, ... 'slicexspacing',5, ... 'sliceyspacing',0, ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=2.909793e12 Slice: Total energy density, time average [J/m^3]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[2.3685763987088746E-4,6.327874804779989E-5,4.690626704280959E-4], ... 'camtarget',[2.1750000087195076E-5,1.255736879102187E-5,4.11000000895001E-5], ... 'camup',[-0.835688565716714,-0.3056799433047914,0.456272279885071], ... 'camva',10.239657229058677); % Plot solution postplot(xfem, ... 'slicedata',{'Wav_rfw','cont','internal','unit','J/m^3'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.15E-6 1.15E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=2.909793e12 Slice: Total energy density, time average [J/m^3]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[2.1750000087195076E-5,4.942170019453506E-4,4.11000000895001E-5], ... 'camtarget',[2.1750000087195076E-5,1.255736879102187E-5,4.11000000895001E-5], ... 'camup',[1,0,0], ... 'camva',6.762595188904891); % Plot solution postplot(xfem, ... 'slicedata',{'Wav_rfw','cont','internal','unit','J/m^3'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.15E-6 1.15E-6], ... 'slicemap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfw(2)=2.914402e12 Slice: Total energy density, time average [J/m^3]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.5817391726373047); % Plot solution postplot(xfem, ... 'slicedata',{'Wav_rfw','cont','internal','unit','J/m^3'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.15E-6 1.15E-6], ... 'slicemap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfw(2)=2.914402e12 Slice: Total energy density, time average [J/m^3]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.5817391726373047); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.15E-6 1.15E-6], ... 'slicemap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfw(2)=2.914402e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.5817391726373047); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.15E-6 1.15E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=2.909793e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.5817391726373047); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.15E-6 1.15E-6], ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(3)=3.842921e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.5817391726373047); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.15E-6 1.15E-6], ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(3)=3.842921e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.5817391726373047); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.15E-6 1.15E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=2.909793e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.5817391726373047); % Constants xfem.const = {'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont','H0'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,2,2,2,2,3,3,3,3,3,2,2,2, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for t`periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-8, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.15E-6 1.15E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.176502e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[-1.712554161345921E-5,-4.079836607088913E-4,2.726813831387349E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0.010895178939576781,0.48157092698742426,0.8763393962137884], ... 'camva',11.748261283506755); % Constants xfem.const = {'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.15E-6 1.15E-6], ... 'slicemap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfw(2)=1.588749e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[5.034096332415238E-4,1.2557368791021872E-5,4.11000000895001E-5], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,0,1], ... 'camva',10.23965722905867); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.15E-6 1.15E-6], ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(3)=1.916759e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.3410976162708725); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(3)=1.916759e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.3410976162708725); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfw(2)=1.588749e12 Slice: Electric field, y component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[5.19560057879615E-5,4.4727856911666635E-4,2.1507028090154374E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,9.88481012595797E-6], ... 'camup',[-0.07555955518128399,-0.42131832932397195,0.9037597130855433], ... 'camva',3.173974235937604); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(3)=1.916759e12 Slice: Electric field, y component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[5.19560057879615E-5,4.4727856911666635E-4,2.1507028090154374E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,9.88481012595797E-6], ... 'camup',[-0.07555955518128399,-0.42131832932397195,0.9037597130855433], ... 'camva',3.173974235937604); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(3)=1.916759e12 Slice: Electric field, y component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[5.19560057879615E-5,4.4727856911666635E-4,2.1507028090154374E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,9.88481012595797E-6], ... 'camup',[-0.07555955518128399,-0.42131832932397195,0.9037597130855433], ... 'camva',3.173974235937604); fem=xfem.fem{2}; % Initialize mesh for geometry 2 fem.mesh=meshinit(fem, ... 'hauto',8); % Initialize mesh for geometry 2 fem.mesh=meshinit(fem, ... 'hauto',7); % Initialize mesh for geometry 2 fem.mesh=meshinit(fem, ... 'hauto',8); xfem.fem{2}=fem; % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g8}; s.name={'CO1'}; s.tags={'g8'}; fem.draw=struct('s',s); xfem.fem{3}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont','H0'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,2,2,2,2,3,3,3,3,3,2,2,2, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Mapping current solution to current extended mesh u = asseminit(xfem,'init',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-8, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.473668e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[2.8645109752275854E-4,-3.1639902242624427E-4,2.4075700181604655E-4], ... 'camtarget',[1.8009209798672026E-5,6.416747453644363E-6,4.695709261874148E-6], ... 'camup',[-0.14085983269787553,0.50539493910631,0.851313375354843], ... 'camva',2.901037297440859); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(3)=1.660867e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[2.1750000087195076E-5,4.942170019453506E-4,4.11000000895001E-5], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[1,0,0], ... 'camva',6.343085863901157); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(3)=1.660867e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[2.1750000087195076E-5,4.942170019453506E-4,4.11000000895001E-5], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[1,0,0], ... 'camva',6.343085863901157); fem=xfem.fem{2}; % Initialize mesh for geometry 2 fem.mesh=meshinit(fem, ... 'hauto',8); xfem.fem{2}=fem; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont','H0'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,2,2,2,2,3,3,3,3,3,2,2,2, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Mapping current solution to current extended mesh u = asseminit(xfem,'init',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-8, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.473668e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[2.1750000087195076E-5,4.942170019453506E-4,4.11000000895001E-5], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[1,0,0], ... 'camva',6.343085863901157); fem=xfem.fem{2}; % Initialize mesh for geometry 2 fem.mesh=meshinit(fem, ... 'hauto',9); xfem.fem{2}=fem; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont','H0'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,2,2,2,2,3,3,3,3,3,2,2,2, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Mapping current solution to current extended mesh u = asseminit(xfem,'init',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-8, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.176502e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[2.1750000087195076E-5,4.942170019453506E-4,4.11000000895001E-5], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[1,0,0], ... 'camva',6.343085863901158); fem=xfem.fem{2}; % Initialize mesh for geometry 2 fem.mesh=meshinit(fem, ... 'hauto',9, ... 'hmaxsub',[2,0.1E-6], ... 'point',[], ... 'edge',[], ... 'face',[], ... 'subdomain',[2], ... 'meshstart',fem.mesh); % Initialize mesh for geometry 2 fem.mesh=meshinit(fem, ... 'hauto',9, ... 'hmaxsub',[2,0]); xfem.fem{2}=fem; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont','H0'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,2,2,2,2,3,3,3,3,3,2,2,2, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Mapping current solution to current extended mesh u = asseminit(xfem,'init',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-8, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.176502e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[2.1750000087195076E-5,4.942170019453506E-4,4.11000000895001E-5], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[1,0,0], ... 'camva',5.693816610093237); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'tetdata',{'Wav_rfw','cont','internal','unit','J/m^3'}, ... 'tetmap','jet(1024)', ... 'tetkeep',1, ... 'tetkeeptype','random', ... 'solnum',1, ... 'title','nu_rfw(1)=1.176502e12 Slice: Electric field, z component [V/m] Subdomain: Total energy density, time average [J/m^3]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[5.034096332415238E-4,1.2557368791021872E-5,4.11000000895001E-5], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,0,1], ... 'camva',10.23965722905867); % Plot solution postplot(xfem, ... 'tetdata',{'Wav_rfw','cont','internal','unit','J/m^3'}, ... 'tetmap','jet(1024)', ... 'tetkeep',1, ... 'tetkeeptype','random', ... 'solnum',1, ... 'title','nu_rfw(1)=1.176502e12 Subdomain: Total energy density, time average [J/m^3]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[-2.321823371977652E-4,-3.1837369614360933E-4,2.8192981666666446E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,0,1], ... 'camva',11.748261283506757); % Plot solution postplot(xfem, ... 'isodata',{'Ez','cont','internal','unit','V/m'}, ... 'isolevels',5, ... 'isomap','jet(1024)', ... 'isostriptol',0.01, ... 'solnum',1, ... 'title','nu_rfw(1)=1.176502e12 Isosurface: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[-2.3218233719776517E-4,-3.183736961436092E-4,2.819298166666645E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,0,1], ... 'camva',11.748261283506755); % Plot solution postplot(xfem, ... 'tridata',{'nPoav_rfw','cont','internal','unit','W/m^2'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.176502e12 Boundary: Power outflow, time average [W/m^2]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[-2.321823371977652E-4,-3.1837369614360933E-4,2.8192981666666446E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.110000008950t`01E-5], ... 'camup',[0,0,1], ... 'camva',11.748261283506755); % Plot solution postplot(xfem, ... 'tridata',{'nPoav_rfw','cont','internal','unit','W/m^2'}, ... 'trimap','jet(1024)', ... 'arrowdata',{'Ex','Ey','Ez'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowzspacing',[1.15E-6 1.15E-6], ... 'arrowtype','cone', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,0.0,0.0], ... 'solnum',1, ... 'title','nu_rfw(1)=1.176502e12 Boundary: Power outflow, time average [W/m^2] Arrow: Electric field [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'campos',[-2.321823371977652E-4,-3.1837369614360933E-4,2.8192981666666446E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,0,1], ... 'camva',11.748261283506755); % Plot solution postplot(xfem, ... 'tridata',{'nPoav_rfw','cont','internal','unit','W/m^2'}, ... 'trimap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.176502e12 Boundary: Power outflow, time average [W/m^2]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[4.663652306937251E-4,1.8036998169871146E-4,1.2957850873146062E-4], ... 'camtarget',[2.1750000087195076E-5,1.3476528857205117E-5,4.139480514206884E-6], ... 'camup',[-0.27767572366495635,0.017816518937342915,0.9605096377132809], ... 'camva',3.3643711044817675); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[3E-6 3E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.176502e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[4.1291814907723316E-4,2.582630713632681E-4,1.7247873770747591E-4], ... 'camtarget',[2.1750000087195076E-5,1.3476528857205117E-5,4.139480514206884E-6], ... 'camup',[-0.3846006580126723,-0.02006190859154801,0.9228650246270489], ... 'camva',3.364371104481763); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[3E-6 3E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.176502e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[4.1291814907723316E-4,2.582630713632681E-4,1.7247873770747591E-4], ... 'camtarget',[2.1750000087195076E-5,1.3476528857205117E-5,4.139480514206884E-6], ... 'camup',[-0.3846006580126723,-0.02006190859154801,0.9228650246270489], ... 'camva',3.364371104481763); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[3E-6 3E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.176502e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[4.1291814907723316E-4,2.582630713632681E-4,1.7247873770747591E-4], ... 'camtarget',[2.1750000087195076E-5,1.3476528857205117E-5,4.139480514206884E-6], ... 'camup',[-0.3846006580126723,-0.02006190859154801,0.9228650246270489], ... 'camva',3.364371104481763); fem=xfem.fem{2}; % Initialize mesh for geometry 2 fem.mesh=meshinit(fem, ... 'hauto',8, ... 'hmaxsub',[2,0]); % Initialize mesh for geometry 2 fem.mesh=meshinit(fem, ... 'hauto',8); % Initialize mesh for geometry 2 fem.mesh=meshinit(fem, ... 'hauto',9); % Constants xfem.const = {'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Initialize mesh for geometry 2 fem.mesh=meshinit(fem, ... 'hauto',9); xfem.fem{2}=fem; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont','H0'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,2,2,2,2,3,3,3,3,3,2,2,2, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Mapping current solution to current extended mesh u = asseminit(xfem,'init',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[3E-6 3E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.176502e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Constants xfem.const = {'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont','H0'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,2,2,2,2,3,3,3,3,3,2,2,2, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',3, ... 'shift',0-9.424778e12*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*1.5e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[3E-6 3E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=9.923347e11 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[3E-6 3E-6], ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(3)=1.587528e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont','H0'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,2,2,2,2,3,3,3,3,3,2,2,2, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',3, ... 'shift',0-1.130973e13*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*1.8e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[3E-6 3E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.58044e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[3E-6 3E-6], ... 'slicemap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfw(2)=2.038427e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[3E-6 3E-6], ... 'slicemap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfw(2)=2.038427e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfw(2)=2.038427e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.321823371977652E-4,-3.1837369614360933E-4,2.8192981666666446E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,0,1], ... 'camva',11.748261283506755); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.58044e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.409775094671948E-4,-3.3001668295913427E-4,2.566571790689377E-4], ... 'camtarget',[1.295482781776547E-5,9.14381975496914E-7,1.582736249177338E-5], ... 'camup',[0,0,1], ... 'camva',3.964009752422722); % Constants xfem.const = {'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[3E-6 3E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.58044e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.5571717116256094E-4,-3.614879039304412E-4,1.8457552498378173E-4], ... 'camtarget',[1.295482781776547E-5,9.14381975496914E-7,1.582736249177338E-5], ... 'camup',[0.21621155049650148,0.2758146789500891,0.9365782553036118], ... 'camva',3.9640097524227156); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[3E-6 3E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.58044e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[5.034096332415238E-4,1.2557368791021872E-5,4.11000000895001E-5], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,0,1], ... 'camva',10.23965722905867); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1E-6 1E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.58044e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.5E-6 1.5E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.58044e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[2E-6 2E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.58044e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.7E-6 1.7E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.58044e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.2E-6 1.2E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.58044e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[4.2778254693362344E-5,4.942170019453506E-4,1.0050817919199818E-6], ... 'camtarget',[4.2778254693362344E-5,1.2557368791021872E-5,1.0050817919199818E-6], ... 'camup',[1,0,0], ... 'camva',0.4106781828251477); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.1E-6 1.1E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.58044e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.58044e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfw(2)=2.038427e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfw(2)=2.038427e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.58044e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfw(2)=2.038427e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(3)=2.058795e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Constants xfem.const = {'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont','H0'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,2,2,2,2,3,3,3,3,3,2,2,2, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1't`,'2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',3, ... 'shift',0-1.130973e13*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*1.8e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.581636e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfw(2)=1.90974e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(3)=2.143313e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont','H0'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,2,2,2,2,3,3,3,3,3,2,2,2, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',3, ... 'shift',0-6.283185e12*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*1.8e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=8.760305e11 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(3)=9.915924e11 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(3)=9.915924e11 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont','H0'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,2,2,2,2,3,3,3,3,3,2,2,2, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',3, ... 'shift',0-8.168141e12*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*1.8e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=9.915924e11 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfw(2)=1.160478e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=9.915924e11 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(3)=1.581636e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfw(2)=1.160478e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont','H0'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,2,2,2,2,3,3,3,3,3,2,2,2, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',3, ... 'shift',0-1.570796e13*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*1.8e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=2.183653e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfw(2)=2.230801e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(3)=2.440443e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont','H0'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,2,2,2,2,3,3,3,3,3,2,2,2, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',1, ... 'shift',0-6.911504e12*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*1.8e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'title','nu_rfw(1)=9.915924e11 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont','H0'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,2,2,2,2,3,3,3,3,3,2,2,2, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},t`'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',1, ... 'shift',0-8.168141e12*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*1.8e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'title','nu_rfw(1)=1.160478e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Constants xfem.const = {'gm','1', ... 'k','0.1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont','H0'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,2,2,2,2,3,3,3,3,3,2,2,2, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',1, ... 'shift',0-8.168141e12*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*1.8e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'title','nu_rfw(1)=1.162963e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Constants xfem.const = {'gm','1', ... 'k','0.2', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'gm','1', ... 'k','0.2', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont','H0'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,2,2,2,2,3,3,3,3,3,2,2,2, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',1, ... 'shift',0-8.168141e12*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*1.8e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'title','nu_rfw(1)=1.170297e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Constants xfem.const = {'gm','1', ... 'k','0.3', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont','H0'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,2,2,2,2,3,3,3,3,3,2,2,2, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',1, ... 'shift',0-8.168141e12*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*1.8e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'title','nu_rfw(1)=1.182116e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Constants xfem.const = {'gm','1', ... 'k','0.4', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont','H0'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,2,2,2,2,3,3,3,3,3,2,2,2, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',1, ... 'shift',0-8.168141e12*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*1.8e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'title','nu_rfw(1)=1.1978e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Constants xfem.const = {'gm','1', ... 'k','0.6', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont','H0'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,2,2,2,2,3,3,3,3,3,2,2,2, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'ft`rame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',1, ... 'shift',0-8.168141e12*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*1.8e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'title','nu_rfw(1)=1.236876e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Constants xfem.const = {'gm','1', ... 'k','0.8', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont','H0'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,2,2,2,2,3,3,3,3,3,2,2,2, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',1, ... 'shift',0-8.168141e12*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*1.8e12'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'title','nu_rfw(1)=1.276132e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',4.443171177959632); % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g8}; s.name={'CO1'}; s.tags={'g8'}; fem.draw=struct('s',s); xfem.fem{3}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Constants xfem.const = {'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'faround','1.3e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'faround','1.3e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont','H0'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,2,2,2,2,3,3,3,3,3,2,2,2, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',5, ... 'shift',0-8.168141e12*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*faround'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=9.028205e11 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.452513462555504); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',4, ... 'title','nu_rfw(4)=1.61344e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.452513462555504); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(5)=1.656378e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.452513462555504); % Plot solution postplot(xfem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(5)=1.656378e12 Slice: Electric field, norm [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.452513462555504); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(5)=1.656378e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.452513462555504); % Constants xfem.const = {'faround','1.6e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.type = {'E0','cont','H0'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,2,2,2,2,3,3,3,3,3,2,2,2, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',5, ... 'shift',0-1.00531e13*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*faround'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.607618e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.452513462555504); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfw(2)=1.64957e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.452513462555504); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',3, ... 'title','nu_rfw(3)=1.708051e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.452513462555504); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',4, ... 'title','nu_rfw(4)=2.179759e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.452513462555504); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(5)=2.183378e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.452513462555504); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(5)=2.183378e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.452513462555504); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfw(2)=1.64957e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.452513462555504); % Constants xfem.const = {'zTi','500', ... 'faround','1.6e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.border = 'on'; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.eta = {1,1,1,'zTi'}; bnd.type = {'E0','cont','H0','sIM'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,4,2,2,2,3,3,3,3,3,2,2,4, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',5, ... 'shift',0-1.00531e13*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*faround'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.157745e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.321823371977652E-4,-3.1837369614360933E-4,2.8192981666666446E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,0,1], ... 'camva',11.748261283506755); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfw(2)=1.586274e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.8475596735470057); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',3, ... 'title','nu_rfw(3)=1.898634e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.8475596735470057); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',4, ... 'title','nu_rfw(4)=2.145679e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.8475596735470057); % Plot solution postplot(xfem, ...t` 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(5)=2.183666e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.8475596735470057); % Constants xfem.const = {'zTi','150', ... 'faround','1.6e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.border = 'on'; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.eta = {1,1,1,'zTi'}; bnd.type = {'E0','cont','H0','sIM'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,4,2,2,2,3,3,3,3,3,2,2,4, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',5, ... 'shift',0-1.00531e13*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*faround'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.111637e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.8475596735470057); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfw(2)=1.585825e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.8475596735470057); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',3, ... 'title','nu_rfw(3)=1.818057e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.8475596735470057); % Constants xfem.const = {'zTi','120', ... 'faround','1.6e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.border = 'on'; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.eta = {1,1,1,'zTi'}; bnd.type = {'E0','cont','H0','sIM'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,4,2,2,2,3,3,3,3,3,2,2,4, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',5, ... 'shift',0-1.00531e13*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*faround'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.098843e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.8475596735470057); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfw(2)=1.58572e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.8475596735470057); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',3, ... 'title','nu_rfw(3)=1.785059e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.8475596735470057); % Constants xfem.const = {'zTi','120', ... 'faround','1.6e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'zTi','100', ... 'faround','1.6e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.border = 'on'; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.eta = {1,1,1,'zTi'}; bnd.type = {'E0','cont','H0','sIM'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,4,2,2,2,3,3,3,3,3,2,2,4, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',5, ... 'shift',0-1.00531e13*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*faround'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.088316e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.8475596735470057); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',3, ... 'title','nu_rfw(3)=1.751991e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.8475596735470057); % Constants xfem.const = {'zTi','50', ... 'faround','1.6e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.border = 'on'; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.eta = {1,1,1,'zTi'}; bnd.type = {'E0','cont','H0','sIM'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,4,2,2,2,3,3,3,3,3,2,2,4, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',5, ... 'shift',0-1.00531e13*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*faround'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.053387e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.8475596735470057); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',3, ... 'title','nu_rfw(3)=1.589473e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.8475596735470057); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',3, ... 'title','nu_rfw(3)=1.589473e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.321823371977652E-4,-3.1837369614360933E-4,2.8192981666666446E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,0,1], ... 'camva',11.748261283506757); % Constants xfem.const = {'zTi','2000', ... 'faround','1.6e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.border = 'on'; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.eta = {1,1,1,'zTi'}; bnd.type = {'E0','cont','H0','sIM'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,4,2,2,2,3,3,3,3,3,2,2,4, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('ordet`r',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',5, ... 'shift',0-1.00531e13*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*faround'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.169085e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,4.942170019453506E-4,4.11000000895001E-5], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[1,0,0], ... 'camva',6.775877352632658); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',3, ... 'title','nu_rfw(3)=1.91233e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,4.942170019453506E-4,4.11000000895001E-5], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[1,0,0], ... 'camva',6.775877352632658); % Constants xfem.const = {'zTi','10000', ... 'faround','1.6e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.border = 'on'; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.eta = {1,1,1,'zTi'}; bnd.type = {'E0','cont','H0','sIM'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,4,2,2,2,3,3,3,3,3,2,2,4, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',5, ... 'shift',0-1.00531e13*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*faround'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.170871e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,4.942170019453506E-4,4.11000000895001E-5], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[1,0,0], ... 'camva',6.775877352632658); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',3, ... 'title','nu_rfw(3)=1.914189e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,4.942170019453506E-4,4.11000000895001E-5], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[1,0,0], ... 'camva',6.775877352632658); % Constants xfem.const = {'zTi','10000', ... 'faround','1.6e12', ... 'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.border = 'on'; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.eta = {1,1,1,'zTi'}; bnd.type = {'E0','cont','H0','sIM'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,4,2,2,2,3,3,3,3,3,2,2,4, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',5, ... 'shift',0-1.00531e13*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*faround'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.305927e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,4.942170019453506E-4,4.11000000895001E-5], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[1,0,0], ... 'camva',6.775877352632658); % Plot solution postplot(xfem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.305927e12 Slice: Electric field, norm [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.588785737634884); % Plot solution postplot(xfem, ... 'slicedata',{'Ey','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.305927e12 Slice: Electric field, y component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.114910768039689E-5,4.942170019453506E-4,4.22705694506596E-6], ... 'camtarget',[2.114910768039689E-5,1.2557368791021872E-5,4.22705694506596E-6], ... 'camup',[1,0,0], ... 'camva',3.884375540750126); % Plot solution postplot(xfem, ... 'slicedata',{'Ex','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.305927e12 Slice: Electric field, x component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.114910768039689E-5,4.942170019453506E-4,4.22705694506596E-6], ... 'camtarget',[2.114910768039689E-5,1.2557368791021872E-5,4.22705694506596E-6], ... 'camup',[1,0,0], ... 'camva',3.884375540750126); % Constants xfem.const = {'zTi','100', ... 'faround','1.6e12', ... 'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'zTi','100', ... 'faround','1.6e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'zTi','100', ... 'faround','1.6e12', ... 'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.border = 'on'; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.eta = {1,1,1,'zTi'}; bnd.type = {'E0','cont','H0','sIM'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,4,2,2,2,3,3,3,3,3,2,2,4, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',5, ... 'shift',0-1.00531e13*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*faround'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ex','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.23707e12 Slice: Electric field, x component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.114910768039689E-5,4.942170019453506E-4,4.22705694506596E-6], ... 'camtarget',[2.114910768039689E-5,1.2557368791021872E-5,4.22705694506596E-6], ... 'camup',[1,0,0], ... 'camva',3.884375540750126); % Plot solution postplot(xfem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.23707e12 Slice: Electric field, norm [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.321823371977652E-4,-3.1837369614360933E-4,2.8192981666666446E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,0,1], ... 'camva',11.748261283506757); % Plot solution postplot(xfem, ... 'slicedata',{'Hz','cont','internal','unit','A/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.23707e12 Slice: Magnetic field, z component [A/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.5751662962537694); % Plot solution postplot(xfem, ... 'slicedata',{'normH_rfw','cont','internal','unit','A/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.23707e12 Slice: Magnetic field, norm [A/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.588785737634884); % Plot solution postplot(xfem, ... 'slicedata',{'Hz','cont','internal','unit','A/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.23707e12 Slice: Magnetic field, z component [A/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.588785737634884); % Plot solution postplot(xfem, ... 'slicedata',{'Hz','cont','internal','unit','A/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.23707e12 Slice: Magnetic field, z component [A/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.588785737634884); % Plot solution postplot(xfem, ... 'slicedata',{'Hy','cont','internal','unit','A/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.23707e12 Slice: Magnetic field, y component [A/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.588785737634884); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.23707e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.588785737634884); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.23707e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.588785737634884); % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g8}; s.name={'CO1'}; s.tags={'g8'}; fem.draw=struct('s',s); xfem.fem{3}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Plot solution postplot(xfem, ... 'slicedata',{'normH_rfw','cont','internal','unit','A/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.23707e12 Slice: Magnetic field, norm [A/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.23707e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'phase',(-20)*pi/180, ... 'title','nu_rfw(1)=1.23707e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'phase',(-15)*pi/180, ... 'title','nu_rfw(1)=1.23707e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'phase',(-13)*pi/180, ... 'title','nu_rfw(1)=1.23707e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'phase',(-10)*pi/180, ... 'title','nu_rfw(1)=1.23707e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'phase',(-20)*pi/180, ... 'title','nu_rfw(1)=1.23707e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'phase',(-15)*pi/180, ... 'title','nu_rfw(1)=1.23707e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'phase',(165)*pi/180, ... 'title','nu_rfw(1)=1.23707e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'phase',(165)*pi/180, ... 'title','nu_rfw(1)=1.23707e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Constants xfem.const = {'zTi','1000000', ... 'faround','1.6e12', ... 'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.border = 'on'; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.eta = {1,1,1,'zTi'}; bnd.type = {'E0','cont','H0','sIM'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,4,2,2,2,3,3t`,3,3,3,2,2,4, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',5, ... 'shift',0-1.00531e13*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*faround'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'phase',(165)*pi/180, ... 'title','nu_rfw(1)=1.306206e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',3, ... 'phase',(165)*pi/180, ... 'title','nu_rfw(3)=2.042546e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',4, ... 'phase',(165)*pi/180, ... 'title','nu_rfw(4)=2.063079e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'phase',(165)*pi/180, ... 'title','nu_rfw(5)=2.155323e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',4, ... 'phase',(165)*pi/180, ... 'title','nu_rfw(4)=2.063079e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',3, ... 'phase',(165)*pi/180, ... 'title','nu_rfw(3)=2.042546e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',2, ... 'phase',(165)*pi/180, ... 'title','nu_rfw(2)=1.585215e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',2, ... 'phase',(180)*pi/180, ... 'title','nu_rfw(2)=1.585215e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',3, ... 'phase',(180)*pi/180, ... 'title','nu_rfw(3)=2.042546e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',4, ... 'phase',(180)*pi/180, ... 'title','nu_rfw(4)=2.063079e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'phase',(180)*pi/180, ... 'title','nu_rfw(5)=2.155323e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',4, ... 'phase',(180)*pi/180, ... 'title','nu_rfw(4)=2.063079e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Constants xfem.const = {'zTi','1000000', ... 'faround','1.6e12', ... 'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.border = 'on'; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.eta = {1,1,1,'zTi'}; bnd.type = {'E0','cont','H0','sIM'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,4,2,2,2,3,3,3,3,3,2,2,4, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',5, ... 'shift',0-1.00531e13*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*faround'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'phase',(180)*pi/180, ... 'title','nu_rfw(1)=1.306206e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',4, ... 'phase',(180)*pi/180, ... 'title','nu_rfw(4)=2.063079e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',3, ... 'phase',(180)*pi/180, ... 'title','nu_rfw(3)=2.042546e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',3, ... 'phase',(165)*pi/180, ... 'title','nu_rfw(3)=2.042546e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',3, ... 'phase',(195)*pi/180, ... 'title','nu_rfw(3)=2.042546e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',3, ... 'phase',(100)*pi/180, ... 'title','nu_rfw(3)=2.042546e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',3, ... 'phase',(25)*pi/180, ... 'title','nu_rfw(3)=2.042546e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',3, ... 'title','nu_rfw(3)=2.042546e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',3, ... 'title','nu_rfw(3)=2.042546e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.3021663583555746E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.3021663583555746E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',3.9265825225280606); % Constants xfem.const = {'zTi','1000000', ... 'faround','1.6e12', ... 'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'zTi','1000000', ... 'faround','1.6e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.border = 'on'; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.eta = {1,1,1,'zTi'}; bnd.type = {'E0','cont','H0','sIM'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,4,2,2,2,3,3,3,3,3,2,2,4, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',5, ... 'shift',0-1.00531e13*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*faround'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.171214e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.321823371977652E-4,-3.1837369614360933E-4,2.8192981666666446E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,0,1], ... 'camva',11.748261283506755); % Constants xfem.const = {'zTi','1000000', ... 'faround','1.6e12', ... 'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.border = 'on'; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.eta = {1,1,1,'zTi'}; bnd.type = {'E0','cont','H0','sIM'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,4,2,2,2,3,3,3,3,3,2,2,4, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',5, ... 'shift',0-1.00531e13*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*faround'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.306206e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',5.199471376465695); % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submt`ap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.border = 'on'; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.eta = {1,1,1,'zTi'}; bnd.type = {'E0','cont','H0','sIM'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,4,2,2,2,3,3,3,3,3,2,2,4, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',5, ... 'shift',0-1.00531e13*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*faround'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.306206e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[2.1750000087195076E-5,1.2557368791021872E-5,5.227596332438288E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,1,0], ... 'camva',5.199471376465697); % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g8}; s.name={'CO1'}; s.tags={'g8'}; fem.draw=struct('s',s); xfem.fem{3}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g8}; s.name={'CO1'}; s.tags={'g8'}; fem.draw=struct('s',s); xfem.fem{3}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.306206e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'sdl',{[1,2,3,6,7]}, ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-1.107825516397563E-4,-1.601624153469307E-4,1.2679407447197858E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,1.0999999631167157E-6], ... 'camup',[0,0,1], ... 'camva',11.038108040478221, ... 'camprojection','perspective'); % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g8}; s.name={'CO1'}; s.tags={'g8'}; fem.draw=struct('s',s); xfem.fem{3}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Constants xfem.const = {'zTi','100', ... 'faround','1.3e12', ... 'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; fem=xfem.fem{2}; % Initialize mesh for geometry 2 fem.mesh=meshinit(fem, ... 'hauto',9); xfem.fem{2}=fem; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.border = 'on'; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.eta = {1,1,1,'zTi'}; bnd.type = {'E0','cont','H0','sIM'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,4,2,2,2,3,3,3,3,3,2,2,4, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Mapping current solution to current extended mesh u = asseminit(xfem,'init',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',5, ... 'shift',0-8.168141e12*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*faround'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=8.868404e11 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'sdl',{[1,2,3,6,7]}, ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-1.107825516397563E-4,-1.601624153469307E-4,1.2679407447197858E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,1.0999999631167157E-6], ... 'camup',[0,0,1], ... 'camva',11.038108040478221, ... 'camprojection','perspective'); % Plot solution postplot(xfem, ... 'slicedata',{'Ez','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',4, ... 'title','nu_rfw(4)=1.252197e12 Slice: Electric field, z component [V/m]', ... 'geomnum',[2], ... 'sdl',{[1,2,3,6,7]}, ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-1.0361202373973717E-4,-1.6566455492267147E-4,1.2679407447197858E-4], ... 'camtarget',[2.892052798721421E-5,7.055229215281093E-6,1.0999999631167159E-6], ... 'camup',[0,0,1], ... 'camva',11.038108040478223, ... 'camprojection','perspective'); % Plot solution postplot(xfem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',4, ... 'title','nu_rfw(4)=1.252197e12 Slice: Electric field, norm [V/m]', ... 'geomnum',[2], ... 'sdl',{[1,2,3,6,7]}, ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-1.0361202373973717E-4,-1.6566455492267147E-4,1.2679407447197858E-4], ... 'camtarget',[2.892052798721421E-5,7.055229215281093E-6,1.0999999631167159E-6], ... 'camup',[0,0,1], ... 'camva',11.038108040478223, ... 'camprojection','perspective'); % Plot solution postplot(xfem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',4, ... 'title','nu_rfw(4)=1.252197e12 Slice: Electric field, norm [V/m]', ... 'geomnum',[2], ... 'sdl',{[1,2,3,6,7]}, ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-1.0361202373973717E-4,-1.6566455492267147E-4,1.2679407447197858E-4], ... 'camtarget',[2.892052798721421E-5,7.055229215281093E-6,1.0999999631167159E-6], ... 'camup',[0,0,1], ... 'camva',11.038108040478223, ... 'camprojection','perspective'); % Plot solution postplot(xfem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'solnum',4, ... 'title','nu_rfw(4)=1.252197e12 Slice: Electric field, norm [V/m]', ... 'geomnum',[2], ... 'sdl',{[1,2,3,6,7]}, ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.416534065910536E-4,-3.3071663408488225E-4,2.5498268662608694E-4], ... 'camtarget',[1.2278930693906852E-5,2.1443084974890823E-7,1.4152870048922667E-5], ... 'camup',[0,0,1], ... 'camva',2.946749511077192); % Constants xfem.const = {'zTi','10000000', ... 'faround','1.3e12', ... 'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.border = 'on'; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.eta = {1,1,1,'zTi'}; bnd.type = {'E0','cont','H0','sIM'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,4,2,2,2,3,3,3,3,3,2,2,4, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',5, ... 'shift',0-8.168141e12*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*faround'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=8.874554e11 Slice: Electric field, norm [V/m]', ... 'geomnum',[2], ... 'sdl',{[1,2,3,6,7]}, ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.416534065910536E-4,-3.3071663408488225E-4,2.5498268662608694E-4], ... 'camtarget',[1.2278930693906852E-5,2.1443084974890823E-7,1.4152870048922667E-5], ... 'camup',[0,0,1], ... 'camva',2.946749511077192); % Plot solution postplot(xfem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',4, ... 'title','nu_rfw(4)=1.319401e12 Slice: Electric field, norm [V/m]', ... 'geomnum',[2], ... 'sdl',{[1,2,3,6,7]}, ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.416534065910536E-4,-3.3071663408488225E-4,2.5498268662608694E-4], ... 'camtarget',[1.2278930693906852E-5,2.1443084974890823E-7,1.4152870048922667E-5], ... 'camup',[0,0,1], ... 'camva',2.946749511077192); % Plot solution postplot(xfem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'solnum',4, ... 'title','nu_rfw(4)=1.319401e12 Slice: Electric field, norm [V/m]', ... 'geomnum',[2], ... 'sdl',{[1,2,3,6,7]}, ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.416534065910536E-4,-3.3071663408488225E-4,2.5498268662608694E-4], ... 'camtarget',[1.2278930693906852E-5,2.1443084974890823E-7,1.4152870048922667E-5], ... 'camup',[0,0,1], ... 'camva',2.946749511077192); % Constants xfem.const = {'zTi','600', ... 'faround','1.3e12', ... 'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.border = 'on'; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.eta = {1,1,1,'zTi'}; bnd.type = {'E0','cont','H0','sIM'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,4,2,2,2,3,3,3,3,3,2,2,4, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1); % Evaluating u using all solution numbers u = asseminit(xfem,'init',fem0.sol,'solnum',1); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',5, ... 'shift',0-8.168141e12*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*faround'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=8.873623e11 Slice: Electric field, norm [V/m]', ... 'geomnum',[2], ... 'sdl',{[1,2,3,6,7]}, ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.416534065910536E-4,-3.3071663408488225E-4,2.5498268662608694E-4], ... 'camtarget',[1.2278930693906852E-5,2.1443084974890823E-7,1.4152870048922667E-5], ... 'camup',[0,0,1], ... 'camva',2.946749511077192); % Plot solution postplot(xfem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'solnum',4, ... 'title','nu_rfw(4)=1.311636e12 Slice: Electric field, norm [V/m]', ... 'geomnum',[2], ... 'sdl',{[1,2,3,6,7]}, ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.416534065910536E-4,-3.3071663408488225E-4,2.5498268662608694E-4], ... 'camtarget',[1.2278930693906852E-5,2.1443084974890823E-7,1.4152870048922667E-5], ... 'camup',[0,0,1], ... 'camva',2.946749511077192); % Plot solution postplot(xfem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'solnum',4, ... 'title','nu_rfw(4)=1.311636e12 Slice: Electric field, norm [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.416534065910536E-4,-3.3071663408488225E-4,2.5498268662608694E-4], ... 'camtarget',[1.2278930693906852E-5,2.1443084974890823E-7,1.4152870048922667E-5], ... 'camup',[0,0,1], ... 'camva',2.9467495110771984); % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g8}; s.name={'CO1'}; s.tags={'g8'}; fem.draw=struct('s',s); xfem.fem{3}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) fem=xfem.fem{2}; % Initialize mesh for geometry 2 fem.mesh=meshinit(fem, ... 'hauto',9); xfem.fem{2}=fem; % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g8}; s.name={'CO1'}; s.tags={'g8'}; fem.draw=struct('s',s); xfem.fem{3}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) fem=xfem.fem{2}; % Initialize mesh for geometry 2 fem.mesh=meshinit(fem, ... 'hauto',7); % Constants xfem.const = {'zTi','600', ... 'faround','1.3e12', ... 'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; xfem.fem{2}=fem; % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g8}; s.name={'CO1'}; s.tags={'g8'}; fem.draw=struct('s',s); xfem.fem{3}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) fem=xfem.fem{2}; % Initialize mesh for geometry 2 fem.mesh=meshinit(fem, ... 'hauto',9); xfem.fem{2}=fem; fem=xfem.fem{1}; % Update mesh cases for geometry 1 clear meshcase meshcase.default = fem.mesh; meshcase.case = {fem.mesh,fem.mesh}; meshcase.mind = {[1],[2]}; fem.mesh = meshcase; xfem.fem{1}=fem; fem=xfem.fem{2}; % Update mesh cases for geometry 2 clear meshcase meshcase.default = fem.mesh; meshcase.case = {fem.mesh,fem.mesh}; meshcase.mind = {[1],[2]}; fem.mesh = meshcase; xfem.fem{2}=fem; fem=xfem.fem{3}; % Update mesh cases for geometry 3 clear meshcase meshcase.default = []; meshcase.case = {[],[]}; meshcase.mind = {[1],[2]}; fem.mesh = meshcase; xfem.fem{3}=fem; fem=xfem.fem{4}; % Update mesh cases for geometry 4 clear meshcase meshcase.default = []; meshcase.case = {[],[]}; meshcase.mind = {[1],[2]}; fem.mesh = meshcase; xfem.fem{4}=fem; fem=xfem.fem{2}; % Initialize mesh for geometry 2 fem.mesh.case{1}=meshinit(fem, ... 'hauto',8); % Initialize mesh for geometry 2 fem.mesh.case{2}=meshinit(fem, ... 'hauto',7); xfem.fem{2}=fem; % (Default values are not included) fem=xfem.fem{1}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{{}},{{}}}; equ.ipoints = {{{}},{{}}}; equ.frame = {{'ref'},{'ref'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'A','nEz'}; elem.global = {'1','2'}; elem.maxvars = {}; elemcpl{1} = elem; % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'Ez',{},{}},{{},'Ez',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1'},{'2'},{'3','4','5','6','7','8','9','10','11','12'}}; src{1} = {{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}}}; bnd.ind = {{'1','2','5','6','7','8','9','10','11','12'},{'3'},{'4'}}; geomdim{1} = {{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr1','pconstr2'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'8','12'}; submap.dg = '1'; submap.dv = {'1','5'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'5','12'}; submap.dg = '1'; submap.dv = {'1','8'}; map{3} = submap; elem.map = map; elemcpl{2} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr2-(Ez*exp(i*k*(0.5*b1x*a2x+0.5*b1y*a2y)))'},{'pconstr1-(Ez*exp(i*k*(0.5*b1x*a1x+0.5*b1y*a1y)))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'3'},{'4'}}; elem.geomdim = {{{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{1} = fem; fem=xfem.fem{2}; % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.border = 'on'; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.eta = {1,1,1,'zTi'}; bnd.type = {'E0','cont','H0','sIM'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,4,2,2,2,3,3,3,3,3,2,2,4, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'2'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+tb1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'2'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; xfem.fem{2} = fem; fem=xfem.fem{3}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{3} = fem; fem=xfem.fem{4}; fem.sdim = {'x','y'}; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; xfem.fem{4} = fem; % Global expressions xfem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; xfem.descr = descr; % Multiphysics xfem=multiphysics(xfem); % Extend mesh xfem.xmesh=meshextend(xfem, ... 'geoms',[1,2], ... 'mcase',[0]); % Evaluate initial value using current solution init = asseminit(xfem,'u',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Mapping current solution to current extended mesh u = asseminit(xfem,'init',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Solve problem xfem.sol=femeig(xfem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',3, ... 'shift',0-8.168141e12*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*faround'); % Save current fem structure for restart purposes fem0=xfem; % Plot solution postplot(xfem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=9.928394e11 Slice: Electric field, norm [V/m]', ... 'geomnum',[2], ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.416534065910536E-4,-3.3071663408488225E-4,2.5498268662608694E-4], ... 'camtarget',[1.2278930693906852E-5,2.1443084974890823E-7,1.4152870048922667E-5], ... 'camup',[0,0,1], ... 'camva',3.0622823109427726); % Using one single geometry fem=xfem.fem{2}; % Keep global fields fields={'version','const','functions','xmesh','sol','globalexpr'}; for ii=1:length(fields) if isfield(xfem,fields{ii}) fem.(fields{ii})=xfem.(fields{ii}); end end flclear xfem % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.border = 'on'; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.eta = {1,1,1,'zTi'}; bnd.type = {'E0','cont','H0','sIM'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,4,2,2,2,3,3,3,3,3,2,2,4, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; fem.descr = descr; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem, ... 'mcase',[0]); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1,'xmesh',fem0.xmesh,'gmap',[2]); % Mapping current solution to current extended mesh u = asseminit(fem,'init',fem0.sol,'solnum',1,'xmesh',fem0.xmesh,'gmap',[2]); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',3, ... 'shift',0-8.168141e12*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*faround', ... 'linsolver','pardiso'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=9.928394e11 Slice: Electric field, norm [V/m]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.416534065910536E-4,-3.3071663408488225E-4,2.5498268662608694E-4], ... 'camtarget',[1.2278930693906852E-5,2.1443084974890823E-7,1.4152870048922667E-5], ... 'camup',[0,0,1], ... 'camva',3.0622823109427704); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.border = 'on'; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; appl.prop = prop; clear bnd bnd.eta = {1,1,1,'zTi'}; bnd.type = {'E0','cont','H0','sIM'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,4,2,2,2,3,3,3,3,3,2,2,4, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; fem.descr = descr; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem, ... 'mcase',[1]); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Mapping current solution to current extended mesh u = asseminit(fem,'init',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',3, ... 'shift',0-8.168141e12*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*faround', ... 'linsolver','pardiso'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',[12.5E-6 12.5E-6], ... 'slicezspacing',0, ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.255582e12 Slice: Electric field, norm [V/m]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.416534065910536E-4,-3.3071663408488225E-4,2.5498268662608694E-4], ... 'camtarget',[1.2278930693906852E-5,2.1443084974890823E-7,1.4152870048922667E-5], ... 'camup',[0,0,1], ... 'camva',3.0622823109427704); % Plot solution postplot(fem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.255582e12 Slice: Electric field, norm [V/m]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.416534065910536E-4,-3.3071663408488225E-4,2.5498268662608694E-4], ... 'camtarget',[1.2278930693906852E-5,2.1443084974890823E-7,1.4152870048922667E-5], ... 'camup',[0,0,1], ... 'camva',3.062282310942775); % Plot solution postplot(fem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.255582e12 Slice: Electric field, norm [V/m]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.416534065910536E-4,-3.3071663408488225E-4,2.5498268662608694E-4], ... 'camtarget',[1.2278930693906852E-5,2.1443084974890823E-7,1.4152870048922667E-5], ... 'camup',[0,0,1], ... 'camva',3.062282310942775); % Plot solution postplot(fem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(3)=1.328028e12 Slice: Electric field, norm [V/m]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.416534065910536E-4,-3.3071663408488225E-4,2.5498268662608694E-4], ... 'camtarget',[1.2278930693906852E-5,2.1443084974890823E-7,1.4152870048922667E-5], ... 'camup',[0,0,1], ... 'camva',3.062282310942775); % Plot solution postplot(fem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(3)=1.328028e12 Slice: Electric field, norm [V/m]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.416534065910536E-4,-3.3071663408488225E-4,2.5498268662608694E-4], ... 'camtarget',[1.2278930693906852E-5,2.1443084974890823E-7,1.4152870048922667E-5], ... 'camup',[0,0,1], ... 'camva',3.062282310942775); % Plot solution postplot(fem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',2, ... 'title','nu_rfw(2)=1.264246e12 Slice: Electric field, norm [V/m]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.416534065910536E-4,-3.3071663408488225E-4,2.5498268662608694E-4], ... 'camtarget',[1.2278930693906852E-5,2.1443084974890823E-7,1.4152870048922667E-5], ... 'camup',[0,0,1], ... 'camva',3.062282310942775); % Plot solution postplot(fem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum','end', ... 'title','nu_rfw(3)=1.328028e12 Slice: Electric field, norm [V/m]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.416534065910536E-4,-3.3071663408488225E-4,2.5498268662608694E-4], ... 'camtarget',[1.2278930693906852E-5,2.1443084974890823E-7,1.4152870048922667E-5], ... 'camup',[0,0,1], ... 'camva',3.062282310942775); % Plot solution postplot(fem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.255582e12 Slice: Electric field, norm [V/m]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.416534065910536E-4,-3.3071663408488225E-4,2.5498268662608694E-4], ... 'camtarget',[1.2278930693906852E-5,2.1443084974890823E-7,1.4152870048922667E-5], ... 'camup',[0,0,1], ... 'camva',3.062282310942775); % Plot solution postplot(fem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.255582e12 Slice: Electric field, norm [V/m]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.416534065910536E-4,-3.3071663408488225E-4,2.5498268662608694E-4], ... 'camtarget',[1.2278930693906852E-5,2.1443084974890823E-7,1.4152870048922667E-5], ... 'camup',[0,0,1], ... 'camva',3.062282310942775); % Plot solution postplot(fem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'solnum',1, ... 'title','nu_rfw(1)=1.255582e12 Slice: Electric field, norm [V/m]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.416534065910536E-4,-3.3071663408488225E-4,2.5498268662608694E-4], ... 'camtarget',[1.2278930693906852E-5,2.1443084974890823E-7,1.4152870048922667E-5], ... 'camup',[0,0,1], ... 'camva',3.062282310942775); % Initialize mesh fem.mesh.case{1}=meshinit(fem, ... 'hauto',8); % Update mesh cases clear meshcase meshcase.default = fem.mesh.default; meshcase.case = {fem.mesh.case{1}}; meshcase.mind = {[1]}; fem.mesh = meshcase; % Initialize mesh fem.mesh.default=meshinit(fem, ... 'hauto',9); % Initialize mesh fem.mesh.case{1}=meshinit(fem, ... 'hauto',8); % Initialize mesh fem.mesh.default=meshinit(fem, ... 'hauto',8); % Refine mesh fem.mesh.default=meshrefine(fem, ... 'mcase',0, ... 'rmethod','longest'); % Initialize mesh fem.mesh.default=meshinit(fem, ... 'hauto',8); % Refine mesh fem.mesh.default=meshrefine(fem, ... 'mcase',0, ... 'rmethod','longest'); % Refine mesh fem.mesh.default=meshrefine(fem, ... 'mcase',0, ... 'rmethod','longest'); % Refine mesh fem.mesh.default=meshrefine(fem, ... 'mcase',0, ... 'rmethod','longest'); % Initialize mesh fem.mesh.default=meshinit(fem, ... 'hauto',8); % Update mesh cases fem.mesh=fem.mesh.default; % Initialize mesh fem.mesh=meshinit(fem, ... 'hauto',8); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'ElectromagneticWaves'; appl.module = 'RF'; appl.gporder = 4; appl.cporder = 2; appl.border = 'on'; appl.assignsuffix = '_rfw'; clear prop prop.analysis='eigen'; prop.divcond='on'; appl.prop = prop; clear bnd bnd.eta = {1,1,1,'zTi'}; bnd.type = {'E0','cont','H0','sIM'}; bnd.ind = [3,3,1,3,3,2,3,3,2,3,3,2,3,3,2,1,2,2,4,2,2,2,3,3,3,3,3,2,2,4, ... 2,3,3,3,3,3,2,2]; appl.bnd = bnd; clear equ equ.coordOn = {{0;0;0},{0;0;0},{0;0;0},{0;0;1}}; equ.epsilonr = {'drudeAu',12.88,1,1}; equ.Stype = {'none','none','none','coord'}; equ.ind = [1,2,1,3,4,3,3]; appl.equ = equ; fem.appl{1} = appl; fem.frame = {'ref'}; fem.border = 1; clear units; units.basesystem = 'SI'; fem.units = units; % Scalar expressions fem.expr = {'b1x','2*pi*a2y/(a1x*a2y-a1y*a2x)', ... 'b1y','-2*pi*a2x/(a1x*a2y-a1y*a2x)', ... 'b2x','-2*pi*a1y/(a1x*a2y-a1y*a2x)', ... 'b2y','2*pi*a1x/(a1x*a2y-a1y*a2x)', ... 'n_Air','1', ... 'n_GaAs','3.3285e5[1/m]*3.0e8*(-2*pi)/(imag(lambda))+3.5031', ... 'n_GaAs2','3.5031'}; % Coupling variable elements clear elemcpl % Extrusion coupling variables clear elem elem.elem = 'elcplextr'; elem.g = {'1'}; src = cell(1,1); clear bnd bnd.expr = {{'psi',{},{}},{{},'psi',{}},{'tEx',{},{}},{'tEy',{},{}},{'tEz', ... {},{}},{{},'tEx',{}},{{},'tEy',{}},{{},'tEz',{}}}; bnd.map = {{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1','1'},{'1','1', ... '1'},{'1','1','1'},{'1','1','1'},{'1','1','1'}}; bnd.ind = {{'1','4','7','10','13'},{'2','5','8','11','14'},{'3','6','9', ... '12','15','16','17','18','19','20','21','22','23','24','25','26','27', ... '28','29','30','31','32','33','34','35','36','37','38'}}; src{1} = {{},{},bnd,{}}; elem.src = src; geomdim = cell(1,1); clear bnd bnd.map = {{{},{},'2'},{{},'3',{}},{{},{},'2'},{{},{},'2'},{{},{},'2'}, ... {{},'3',{}},{{},'3',{}},{{},'3',{}}}; bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; geomdim{1} = {{},{},bnd,{}}; elem.geomdim = geomdim; elem.var = {'pconstr3','pconstr4','pconstr1x','pconstr1y','pconstr1z', ... 'pconstr2x','pconstr2y','pconstr2z'}; map = cell(1,3); clear submap submap.type = 'unit'; map{1} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'40','35','23'}; submap.dg = '1'; submap.dv = {'18','13','1'}; map{2} = submap; clear submap submap.type = 'linear'; submap.sg = '1'; submap.sv = {'18','13','35'}; submap.dg = '1'; submap.dv = {'6','1','23'}; map{3} = submap; elem.map = map; elemcpl{1} = elem; % Point constraint variables (used for periodic conditions) clear elem elem.elem = 'elpconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{'0','pconstr4-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}, ... {'pconstr3-(psi*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... '0'}}; bnd.cpoints = {{'2','2'},{'2','2'}}; bnd.ind = {{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{2} = elem; % Vector constraint variables (used for periodic conditions) clear elem elem.elem = 'elsconstr'; elem.g = {'1'}; clear bnd bnd.constr = {{{'0','0','0'},{'0','0','0'}},{{'0','0','0'},{'pconstr2x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))', ... 'pconstr2z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a2x+b1y*a2y)+k*(2*(b1x*a2x+b1y*a2y)/3+(b2x*a2x+b2y*a2y)/3))))'}}, ... {{'pconstr1x-(tEx*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1y-(tEy*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))', ... 'pconstr1z-(tEz*exp(i*gm*(0.5*(1-k)*(b1x*a1x+b1y*a1y)+k*(2*(b1x*a1x+b1y*a1y)/3+(b2x*a1x+b2y*a1y)/3))))'}, ... {'0','0','0'}}}; bnd.cshape = {{'1','2'},{'1','2'},{'1','2'}}; bnd.shelem = struct('default',{{{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}},{{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})},{'tri','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'tri2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'}),'quad2','shcurl',struct('order',{'2'},'compnames',{{'Ex','Ey','Ez'}},'frame',{'ref'})}}}},'case',{{}},'mind',{{}}); bnd.ind = {{'1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','20','21','22','28','29','30','31','37', ... '38'},{'23','24','25','26','27'},{'32','33','34','35','36'}}; elem.geomdim = {{{},{},bnd,{}}}; elemcpl{3} = elem; fem.elemcpl = elemcpl; % Global expressions fem.globalexpr = {'drudeTi','1+thick*(omgpTi)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaTi)','drudeAu','1+(omgpAu)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaAu)','drudeGaAs','12.88+(omgpGaAs)^2/(-(imag(lambda))^2+i*imag(lambda)*gammaGaAs)'}; % Descriptions clear descr descr.const= {'gm','0: Gamma, 1: XtoJ','k','0:X, 1:J'}; fem.descr = descr; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Evaluate initial value using current solution init = asseminit(fem,'u',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Mapping current solution to current extended mesh u = asseminit(fem,'init',fem0.sol,'solnum',1,'xmesh',fem0.xmesh); % Solve problem fem.sol=femeig(fem, ... 'init',init, ... 'u',u, ... 'conjugate','on', ... 'solcomp',{'psi','tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'outcomp',{'psi','tExEyEz10','tExEyEz20','tExEyEz21'}, ... 'neigs',1, ... 'shift',0-8.168141e12*i, ... 'etol',1e-14, ... 'eigref','-i*2*pi*faround', ... 'linsolver','pardiso'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'slicedata',{'normE_rfw','cont','internal','unit','V/m'}, ... 'slicexspacing',0, ... 'sliceyspacing',0, ... 'slicezspacing',[1.4E-6 1.4E-6], ... 'slicemap','jet(1024)', ... 'title','nu_rfw(1)=1.27106e12 Slice: Electric field, norm [V/m]', ... 'axisvisible','off', ... 'grid','on', ... 'camlight','on', ... 'scenelight','on', ... 'campos',[-2.321823371977652E-4,-3.1837369614360933E-4,2.8192981666666446E-4], ... 'camtarget',[2.1750000087195076E-5,1.2557368791021872E-5,4.11000000895001E-5], ... 'camup',[0,0,1], ... 'camva',11.748261283506755); uq~t`% COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) flclear fem % COMSOL version clear vrsn vrsn.name = 'COMSOL 3.3'; vrsn.ext = 'a'; vrsn.major = 0; vrsn.build = 511; vrsn.rcs = '$Name: $'; vrsn.date = '$Date: 2007/02/02 19:05:58 $'; fem.version = vrsn; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','375', ... 'a1y','0', ... 'a2x','0', ... 'a2y','375'}; % Geometry g1=rect2(0.4,0.4,'base','center','pos',[0,0]); g2=rect2('3.75e-7','3.75e-7','base','center','pos',{'0','0'},'rot','0'); g3=ellip2(1.875E-7,1.875E-7,'base','center','pos',[0,0]); g4=ellip2('7e-8','7e-8','base','center','pos',{'0','0'},'rot','0'); % Analyzed geometry clear s s.objs={g2,g4}; s.name={'R1','E1'}; s.tags={'g2','g4'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0', ... 'a2x','0', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0', ... 'a2x','0', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.05', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.05', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.1', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.1', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.1', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.1', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.1', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.15', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.15', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.2', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.2', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.25', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.25', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.3', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.3', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.35', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.35', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.4', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.4', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.45', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.45', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.05', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.1', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.1', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.15', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.2', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.2', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.2', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.25', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.3', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.35', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.4', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.45', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.45', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.4', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.05', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.05', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.1', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.15', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.2', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.2', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.25', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','1', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','1', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.025', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.05', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.075', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.1', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.125', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.15', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.175', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.2', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.2', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Constants fem.const = {'k','0.225', ... 'k1','1', ... 'k2','1', ... 'a1x','375[nm]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','375[nm]'}; % Geometry g5=ellip2(5.0E-8,5.0E-8,'base','center','pos',[-1.5E-7,5.0E-8]); g6=rect2(1.0E-7,1.0E-7,'base','center','pos',[0,0]); g7=rect2('29E-6','38.16614637E-6','base','center','pos',{'0','0'},'rot','0'); g8=ellip2(5.0E-6,5.0E-6,'base','center','pos',[0,1.0E-5]); g9=ellip2('7.25E-6','7.25E-6','base','center','pos',{'0','16.7431578E-6'},'rot','0'); g11=ellip2(5.0E-6,5.0E-6,'base','center','pos',[1.5E-5,1.0E-5]); g12=ellip2('7.25E-6','7.25E-6','base','center','pos',{'14.5E-6','8.3715789E-6'},'rot','0'); g13=rect2('2.9E-5','50.229473E-6','base','center','pos',{'0','0'},'rot','0'); [g14]=geomcopy({g12}); [g15]=geomcopy({g14}); g15=move(g15,[-2.9E-5,0]); [g16,g17,g18]=geomcopy({g9,g12,g15}); [g19,g20,g21]=geomcopy({g16,g17,g18}); g19=move(g19,[0,0]); g20=move(g20,[0,0]); g21=move(g21,[0,0]); g22=mirror(g19,[0,0],[0,1]); g23=mirror(g20,[0,0],[0,1]); g24=mirror(g21,[0,0],[0,1]); % Using multiple geometries flclear xfem % Keep global fields fields={'functions','const','globalexpr','xmesh','version'}; for ii=1:length(fields) if isfield(fem,fields{ii}) xfem.(fields{ii})=fem.(fields{ii}); fem=rmfield(fem,fields{ii}); end end if isfield(fem,'sol') fem=rmfield(fem,'sol'); end xfem.fem{1}=fem; % Geometry 1 [g25,g26,g27,g28,g29,g30,g31,g32,g33,g34]=geomcopy({g9,g12,g13,g15,g19,g20,g21,g22,g23,g24}); [g35]=geomcopy({g13}); % Geometry 3 [g36]=geomcopy({g35}); g36=move(g36,[0,0]); % Geometry 1 [g37,g38,g39,g40,g41,g42,g43,g44,g45,g46]=geomcopy({g9,g12,g13,g15,g19,g20,g21,g22,g23,g24}); % Geometry 4 [g47,g48,g49,g50,g51,g52,g53,g54,g55,g56]=geomcopy({g37,g38,g39,g40,g41,g42,g43,g44,g45,g46}); g47=move(g47,[0,0]); g48=move(g48,[0,0]); g49=move(g49,[0,0]); g50=move(g50,[0,0]); g51=move(g51,[0,0]); g52=move(g52,[0,0]); g53=move(g53,[0,0]); g54=move(g54,[0,0]); g55=move(g55,[0,0]); g56=move(g56,[0,0]); % Geometry 1 g57=geomcomp({g13,g19,g21,g22,g23,g24,g20},'ns',{'R1','E4','E6','CO1','CO2','CO3','E5'},'sf','R1-(E4+E6+CO1+CO2+CO3+E5)','edge','none'); % Geometry 4 g58=geomcomp({g48,g49,g51,g53,g54,g55,g56},'ns',{'E2','R1','E4','E6','CO1','CO2','CO3'},'sf','R1*(E2+E4+E6+CO1+CO2+CO3)','edge','none'); % Geometry 1 g59=extrude(g57,'distance',[0.7E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); fem=xfem.fem{1}; % Geometry objects clear s s.objs={g57}; s.name={'CO4'}; s.tags={'g57'}; fem.draw=struct('s',s); xfem.fem{1}=fem; % Geometry 2 flclear fem % Geometry objects clear s s.objs={g59}; s.name={'EXT1'}; s.tags={'g59'}; fem.draw=struct('s',s); xfem.fem{2}=fem; % Geometry 3 flclear fem % Geometry objects clear s s.objs={g36}; s.name={'R1'}; s.tags={'g36'}; fem.draw=struct('s',s); xfem.fem{3}=fem; % Geometry 4 flclear fem % Geometry objects clear s s.objs={g58}; s.name={'CO4'}; s.tags={'g58'}; fem.draw=struct('s',s); xfem.fem{4}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Geometry 3 [g1]=geomcopy({g36}); g2=extrude(g36,'distance',[0.04E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); % Geometry 2 g2=move(g2,[0,0,-0.04E-6]); % Geometry 3 g3=extrude(g36,'distance',[0.5E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); % Geometry 2 g3=move(g3,[0,0,-0.5E-6]); % Geometry 3 g6=extrude(g36,'distance',[1E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); % Geometry 2 g6=move(g6,[0,0,-1.54E-6]); % Geometry 4 g7=extrude(g58,'distance',[0.7E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); % Geometry 3 g8=extrude(g36,'distance',[40E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); g9=extrude(g36,'distance',[40E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); % Geometry 2 g8=move(g8,[0,0,40E-6]); % Constants xfem.const = {'k','0.225', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]'}; % Constants xfem.const = {'k','0.225', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','0.2', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','0.2', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Geometry 2 fem=xfem.fem{2}; % Analyzed geometry clear s s.objs={g59,g2,g3,g6,g7,g8,g9}; s.name={'EXT1','EXT2','EXT3','EXT4','EXT5','EXT6','EXT7'}; s.tags={'g59','g2','g3','g6','g7','g8','g9'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); g8=move(g8,[0,0,-4.0E-5]); g6=move(g6,[0,0,0.04E-6]); % Analyzed geometry clear s s.objs={g59,g2,g3,g6,g7,g8,g9}; s.name={'EXT1','EXT2','EXT3','EXT4','EXT5','EXT6','EXT7'}; s.tags={'g59','g2','g3','g6','g7','g8','g9'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','5.7735026E-1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','5.7735026E-1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Geometry 3 g10=extrude(g36,'distance',[40E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); % Geometry 2 g10=move(g10,[0,0,40E-6]); % Analyzed geometry clear s s.objs={g59,g2,g3,g6,g7,g8,g10}; s.name={'EXT1','EXT2','EXT3','EXT4','EXT5','EXT6','EXT8'}; s.tags={'g59','g2','g3','g6','g7','g8','g10'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); xfem.fem{2}=fem; % Geometry 1 fem=xfem.fem{1}; % Analyzed geometry clear s s.objs={g57}; s.name={'CO4'}; s.tags={'g57'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Geometry 2 g11=geomcomp({g2,g3},'ns',{'EXT2','EXT3'},'sf','EXT2+EXT3','face','all','edge','all'); xfem.fem{1}=fem; fem=xfem.fem{2}; % Analyzed geometry clear s s.objs={g59,g6,g7,g8,g10,g11}; s.name={'EXT1','EXT4','EXT5','EXT6','EXT8','CO1'}; s.tags={'g59','g6','g7','g8','g10','g11'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); xfem.fem{2}=fem; % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g36}; s.name={'R1'}; s.tags={'g36'}; fem.draw=struct('s',s); xfem.fem{3}=fem; % Geometry 4 fem=xfem.fem{4}; % Geometry objects clear s s.objs={g58}; s.name={'CO4'}; s.tags={'g58'}; fem.draw=struct('s',s); xfem.fem{4}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g36}; s.name={'R1'}; s.tags={'g36'}; fem.draw=struct('s',s); xfem.fem{3}=fem; % Geometry 4 fem=xfem.fem{4}; % Geometry objects clear s s.objs={g58}; s.name={'CO4'}; s.tags={'g58'}; fem.draw=struct('s',s); xfem.fem{4}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Removing geometries xfem.fem={xfem.fem{1},xfem.fem{3},xfem.fem{4}}; % Geometry 3 [g1]=geomcopy({g58}); [g2]=geomcopy({g58}); [g3]=geomcopy({g58}); % Geometry 1 [g4]=geomcopy({g3}); g4=move(g4,[0,0]); fem=xfem.fem{1}; % Analyzed geometry clear s s.objs={g57,g4}; s.name={'CO4','CO1'}; s.tags={'g57','g4'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Constants xfem.const = {'k','0', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0.5', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0.5', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0.5', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0.5', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0.05', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0.05', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0.05', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; xfem.fem{1}=fem; % Geometry 2 fem=xfem.fem{2}; % Geometry objects clear s s.objs={g36}; s.name={'R1'}; s.tags={'g36'}; fem.draw=struct('s',s); xfem.fem{2}=fem; % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g58}; s.name={'CO4'}; s.tags={'g58'}; fem.draw=struct('s',s); xfem.fem{3}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Constants xfem.const = {'k','0', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0.5', ... 'k1','5.7735026E-1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12'}; % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','1', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0.1', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','0.3333333333', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0.5', ... 'k1','1.732050', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Geometry 2 fem=xfem.fem{2}; % Geometry objects clear s s.objs={g36}; s.name={'R1'}; s.tags={'g36'}; fem.draw=struct('s',s); xfem.fem{2}=fem; % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g58}; s.name={'CO4'}; s.tags={'g58'}; fem.draw=struct('s',s); xfem.fem{3}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Constants xfem.const = {'k','0.45', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0.4', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0.5', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'k','0.25', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[nm]', ... 'a2x','0[nm]', ... 'a2y','50.229473E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Geometry 2 fem=xfem.fem{2}; % Geometry objects clear s s.objs={g36}; s.name={'R1'}; s.tags={'g36'}; fem.draw=struct('s',s); xfem.fem{2}=fem; % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g58}; s.name={'CO4'}; s.tags={'g58'}; fem.draw=struct('s',s); xfem.fem{3}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Geometry 2 carr={curve2([0,3.9999999999999996E-5],[0,0],[1,1]), ... curve2([3.9999999999999996E-5,4.9999999999999996E-5],[0,1.9999999999999998E-5],[1,1]), ... curve2([4.9999999999999996E-5,9.999999999999999E-6],[1.9999999999999998E-5,1.9999999999999998E-5],[1,1]), ... curve2([9.999999999999999E-6,0],[1.9999999999999998E-5,0],[1,1])}; g1=geomcoerce('solid',carr); gg=geomedit(g1); gg{2}=beziercurve2([0,2.9E-5],[0,0],[1,1]); gg{4}=beziercurve2([2.9E-5,3.35E-5],[0,2.51147367E-5],[1,1]); gg{3}=beziercurve2([1.0E-5,5.0E-5],[2.51147367E-5,2.51147367E-5],[1,1]); gg{3}=beziercurve2([1.45E-5,3.35E-5],[2.51147367E-5,2.51147367E-5],[1,1]); gg{1}=beziercurve2([0,1.45E-5],[0,2.51147367E-5],[1,1]); gg{4}=beziercurve2([2.9E-5,4.35E-5],[0,2.51147367E-5],[1,1]); gg{3}=beziercurve2([1.45E-5,4.35E-5],[2.51147367E-5,2.51147367E-5],[1,1]); g2=geomedit(g1,gg); g3=ellip2(1.0E-5,1.0E-5,'base','center','pos',[-1.0E-5,0]); g5=ellip2(1.0E-5,1.0E-5,'base','center','pos',[0,0]); g6=ellip2('0.725E-5','0.725E-5','base','center','pos',{'1.45E-6','0.83715789E-5'},'rot','0'); g7=ellip2('0.725E-5','0.725E-5','base','center','pos',{'1.45E-5','0.83715789E-5'},'rot','0'); [g8]=geomcopy({g7}); g9=circ2(6.5E-6,'base','center','pos',[4.35E-5,2.51147367E-5]); g10=circ2('7.25E-6','base','center','pos',{'4.35E-5','2.51147367E-5'},'rot','0'); g10=move(g10,[-14.5E-6,-8.3715789E-6]); % Geometry 1 % Geometry 2 [g11,g12,g13]=geomcopy({g2,g7,g10}); % Geometry 1 [g14,g15,g16]=geomcopy({g11,g12,g13}); g14=move(g14,[0,0]); g15=move(g15,[0,0]); g16=move(g16,[0,0]); % Using one single geometry fem=xfem.fem{1}; % Keep global fields fields={'functions','const','globalexpr','xmesh','version'}; for ii=1:length(fields) if isfield(xfem,fields{ii}) fem.(fields{ii})=xfem.(fields{ii}); end end flclear xfem % Constants fem.const = {'k','0.25', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants fem.const = {'k','0.25', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Geometry % Analyzed geometry clear s s.objs={g14,g15,g16}; s.name={'CO1','E1','C1'}; s.tags={'g14','g15','g16'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Constants fem.const = {'k','0.25', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Geometry g1=rect2(1.0E-5,1.0E-5,'base','corner','pos',[-3.0E-5,1.0E-5]); g2=rect2(1.0E-5,1.0E-5,'base','corner','pos',[-4.0E-5,-1.0E-5]); g3=rect2(1.0E-5,1.0E-5,'base','corner','pos',[-2.0E-5,-1.0E-5]); % Analyzed geometry clear s s.objs={g16,g14,g15,g1,g2,g3}; s.name={'C1','CO1','E1','R1','R2','R3'}; s.tags={'g16','g14','g15','g1','g2','g3'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Analyzed geometry clear s s.objs={g16,g14,g15}; s.name={'C1','CO1','E1'}; s.tags={'g16','g14','g15'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants fem.const = {'k','0', ... 'k1','1', ... 'k2','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants fem.const = {'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants fem.const = {'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants fem.const = {'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Constants fem.const = {'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants fem.const = {'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants fem.const = {'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants fem.const = {'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Using multiple geometries flclear xfem % Keep global fields fields={'version','const','functions','xmesh','sol','globalexpr'}; for ii=1:length(fields) if isfield(fem,fields{ii}) xfem.(fields{ii})=fem.(fields{ii}); fem=rmfield(fem,fields{ii}); end end xfem.fem{1}=fem; % Geometry 1 [g1,g2,g3]=geomcopy({g16,g14,g15}); % Geometry 3 [g4,g5,g6]=geomcopy({g1,g2,g3}); g4=move(g4,[0,0]); g5=move(g5,[0,0]); g6=move(g6,[0,0]); g7=geomcomp({g4,g5,g6},'ns',{'C1','CO1','E1'},'sf','CO1-(C1+E1)','edge','none'); g8=geomcomp({g7},'ns',{'CO2'},'sf','CO2','edge','none'); % Geometry 1 g9=extrude(g14,'distance',[1E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); g10=extrude(g14,'distance',[0.5E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); % Geometry 2 g10=move(g10,[0,0,1E-6]); % Geometry 3 g11=extrude(g8,'distance',[0.7E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); % Geometry 2 g11=move(g11,[0,0,1.7E-6]); g11=move(g11,[0,0,-0.2E-6]); % Geometry 1 g12=extrude(g16,'distance',[0.7E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); g13=extrude(g15,'distance',[0.7E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); % Geometry 2 g12=move(g12,[0,0,1.5E-6]); g13=move(g13,[0,0,1.5E-6]); % Geometry 1 g17=extrude(g14,'distance',[40E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); % Geometry 2 g17=move(g17,[0,0,2.2E-6]); % Geometry 1 g18=extrude(g14,'distance',[40E-6],'scale',[1;1],'displ',[0;0],'twist',[0],'face','none','wrkpln',[0 1 0;0 0 1;0 0 0]); % Geometry 2 g18=move(g18,[0,0,42.2E-6]); flclear fem % Analyzed geometry clear s s.objs={g9,g10,g11,g12,g13,g17,g18}; s.name={'EXT1','EXT2','EXT3','EXT4','EXT5','EXT6','EXT7'}; s.tags={'g9','g10','g11','g12','g13','g17','g18'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Constants xfem.const = {'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'gm','0', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'gm','0', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; xfem.fem{2}=fem; % Geometry 3 flclear fem % Geometry objects clear s s.objs={g8}; s.name={'CO1'}; s.tags={'g8'}; fem.draw=struct('s',s); xfem.fem{3}=fem; fem=xfem.fem{2}; % Geometry 2 fem.draw=struct; xfem.fem{2}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Constants xfem.const = {'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'gm','1', ... 'k','0.1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'gm','1', ... 'k','0.2', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'gm','1', ... 'k','0.2', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'gm','1', ... 'k','0.3', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'gm','1', ... 'k','0.4', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'gm','1', ... 'k','0.6', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'gm','1', ... 'k','0.8', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g8}; s.name={'CO1'}; s.tags={'g8'}; fem.draw=struct('s',s); xfem.fem{3}=fem; fem=xfem.fem{2}; % Geometry 2 fem.draw=struct; xfem.fem{2}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Constants xfem.const = {'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'faround','1.3e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'faround','1.3e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'faround','1.6e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'zTi','500', ... 'faround','1.6e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', .t+.. 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'zTi','150', ... 'faround','1.6e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'zTi','120', ... 'faround','1.6e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'zTi','120', ... 'faround','1.6e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'zTi','100', ... 'faround','1.6e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'zTi','50', ... 'faround','1.6e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'zTi','2000', ... 'faround','1.6e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'zTi','10000', ... 'faround','1.6e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'zTi','10000', ... 'faround','1.6e12', ... 'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'zTi','100', ... 'faround','1.6e12', ... 'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'zTi','100', ... 'faround','1.6e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'zTi','100', ... 'faround','1.6e12', ... 'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g8}; s.name={'CO1'}; s.tags={'g8'}; fem.draw=struct('s',s); xfem.fem{3}=fem; fem=xfem.fem{2}; % Geometry 2 fem.draw=struct; xfem.fem{2}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Constants xfem.const = {'zTi','1000000', ... 'faround','1.6e12', ... 'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'zTi','1000000', ... 'faround','1.6e12', ... 'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'zTi','1000000', ... 'faround','1.6e12', ... 'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'zTi','1000000', ... 'faround','1.6e12', ... 'gm','1', ... 'k','0', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'zTi','1000000', ... 'faround','1.6e12', ... 'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g8}; s.name={'CO1'}; s.tags={'g8'}; fem.draw=struct('s',s); xfem.fem{3}=fem; fem=xfem.fem{2}; % Geometry 2 fem.draw=struct; xfem.fem{2}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g8}; s.name={'CO1'}; s.tags={'g8'}; fem.draw=struct('s',s); xfem.fem{3}=fem; fem=xfem.fem{2}; % Geometry 2 fem.draw=struct; xfem.fem{2}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g8}; s.name={'CO1'}; s.tags={'g8'}; fem.draw=struct('s',s); xfem.fem{3}=fem; fem=xfem.fem{2}; % Geometry 2 fem.draw=struct; xfem.fem{2}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Constants xfem.const = {'zTi','100', ... 'faround','1.3e12', ... 'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'zTi','10000000', ... 'faround','1.3e12', ... 'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Constants xfem.const = {'zTi','600', ... 'faround','1.3e12', ... 'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g8}; s.name={'CO1'}; s.tags={'g8'}; fem.draw=struct('s',s); xfem.fem{3}=fem; fem=xfem.fem{2}; % Geometry 2 fem.draw=struct; xfem.fem{2}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g8}; s.name={'CO1'}; s.tags={'g8'}; fem.draw=struct('s',s); xfem.fem{3}=fem; fem=xfem.fem{2}; % Geometry 2 fem.draw=struct; xfem.fem{2}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Constants xfem.const = {'zTi','600', ... 'faround','1.3e12', ... 'gm','1', ... 'k','1', ... 'a1x','29E-6[m]', ... 'a1y','0[m]', ... 'a2x','14.5E-6[m]', ... 'a2y','25.11473670E-6[m]', ... 'omg0','1e-20', ... 'omgpTi','2*pi*610e12', ... 'thick','1', ... 'omgpAu','1.29e16', ... 'gammaAu','0.8e14', ... 'omgpGaAs','2*pi*21.45e12', ... 'gammaGaAs','2*pi*10e12', ... 'kbak','5.7735026E-1'}; % Geometry 3 fem=xfem.fem{3}; % Geometry objects clear s s.objs={g8}; s.name={'CO1'}; s.tags={'g8'}; fem.draw=struct('s',s); xfem.fem{3}=fem; fem=xfem.fem{2}; % Geometry 2 fem.draw=struct; xfem.fem{2}=fem; % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.3a (COMSOL 3.3.0.511, $Date: 2007/02/02 19:05:58 $) % Using one single geometry fem=xfem.fem{2}; % Keep global fields fields={'version','const','functions','xmesh','sol','globalexpr'}; for ii=1:length(fields) if isfield(xfem,fields{ii}) fem.(fields{ii})=xfem.(fields{ii}); end end flclear xfem t clear mfile clear vrsn vrsn.name = 'COMSOL 3.3'; vrsn.ext = 'a'; vrsn.major = 0; vrsn.build = 511; vrsn.rcs = '$Name: $'; vrsn.date = '$Date: 2007/02/02 19:05:58 $'; mfile.version=vrsn; mfile.fem='fem'; mfile.stored={'fem0','fem1'}; mfile.tags={}; mfile.types={}; x