sr!com.femlab.server.ModelFileHeaderD%LtagstLcom/femlab/util/o;Ltypesq~LvrsntLcom/femlab/util/FlVersion;xpwsrcom.femlab.util.FlVersion%/B =IbuildImajorLdatetLjava/lang/String;Lextq~Lnameq~Lrcsq~L scriptNameq~xpwt COMSOL 3.2twt $Name: $t$Date: 2005/10/24 07:30:19 $xur[Ljava.lang.String;V{Gxp;t modelinfotxfemtguitfem0tg57tg59tfem12tfem12.0q~q~tfem13tfem13.0q~q~tg28tg22tg19tg6tg66tg25tg17tg67tg36tg15tg27tg16tg20tg23tg68tg24tg41tg26tg69tg30tg62tg32tg8tg40tg70tg21tg39tg65tg63tg3tg38tg64tg5tg35tg33tg7tg31tg4tg34tg18tg29tg1tg37t mfileinfot mfiletagsuq~ ;q~ t femstructt guistructq~Etdrawq~Gtgeomtmeshtsolutiontxmeshq~Hq~Iq~Jq~Ktdrawq~Lq~Lq~Ltdrawq~Lq~Lq~Mq~Lq~Lq~Lq~Lq~Lq~Lq~Mq~Lq~Lq~Lq~Mq~Lq~Mq~Lq~Lq~Lq~Mq~Lq~Lq~Mq~Mq~Lq~Lq~Mq~Lq~Lq~Lq~Lq~Lq~Lq~Lq~Lq~Ltdrawq~Lq~Bq~Cxsrcom.femlab.api.client.ModelInfo^%Ldescrq~LdocURLq~[imaget[Bxpwur[BTxp҉PNG  IHDRpIDATx{dY]ǿ[tcg'|`|@Dh1"Db1jJP?F\H01FD! 1ٙ~wsnǼvfX~={VMէ~;#`ay5I CP0,, % CP0,, % CPܞD)܇bCj](-sd>% CP0, % CP0,, % CP0,, % CP0,, % CP0, % CP0,, % CP0,, % CP0,, % CP0Y #]?a.%X Qǥ!;PnjDL !:;ne((yz"_&d汀2 i3B/G} s.Q:4,P\; y G'utS!F菎5`.ʓdp+Иnh" cFCj4 g&C9 jݘ*%"DEr֛{Q]ߠA4;66]ϩ2&8F59ȗ15dbxiR3'( Vj?NIاp)gPZ{#Ы+0UƩKL,EREjQ5"({ B]`'Gc ]h%Δ*eBL?)FO85Y'=M5zqP{MΚ͉RG*O\"5s!g32 y'SȩTSRD#rؠzl+y&)˶ 4's9YPQd| dC4Y.$7]H.U UxR>A@LVFoE5p|Եks5QR;.Ԣ.yts?2̑IԈE5FMq^C e/*v*}"Z5^u =zJi{S*)W~ 1G&ne;e%C@fSE p6љY/殟2-<6=*>ϊO}Q5,q5z3ۋsr^h-_ebG)934z(]D{N59,53ּ!ٽߩ0Ƞ/2;IޖpBvh'DAoлlei \FTHܮmMIofZ) JZzt=; du=^<{jL ~ОjBlL1[9A\FD8)Or9l7} fi;fOf2SyA:S=T}3 A~.sm[;&ͥ&HL&4@'VF!j+(UVށsc ;x/_׬^"# B/n]eDo{ѵRO9f"Fww9FYy2f(41 {}͙ERLVqYGRrnoyV_Ӹ]ҾUz{WMGwv5_ˏ5LcFi.YfBPvGĥ- Gd fh,:"i0{7nSG_ ]!EW39\>ӸXLtZtsJO)PHQϚr|,x% t5d(ZKULZa'>r*OPhCh9iXEeKbW,Mp~T43, ,l~hQ+`2q2G`"/ ]@d餙MڐIݾ՞)w]cyeU9Sjr4Y9JEBlVH0L<\ ŔYnJd3 $mMHmA6.1r]zΊ\9HVhns֍:]f' ~Q ug\jFŊQ @A1TA-o"Ȥ ɨ9r * ;6Bݮlt t;zD;S\4{w(΢p4mrvkn[K}>ݥBZfɛ|{qr\fAςcrʉ2ߣ\fܚћ. #^s+Tv\*yM.o4 n͘0*2&EԚh ,>q>GH,x Y2J3H:&cozHQHDךl+f5%e&V)%C9 _e$a*7uD, \ı=qd(v*z:tcA)z{*A>J- yg&ȭA2D@4LjʴS79Bi;z^1-"s nb2u(؉pedIQ $J}Ku"#pT>A,F!㣔tSRl lBOᘣH? b[QpѦTI* &LM5J|DZZ.ևr$ LO|FTZgb#BkS غQF3 G'tg9m[{ <R#koiwL|#ծuUy|+AB@ڰ(/`;*ox'RnLh8H/T#ɑ)JOHKv œRё|I4 gCR Ǘ#^],3[1> #󔓀&}׉m'h1 ="#ahNO ~CA$f}4vLvhu" &C$E^QBWn1ju0kJK62 +]n hSQa2FH;4p1#q,*鬤:Cj!|6?X=hًYL+&7WNFҔz Q b"q{Fu'5x=GOpo &HrWyz{[q$˦\#1LdN԰E!%ǟI$n+?G- /ѥy*-YL:ȤQ[xjSOb=JjG p\:?z[4HҎGU;afA'|xv'ZpLC| h`'5Q :Va{MLEh zc"qʬq+_Mrh9{!R Ah=-69: *4QP7?㹂_7G~ͅz]YdP5y=Xߘ ݊ c599P$LqTՌll+Ҫ2A¸ ȑz蜢.Zԙ]FOcgE 'ZĥtmKc/9ְފᾱ?dև7S3mN.5oP(z%BE/cae6̥ ' f¦ཤ)iC'F<_~.*zm2J\ťzS?䶈o^!hjJaY_Q`鰯pO [AD!1*[k"}1Cя)]Y]!p/I<$o jń>>`H:)y r"-+KHz'JREy;j4ӵ(և],NŔe Kt2A !~_~EItbJ[_oc/.Ovk7s.k7jvQORw.P~2i=Uo#G>DE X( :ǎ,űRSLd9iʶ] )*n}Hkc ,ay 򺰫MK"ѱU$(K'Pl;"iPQ7sDZ?'Ҏ~U1bBI2U!Ni(沽~]J9%7MZ&mWLԊﱁ\JS/Kmn}e:'SG{5_"yRr{fPPc2)ݽӮ:yb``:6q3f>ujgՈB(/J=sFk񏐟$(Ve%Zz^.Fg4M[QzJ>Ӕ?RDna^raSlFz+/71tn&vhyD&L$& Ç.RlgxVٕ`!!G 73eO7K<)Rn]YϴnƖ5~ɖ{;p:L8e 3n)2X[BY#sʽP9Oo+ĬB';n'7"+%:n5J&p(͗Lw?اqS(YJKm@zHCA~@vۄ$əIҏj--)eP,Zh/ИxW~7rې6>4mV5G2)Wa#bl1xa3mof)ǥ)U ņ elMh[NؘƌeKy5HtnbW?fN|$P_A*Ӥ+nAoAfsEigtxNϛzkHrJ dRi[;FKlhdkD7ՋNGє=14 mgQf(_9S<{}Vr]Q], x?8xtΓ¦(d"W8lxCYd(򈂼l({(wQdaa(YJda(YXJda(YXJdaa(YJdaa(YJda(YXJiR;ršda~1,,(ok rNʻqkwvϭɿ"OYzjG^]Sz /vkwǚ)c-ct[fvMJN]n`y;O7E׎͵$.l!8@yEYMۧw1 ooBn}2H?1{̽~q2, % CP0,, % CP0,, % CnRdf\IENDB`ppxuq~ tJclear xfem clear vrsn vrsn.name = 'COMSOL 3.2'; vrsn.ext = ''; vrsn.major = 0; vrsn.build = 224; vrsn.rcs = '$Name: $'; vrsn.date = '$Date: 2005/10/24 07:30:19 $'; xfem.version = vrsn; xfem.id = 4; xfem.geomdata = 'geom'; xfem.eqvars = 'on'; xfem.cplbndeq = 'on'; xfem.cplbndsh = 'off'; xfem.geomvalid = 'on'; xfem.solvalid = 'on'; xfem.meshtime = 't'; clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.style = {{{'0'},{'0','0','255'}}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.name = {'tangential_H','normal_H','null',''}; bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.style = {{{'0'},{'0','0','0'},{'solid'}},{{'0'},{'0','0','255'},{'dashed'}}, ... {{'0'},{'0','255','0'},{'dashdot'}},{{'0'},{'255','0','255'},{'dashed'}}}; bnd.ind = [1,1,1,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.gporder = {{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;1}}; equ.cporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.style = {{{'0'},{'0','0','255'}},{{'0'},{'0','0','255'}},{{'0'},{'166', ... '166','166'}},{{'0'},{'0','255','0'}},{{'0'},{'0','255','255'}},{{'0'}, ... {'255','0','255'}},{{'0'},{'166','166','166'}},{{'0'},{'0','255','0'}}, ... {{'0'},{'0','255','255'}},{{'0'},{'255','0','255'}},{{'0'},{'166','166', ... '166'}}}; equ.ind = [1,2]; appl.equ = equ; xfem.appl{1} = appl; xfem.geom = flbinary('fem12','geom','toroidal_silica_microcavity_c32_v4.mph'); xfem.mesh = flbinary('fem12.0','mesh','toroidal_silica_microcavity_c32_v4.mph'); xfem.sdim = {'x','y'}; xfem.frame = {'xy'}; xfem.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; xfem.gporder = 4; xfem.cporder = 2; xfem.sshape = 2; xfem.simplify = 'on'; xfem.border = 1; xfem.form = 'coefficient'; xfem.units = 'SI'; clear equ equ.shape = {[1;2;3],[1;2;3]}; equ.gporder = {{1;1;1},{1;1;1}}; equ.cporder = {{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0'},{'0';'0';'0'}}; equ.dinit = {{'0';'0';'0'},{'0';'0';'0'}}; equ.weak = {{'(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+(test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+(test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy)))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'}}; equ.c = {{{'0'},{'0'},{'0'};{'0'},{'0'},{'0'};{'0'},{'0'},{'0'}},{{'0'}, ... {'0'},{'0'};{'0'},{'0'},{'0'};{'0'},{'0'},{'0'}}}; equ.a = {{'0','0','0';'0','0','0';'0','0','0'},{'0','0','0';'0','0','0'; ... '0','0','0'}}; equ.f = {{'0';'0';'0'},{'0';'0';'0'}}; equ.ea = {{'0','0','0';'0','0','0';'0','0','0'},{'0','0','0';'0','0','0'; ... '0','0','0'}}; equ.da = {{'0','0','0';'0','0','0';'0','0','0'},{'0','0','0';'0','0','0'; ... '0','0','0'}}; equ.al = {{{'0';'0'},{'0';'0'},{'0';'0'};{'0';'0'},{'0';'0'},{'0';'0'}; ... {'0';'0'},{'0';'0'},{'0';'0'}},{{'0';'0'},{'0';'0'},{'0';'0'};{'0';'0'}, ... {'0';'0'},{'0';'0'};{'0';'0'},{'0';'0'},{'0';'0'}}}; equ.be = {{{'0';'0'},{'0';'0'},{'0';'0'};{'0';'0'},{'0';'0'},{'0';'0'}; ... {'0';'0'},{'0';'0'},{'0';'0'}},{{'0';'0'},{'0';'0'},{'0';'0'};{'0';'0'}, ... {'0';'0'},{'0';'0'};{'0';'0'},{'0';'0'},{'0';'0'}}}; equ.ga = {{{'0';'0'};{'0';'0'};{'0';'0'}},{{'0';'0'};{'0';'0'};{'0';'0'}}}; equ.sshape = {[1],[1]}; equ.sshapedim = {{1;1;1},{1;1;1}}; equ.ind = [1,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {'absHradx_Axisymmetric_Dielectric_Resonator_Simulator',{'sqrt(Hradx^2+Hrady^2)', ... 'sqrt(Hradx^2+Hrady^2)'}, ... 'abscu1x_Axisymmetric_Dielectric_Resonator_Simulator',{'sqrt(cu1x^2+cu1y^2)', ... 'sqrt(cu1x^2+cu1y^2)'}, ... 'absHazix_Axisymmetric_Dielectric_Resonator_Simulator',{'sqrt(Hazix^2+Haziy^2)', ... 'sqrt(Hazix^2+Haziy^2)'}, ... 'abscu2x_Axisymmetric_Dielectric_Resonator_Simulator',{'sqrt(cu2x^2+cu2y^2)', ... 'sqrt(cu2x^2+cu2y^2)'}, ... 'absHaxix_Axisymmetric_Dielectric_Resonator_Simulator',{'sqrt(Haxix^2+Haxiy^2)', ... 'sqrt(Haxix^2+Haxiy^2)'}, ... 'abscu3x_Axisymmetric_Dielectric_Resonator_Simulator',{'sqrt(cu3x^2+cu3y^2)', ... 'sqrt(cu3x^2+cu3y^2)'}}; equ.expr = {'erel',{'1','e1'}}; equ.lock = [0,0]; equ.mlock = {[0,0]}; xfem.equ = equ; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'0';'0';'0'}}; bnd.q = {{'0','0','0';'0','0','0';'0','0','0'},{'0','0','0';'0','0','0'; ... '0','0','0'}}; bnd.h = {{'0','0','0';'0','0','0';'0','0','0'},{'0','0','0';'0','0','0'; ... '0','0','0'}}; bnd.g = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.r = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.shape = {[1;2;3],[1;2;3]}; bnd.sshape = {[1],[1]}; bnd.sshapedim = {{1;1;1},{1;1;1}}; bnd.gporder = {{1;1;1},{1;1;1}}; bnd.cporder = {{1;1;1},{1;1;1}}; bnd.init = {{'';'';''},{'';'';''}}; bnd.dinit = {{'';'';''},{'';'';''}}; bnd.ind = [1,1,1,2,1,2,1,1,2,2,2,2]; bnd.dim = {'Hrad','Hazi','Haxi'}; bnd.var = {'nx_Axisymmetric_Dielectric_Resonator_Simulator',{'nx','nx'}, ... 'ny_Axisymmetric_Dielectric_Resonator_Simulator',{'ny','ny'}}; bnd.expr = {}; bnd.lock = [0,0,0,0,0,0,0,0,0,0,0,0]; bnd.mlock = {[0,0,0,0,0,0,0,0,0,0,0,0]}; xfem.bnd = bnd; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.shape = {[1;2;3]}; pnt.sshape = {[1]}; pnt.sshapedim = {{1;1;1}}; pnt.init = {{'';'';''}}; pnt.dinit = {{'';'';''}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1]; pnt.dim = {'Hrad','Hazi','Haxi'}; pnt.var = {}; pnt.expr = {}; pnt.lock = [0,0,0,0,0,0,0,0,0,0,0]; pnt.mlock = {[0,0,0,0,0,0,0,0,0,0,0]}; xfem.pnt = pnt; xfem.var = {}; xfem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEnDens','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi', ... 'Drad','(Haxi*M-Haziy*x)/x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','(Hazi-Hrad*M+Hazix*x)/x', ... 'Erad','Drad/erel', ... 'Eazi','Dazi/erel', ... 'Eaxi','Daxi/erel', ... 'ElecMagSqrd','Erad*Erad+Eazi*Eazi+Eaxi*Eaxi', ... 'ElecEnDens','Erad*Drad+Eazi*Dazi+Eaxi*Daxi'}; clear descr descr.expr= {'Eaxi','axial component of electric field strength','DivH','divergence of magnetic field (should be zero!)','Eazi','azimuthal component of electric field strength','ElecMagSqrd','electric field strength magnitude squared','ElecEnDens','electric energy density','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Daxi','axial component of electric displacement','Erad','radial component of electric field strength','MagEnDens','logarithmic magnetic energy density'}; xfem.descr = descr; clear elemcpl clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; elem.global = {}; elemcpl{1} = elem; xfem.elemcpl = elemcpl; clear draw draw.p.objs = {}; draw.p.name = {}; draw.c.objs = {}; draw.c.name = {}; draw.s.objs = {flbinary('g57','draw','toroidal_silica_microcavity_c32_v4.mph'),flbinary('g59','draw','toroidal_silica_microcavity_c32_v4.mph')}; draw.s.name = {'R1','CO1'}; xfem.draw = draw; xfem.const = {'c','299792458','fc','4*pi^2/c^2','alpha','1','M','93','delta_e','0.0','e1','n_silica^2*(1+delta_e)','e2','1.0','e3','1.0','e4','1.0','e5','1.0','delta_eperp1','0*1e-3','eperp1','9.2725*(1+delta_eperp1)','delta_epara1','0*1e-3','epara1','11.3486*(1+delta_epara1)','eperp2','1.0','epara2','1.0','eperp3','1.0','epara3','1.0','eperp4','1.0','epara4','1.0','eperp5','1.0','epara5','1.0','e_293K_alumina','9.8','eperp_4K_sapph_UWA','9.2725','epara_4K_sapph_UWA','11.3486','eperp_293K_sapph','9.407','epara_293K_sapph','11.62','eperp_4K_sapph_NPL','9.2848','epara_4K_sapph_NPL','11.3660','n_silica','1.4457'}; clear fcns xfem.functions = {}; descr = xfem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (Fig B.2, p. 172 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; xfem.descr = descr; xfem.sol = flbinary('xfem','solution','toroidal_silica_microcavity_c32_v4.mph'); xfem.xmcases = [0]; xfem.mcases = [0]; flbinary clear; xfem.rulingmode = 'Axisymmetric_Dielectric_Resonator_Simulator'; xfem.solform = 'weak'; uq~ tgui.solvemodel.toutcomp='off'; gui.solvemodel.currsolver='eig'; gui.solvemodel.solveroption=''; gui.solvemodel.postsolver='eig'; gui.solvemodel.ntol='1.0E-6'; gui.solvemodel.maxiter='25'; gui.solvemodel.manualdamp='off'; gui.solvemodel.hnlin='off'; gui.solvemodel.initstep='1.0'; gui.solvemodel.minstep='1.0E-4'; gui.solvemodel.rstep='10.0'; gui.solvemodel.atol='0.0010'; gui.solvemodel.rtol='0.01'; gui.solvemodel.tlist='0:0.1:1'; gui.solvemodel.tout='tlist'; gui.solvemodel.tsteps='free'; gui.solvemodel.manualreassem='off'; gui.solvemodel.emassconst='on'; gui.solvemodel.massconst='on'; gui.solvemodel.loadconst='on'; gui.solvemodel.constrconst='on'; gui.solvemodel.jacobianconst='on'; gui.solvemodel.constrjacobianconst='on'; gui.solvemodel.manualstep='off'; gui.solvemodel.initialstep='0.0010'; gui.solvemodel.maxorder='5'; gui.solvemodel.maxstep='1.0'; gui.solvemodel.masssingular='maybe'; gui.solvemodel.consistent='2'; gui.solvemodel.estrat='0'; gui.solvemodel.complex='off'; gui.solvemodel.neigs='1'; gui.solvemodel.shift='0'; gui.solvemodel.maxeigit='500'; gui.solvemodel.etol='0.0'; gui.solvemodel.krylovdim='0'; gui.solvemodel.pname=''; gui.solvemodel.plist=''; gui.solvemodel.porder='1'; gui.solvemodel.manualparam='off'; gui.solvemodel.pinitstep='0.0'; gui.solvemodel.pminstep='0.0'; gui.solvemodel.pmaxstep='0.0'; gui.solvemodel.outform='auto'; gui.solvemodel.symmetric='on'; gui.solvemodel.symmhermit='symmetric'; gui.solvemodel.method='eliminate'; gui.solvemodel.nullfun='auto'; gui.solvemodel.blocksize='5000'; gui.solvemodel.uscale='auto'; gui.solvemodel.manscale=''; gui.solvemodel.rowscale='on'; gui.solvemodel.conjugate='off'; gui.solvemodel.complexfun='off'; gui.solvemodel.solfile='off'; gui.solvemodel.adaptgeom='currgeom'; gui.solvemodel.maxt='10000000'; gui.solvemodel.rmethod='longest'; gui.solvemodel.resorder='0'; gui.solvemodel.l2scale='1'; gui.solvemodel.l2staborder='2'; gui.solvemodel.eigselect='1'; gui.solvemodel.tpfun='fltpft'; gui.solvemodel.ngen='2'; gui.solvemodel.tpmult='1.7'; gui.solvemodel.tpworst='0.5'; gui.solvemodel.tpfract='0.5'; gui.solvemodel.autosolver='on'; gui.solvemodel.solcomp='Hazi,Haxi,Hrad'; gui.solvemodel.outcomp='Hazi,Haxi,Hrad'; gui.solvemodel.inittype='init_expr_currsol_radio'; gui.solvemodel.initsolnum='Automatic'; gui.solvemodel.inittime='0'; gui.solvemodel.utype='u_init_radio'; gui.solvemodel.usolnum='Automatic'; gui.solvemodel.utime='0'; gui.solvemodel.scriptcommands=''; gui.solvemodel.usescript='off'; gui.solvemodel.autoscript='off'; gui.solvemodel.linsolvernode.currlinsolver='spooles'; gui.solvemodel.linsolvernode.type='linsolver'; gui.solvemodel.linsolvernode.droptol='0.0'; gui.solvemodel.linsolvernode.thresh='0.1'; gui.solvemodel.linsolvernode.umfalloc='0.7'; gui.solvemodel.linsolvernode.preorder='mmd'; gui.solvemodel.linsolvernode.iter='2'; gui.solvemodel.linsolvernode.itol='1.0E-6'; gui.solvemodel.linsolvernode.rhob='400.0'; gui.solvemodel.linsolvernode.maxlinit='10000'; gui.solvemodel.linsolvernode.itrestart='50'; gui.solvemodel.linsolvernode.seconditer='1'; gui.solvemodel.linsolvernode.relax='1.0'; gui.solvemodel.linsolvernode.amgauto='3'; gui.solvemodel.linsolvernode.mglevels='6'; gui.solvemodel.linsolvernode.mgcycle='v'; gui.solvemodel.linsolvernode.maxcoarsedof='5000'; gui.solvemodel.linsolvernode.oocmemory='128.0'; gui.solvemodel.linsolvernode.oocfilename=''; gui.solvemodel.linsolvernode.modified='off'; gui.solvemodel.linsolvernode.fillratio='2.0'; gui.solvemodel.linsolvernode.respectpattern='on'; gui.solvemodel.linsolvernode.droptype='droptol'; gui.solvemodel.linsolvernode.vankavars=''; gui.solvemodel.linsolvernode.vankasolv='gmres'; gui.solvemodel.linsolvernode.vankatol='0.02'; gui.solvemodel.linsolvernode.vankarestart='100'; gui.solvemodel.linsolvernode.vankarelax='0.8'; gui.solvemodel.linsolvernode.mgauto='shape'; gui.solvemodel.linsolvernode.rmethod='regular'; gui.solvemodel.linsolvernode.coarseassem='on'; gui.solvemodel.linsolvernode.meshscale='2'; gui.solvemodel.linsolvernode.mgautolevels='2'; gui.solvemodel.linsolvernode.mgkeep='off'; gui.solvemodel.linsolvernode.mggeom='Geom1'; gui.solvemodel.linsolvernode.mcase0='on'; gui.solvemodel.linsolvernode.mgassem0='on'; gui.registry.general_currentmodel='Geom1'; gui.registry.general_currmeshcase='0'; gui.registry.general_savedonserver='off'; gui.registry.general_savedchanges='off'; gui.registry.general_rulingmode=''; gui.registry.general_incompletemfilehistory='off'; gui.registry.saved_license='1012177'; gui.registry.saved_version='COMSOL 3.2.0.224'; gui.registry.info_modelname=''; gui.registry.info_author=''; gui.registry.info_company=''; gui.registry.info_department=''; gui.registry.info_reference=''; gui.registry.info_url=''; gui.registry.info_saveddate='1187647230042'; gui.registry.info_creationdate='1141412764044'; gui.registry.info_modelresult=''; gui.reportregistry.report_contents='title=1;toc=1;modelprop=1;const=1;geometry=1;model_Geom1=1;mesh=1;appmode_Axisymmetric_Dielectric_Resonator_Simulator=1;lib_material=1;lib_section=1;coord=1;odesettings=1;intcoup=1;extrcoup=1;projcoup=1;percond=1;idcond=1;functions=1;interp=1;solver=1;post=1;equations=1;variables=1;'; gui.reportregistry.report_outputformat='html'; gui.reportregistry.report_filename='D:\My Documents\Work\Time Programme\Time 2003-2006\E03T 15 A high-flux rubidium\Topics\Finite Element Simulator\AxSim Toroidal Microcavity Resonator\14 April 2006\Caltech_SiO2_Toroidal_Microcavity_Resonator_TEp1m92_mo1.html'; gui.reportregistry.report_autoopen='on'; gui.reportregistry.report_paperformat='a4'; gui.reportregistry.report_includedefaults='off'; gui.reportregistry.report_template='none'; gui.reportregistry.report_showemptysections='off'; gui.flmodel{1}.modelname='Geom1'; gui.flmodel{1}.currmode='post'; gui.flmodel{1}.currappl='0'; gui.flmodel{1}.axis.xmin='3.3280774550484087'; gui.flmodel{1}.axis.xmax='14.671922544951592'; gui.flmodel{1}.axis.ymin='-4.4'; gui.flmodel{1}.axis.ymax='4.4'; gui.flmodel{1}.axis.zmin='-1.0'; gui.flmodel{1}.axis.zmax='1.0'; gui.flmodel{1}.axis.xspacing='1.0'; gui.flmodel{1}.axis.yspacing='1.0'; gui.flmodel{1}.axis.zspacing='1.0'; gui.flmodel{1}.axis.extrax=''; gui.flmodel{1}.axis.extray=''; gui.flmodel{1}.axis.extraz=''; gui.flmodel{1}.camera.xmin='-0.5671922544951592'; gui.flmodel{1}.camera.xmax='0.5671922544951592'; gui.flmodel{1}.camera.ymin='-0.44000000000000017'; gui.flmodel{1}.camera.ymax='0.44000000000000017'; gui.flmodel{1}.camera.camposx='0.9'; gui.flmodel{1}.camera.camposy='0.0'; gui.flmodel{1}.camera.camposz='5.671922544951592'; gui.flmodel{1}.camera.camtargetx='0.9'; gui.flmodel{1}.camera.camtargety='0.0'; gui.flmodel{1}.camera.camtargetz='0.0'; gui.flmodel{1}.camera.camupx='0.0'; gui.flmodel{1}.camera.camupy='1.0'; gui.flmodel{1}.camera.camupz='0.0'; gui.flmodel{1}.postcamera.xmin='-0.4455444902988683'; gui.flmodel{1}.postcamera.xmax='0.4455444902988683'; gui.flmodel{1}.postcamera.ymin='-0.4861168384879727'; gui.flmodel{1}.postcamera.ymax='0.4861168384879727'; gui.flmodel{1}.postcamera.camposx='0.9000000000000001'; gui.flmodel{1}.postcamera.camposy='0.0'; gui.flmodel{1}.postcamera.camposz='4.861168384879726'; gui.flmodel{1}.postcamera.camtargetx='0.9000000000000001'; gui.flmodel{1}.postcamera.camtargety='0.0'; gui.flmodel{1}.postcamera.camtargetz='0.0'; gui.flmodel{1}.postcamera.camupx='0.0'; gui.flmodel{1}.postcamera.camupy='1.0'; gui.flmodel{1}.postcamera.camupz='0.0'; gui.flmodel{1}.lightmodel.headlight.type='point'; gui.flmodel{1}.lightmodel.headlight.name='headlight'; gui.flmodel{1}.lightmodel.headlight.enable='on'; gui.flmodel{1}.lightmodel.headlight.colorr='255'; gui.flmodel{1}.lightmodel.headlight.colorg='255'; gui.flmodel{1}.lightmodel.headlight.colorb='255'; gui.flmodel{1}.lightmodel.headlight.xpos='0.9'; gui.flmodel{1}.lightmodel.headlight.ypos='0.0'; gui.flmodel{1}.lightmodel.headlight.zpos='5.6719227'; gui.flmodel{1}.lightmodel.scenelight{1}.type='directional'; gui.flmodel{1}.lightmodel.scenelight{1}.name='light 1'; gui.flmodel{1}.lightmodel.scenelight{1}.enable='on'; gui.flmodel{1}.lightmodel.scenelight{1}.colorr='255'; gui.flmodel{1}.lightmodel.scenelight{1}.colorg='255'; gui.flmodel{1}.lightmodel.scenelight{1}.colorb='255'; gui.flmodel{1}.lightmodel.scenelight{1}.xdir='1.0'; gui.flmodel{1}.lightmodel.scenelight{1}.ydir='-1.0'; gui.flmodel{1}.lightmodel.scenelight{1}.zdir='1.0'; gui.flmodel{1}.lightmodel.scenelight{2}.type='directional'; gui.flmodel{1}.lightmodel.scenelight{2}.name='light 2'; gui.flmodel{1}.lightmodel.scenelight{2}.enable='on'; gui.flmodel{1}.lightmodel.scenelight{2}.colorr='255'; gui.flmodel{1}.lightmodel.scenelight{2}.colorg='255'; gui.flmodel{1}.lightmodel.scenelight{2}.colorb='255'; gui.flmodel{1}.lightmodel.scenelight{2}.xdir='-1.0'; gui.flmodel{1}.lightmodel.scenelight{2}.ydir='1.0'; gui.flmodel{1}.lightmodel.scenelight{2}.zdir='-1.0'; gui.flmodel{1}.lightmodel.scenelight{3}.type='directional'; gui.flmodel{1}.lightmodel.scenelight{3}.name='light 3'; gui.flmodel{1}.lightmodel.scenelight{3}.enable='on'; gui.flmodel{1}.lightmodel.scenelight{3}.colorr='255'; gui.flmodel{1}.lightmodel.scenelight{3}.colorg='255'; gui.flmodel{1}.lightmodel.scenelight{3}.colorb='255'; gui.flmodel{1}.lightmodel.scenelight{3}.xdir='-1.0'; gui.flmodel{1}.lightmodel.scenelight{3}.ydir='-1.0'; gui.flmodel{1}.lightmodel.scenelight{3}.zdir='1.0'; gui.flmodel{1}.lightmodel.scenelight{4}.type='directional'; gui.flmodel{1}.lightmodel.scenelight{4}.name='light 4'; gui.flmodel{1}.lightmodel.scenelight{4}.enable='on'; gui.flmodel{1}.lightmodel.scenelight{4}.colorr='255'; gui.flmodel{1}.lightmodel.scenelight{4}.colorg='255'; gui.flmodel{1}.lightmodel.scenelight{4}.colorb='255'; gui.flmodel{1}.lightmodel.scenelight{4}.xdir='1.0'; gui.flmodel{1}.lightmodel.scenelight{4}.ydir='-1.0'; gui.flmodel{1}.lightmodel.scenelight{4}.zdir='-1.0'; gui.flmodel{1}.registry.axis_visible='on'; gui.flmodel{1}.registry.axis_auto='on'; gui.flmodel{1}.registry.axis_autoy='on'; gui.flmodel{1}.registry.axis_autoz='on'; gui.flmodel{1}.registry.axis_box='off'; gui.flmodel{1}.registry.axis_equal='on'; gui.flmodel{1}.registry.axis_csys='on'; gui.flmodel{1}.registry.grid_visible='on'; gui.flmodel{1}.registry.grid_auto='on'; gui.flmodel{1}.registry.grid_autoz='on'; gui.flmodel{1}.registry.grid_labels='on'; gui.flmodel{1}.registry.labels_object='on'; gui.flmodel{1}.registry.labels_vertex='off'; gui.flmodel{1}.registry.labels_edge='off'; gui.flmodel{1}.registry.labels_face='off'; gui.flmodel{1}.registry.labels_subdomain='off'; gui.flmodel{1}.registry.symbols_vertexscale='1.0'; gui.flmodel{1}.registry.symbols_edgescale='1.0'; gui.flmodel{1}.registry.symbols_facescale='1.0'; gui.flmodel{1}.registry.select_draw2d='size'; gui.flmodel{1}.registry.select_adj='cycle'; gui.flmodel{1}.registry.light_headlight='off'; gui.flmodel{1}.registry.light_scenelight='off'; gui.flmodel{1}.registry.light_shininess='0.5'; gui.flmodel{1}.registry.camera_mouse='orbit'; gui.flmodel{1}.registry.camera_camconstr='none'; gui.flmodel{1}.registry.camera_mouseconstr='none'; gui.flmodel{1}.registry.camera_perspective='off'; gui.flmodel{1}.registry.camera_moveasbox='off'; gui.flmodel{1}.registry.draw_dialog='off'; gui.flmodel{1}.registry.draw_keepborders='off'; gui.flmodel{1}.registry.draw_keepedges='off'; gui.flmodel{1}.registry.draw_multi='off'; gui.flmodel{1}.registry.draw_snap2grid='on'; gui.flmodel{1}.registry.draw_snap2vtx='on'; gui.flmodel{1}.registry.draw_solid='on'; gui.flmodel{1}.registry.draw_workplane_coordsys='on'; gui.flmodel{1}.registry.draw_workplane_showgeom='on'; gui.flmodel{1}.registry.draw_projection='intersection'; gui.flmodel{1}.registry.transparency_value='1.0'; gui.flmodel{1}.registry.mesh_geomdetail='normal'; gui.flmodel{1}.registry.mesh_showquality='off'; gui.flmodel{1}.registry.post_cameraview='2'; gui.flmodel{1}.registry.graphics_scale='0.1'; gui.flmodel{1}.registry.render_bndarrow='on'; gui.flmodel{1}.registry.render_vertex='off'; gui.flmodel{1}.registry.render_edge='on'; gui.flmodel{1}.registry.render_face='off'; gui.flmodel{1}.registry.highlight_vertex='off'; gui.flmodel{1}.registry.highlight_edge='on'; gui.flmodel{1}.registry.highlight_face='off'; gui.flmodel{1}.meshparam.hmax=''; gui.flmodel{1}.meshparam.hmaxfact='0.55'; gui.flmodel{1}.meshparam.hgrad='1.25'; gui.flmodel{1}.meshparam.hcurve='0.25'; gui.flmodel{1}.meshparam.hcutoff='0.0005'; gui.flmodel{1}.meshparam.hnarrow='1'; gui.flmodel{1}.meshparam.hpnt='10'; gui.flmodel{1}.meshparam.xscale='1.0'; gui.flmodel{1}.meshparam.yscale='1.0'; gui.flmodel{1}.meshparam.mlevel='sub'; gui.flmodel{1}.meshparam.mcase='0'; gui.flmodel{1}.meshparam.boxcoord='6.978816179883088 9.988462160203161 -1.86627557112985 2.013807236831813'; gui.flmodel{1}.meshparam.rmethod='regular'; gui.flmodel{1}.meshparam.hmaxvtx={'','','','','','','','','','',''}; gui.flmodel{1}.meshparam.hgradvtx={'','','','','','','','','','',''}; gui.flmodel{1}.meshparam.hgradedg={'','','','','','','','','','','',''}; gui.flmodel{1}.meshparam.hcurveedg={'','','','','','','','','','','',''}; gui.flmodel{1}.meshparam.hmaxedg={'','','','','','','','','','','',''}; gui.flmodel{1}.meshparam.hcutoffedg={'','','','','','','','','','','',''}; gui.flmodel{1}.meshparam.hgradsub={'',''}; gui.flmodel{1}.meshparam.hmaxsub={'',''}; gui.flmodel{1}.postmodel.postplot.triplot='on'; gui.flmodel{1}.postmodel.postplot.tridata={'log10(ElecMagSqrd+1e-2)'}; gui.flmodel{1}.postmodel.postplot.trirangeauto='on'; gui.flmodel{1}.postmodel.postplot.trirangemin='-1.9999999999999998'; gui.flmodel{1}.postmodel.postplot.trirangemax='3.5642010593056437'; gui.flmodel{1}.postmodel.postplot.tricont='on'; gui.flmodel{1}.postmodel.postplot.triunit='1'; gui.flmodel{1}.postmodel.postplot.triheightdata={'Hrad'}; gui.flmodel{1}.postmodel.postplot.triheightdatacheck='off'; gui.flmodel{1}.postmodel.postplot.trimap='jet'; gui.flmodel{1}.postmodel.postplot.trimapdepth='1024'; gui.flmodel{1}.postmodel.postplot.tribar='on'; gui.flmodel{1}.postmodel.postplot.triusemap='on'; gui.flmodel{1}.postmodel.postplot.tricolor='255,0,0'; gui.flmodel{1}.postmodel.postplot.tricoloring='interp'; gui.flmodel{1}.postmodel.postplot.trifill='fill'; gui.flmodel{1}.postmodel.postplot.contplot='off'; gui.flmodel{1}.postmodel.postplot.contdata={'log10(Hrad*Hrad+1e-10)'}; gui.flmodel{1}.postmodel.postplot.contcont='on'; gui.flmodel{1}.postmodel.postplot.contunit='1'; gui.flmodel{1}.postmodel.postplot.contheightdata={'Hrad'}; gui.flmodel{1}.postmodel.postplot.contheightdatacheck='off'; gui.flmodel{1}.postmodel.postplot.contcolordata={'Hrad'}; gui.flmodel{1}.postmodel.postplot.contcolorrangeauto='on'; gui.flmodel{1}.postmodel.postplot.contcolorrangemin=''; gui.flmodel{1}.postmodel.postplot.contcolorrangemax=''; gui.flmodel{1}.postmodel.postplot.contcolordatacheck='off'; gui.flmodel{1}.postmodel.postplot.contmap='cool'; gui.flmodel{1}.postmodel.postplot.contmapdepth='1024'; gui.flmodel{1}.postmodel.postplot.contbar='on'; gui.flmodel{1}.postmodel.postplot.contusemap='off'; gui.flmodel{1}.postmodel.postplot.contcolor='255,255,255'; gui.flmodel{1}.postmodel.postplot.contlevels='10'; gui.flmodel{1}.postmodel.postplot.contvectorlevels=''; gui.flmodel{1}.postmodel.postplot.contisvector='off'; gui.flmodel{1}.postmodel.postplot.linplot='off'; gui.flmodel{1}.postmodel.postplot.lindata={''}; gui.flmodel{1}.postmodel.postplot.linrangeauto='on'; gui.flmodel{1}.postmodel.postplot.linrangemin='-0.7800750712289763'; gui.flmodel{1}.postmodel.postplot.linrangemax='0.7797135542749551'; gui.flmodel{1}.postmodel.postplot.lincont='on'; gui.flmodel{1}.postmodel.postplot.linheightdata={'Hrad'}; gui.flmodel{1}.postmodel.postplot.linheightdatacheck='off'; gui.flmodel{1}.postmodel.postplot.linmap='jet'; gui.flmodel{1}.postmodel.postplot.linmapdepth='1024'; gui.flmodel{1}.postmodel.postplot.linbar='on'; gui.flmodel{1}.postmodel.postplot.linusemap='on'; gui.flmodel{1}.postmodel.postplot.lincolor='255,0,0'; gui.flmodel{1}.postmodel.postplot.lincoloring='interp'; gui.flmodel{1}.postmodel.postplot.arrowplot='on'; gui.flmodel{1}.postmodel.postplot.arrowploton='sub'; gui.flmodel{1}.postmodel.postplot.arrowdata={'Erad','Eaxi'}; gui.flmodel{1}.postmodel.postplot.arrowbnddata={'Hrad','Hazi'}; gui.flmodel{1}.postmodel.postplot.arrowheightdata={'Hrad'}; gui.flmodel{1}.postmodel.postplot.arrowheightdatacheck='off'; gui.flmodel{1}.postmodel.postplot.arrowxspacing='15'; gui.flmodel{1}.postmodel.postplot.arrowxvectorspacing=''; gui.flmodel{1}.postmodel.postplot.arrowxisvector='off'; gui.flmodel{1}.postmodel.postplot.arrowyspacing='13'; gui.flmodel{1}.postmodel.postplot.arrowyvectorspacing=''; gui.flmodel{1}.postmodel.postplot.arrowyisvector='off'; gui.flmodel{1}.postmodel.postplot.arrowtype='arrow'; gui.flmodel{1}.postmodel.postplot.arrowlength='proportional'; gui.flmodel{1}.postmodel.postplot.arrowcolor='255,255,255'; gui.flmodel{1}.postmodel.postplot.arrowautoscale='off'; gui.flmodel{1}.postmodel.postplot.arrowscale='1.2'; gui.flmodel{1}.postmodel.postplot.princplot='on'; gui.flmodel{1}.postmodel.postplot.princdata={'ElecEng','','','','','','','','','','',''}; gui.flmodel{1}.postmodel.postplot.princheightdata={''}; gui.flmodel{1}.postmodel.postplot.princheightdatacheck='off'; gui.flmodel{1}.postmodel.postplot.princxspacing='8'; gui.flmodel{1}.postmodel.postplot.princxvectorspacing=''; gui.flmodel{1}.postmodel.postplot.princxisvector='off'; gui.flmodel{1}.postmodel.postplot.princyspacing='8'; gui.flmodel{1}.postmodel.postplot.princyvectorspacing=''; gui.flmodel{1}.postmodel.postplot.princyisvector='off'; gui.flmodel{1}.postmodel.postplot.princtype='arrow'; gui.flmodel{1}.postmodel.postplot.princlength='proportional'; gui.flmodel{1}.postmodel.postplot.princcolor='0,153,0'; gui.flmodel{1}.postmodel.postplot.princautoscale='on'; gui.flmodel{1}.postmodel.postplot.princscale='1'; gui.flmodel{1}.postmodel.postplot.flowplot='off'; gui.flmodel{1}.postmodel.postplot.flowplotas='lines'; gui.flmodel{1}.postmodel.postplot.flowdata={'',''}; gui.flmodel{1}.postmodel.postplot.flowtstartauto='on'; gui.flmodel{1}.postmodel.postplot.flowtstart=''; gui.flmodel{1}.postmodel.postplot.flowlines='20'; gui.flmodel{1}.postmodel.postplot.flowstart='sub'; gui.flmodel{1}.postmodel.postplot.flowstartx=''; gui.flmodel{1}.postmodel.postplot.flowstarty=''; gui.flmodel{1}.postmodel.postplot.flowisstartvector='off'; gui.flmodel{1}.postmodel.postplot.flowuseexpression='off'; gui.flmodel{1}.postmodel.postplot.flowcolor='255,0,0'; gui.flmodel{1}.postmodel.postplot.flowcolordata={'Hrad'}; gui.flmodel{1}.postmodel.postplot.flowmap='jet'; gui.flmodel{1}.postmodel.postplot.flowmapdepth='1024'; gui.flmodel{1}.postmodel.postplot.flowbar='on'; gui.flmodel{1}.postmodel.postplot.flowpointcolor='255,0,0'; gui.flmodel{1}.postmodel.postplot.flowpointautoscale='on'; gui.flmodel{1}.postmodel.postplot.flowpointscale='1'; gui.flmodel{1}.postmodel.postplot.flowdroptype='once'; gui.flmodel{1}.postmodel.postplot.flowdroptimes=''; gui.flmodel{1}.postmodel.postplot.flowdropfreq=''; gui.flmodel{1}.postmodel.postplot.flowbnd='stick'; gui.flmodel{1}.postmodel.postplot.flowheightdata={'Hrad'}; gui.flmodel{1}.postmodel.postplot.flowheightdatacheck='off'; gui.flmodel{1}.postmodel.postplot.poststreamoldcode='on'; gui.flmodel{1}.postmodel.postplot.flowtol='0.01'; gui.flmodel{1}.postmodel.postplot.flowstattol='0.01'; gui.flmodel{1}.postmodel.postplot.flowmaxtime='Inf'; gui.flmodel{1}.postmodel.postplot.flowmaxsteps='400'; gui.flmodel{1}.postmodel.postplot.flowback='on'; gui.flmodel{1}.postmodel.postplot.flownormal='off'; gui.flmodel{1}.postmodel.postplot.partplot='off'; gui.flmodel{1}.postmodel.postplot.partplotas='lines'; gui.flmodel{1}.postmodel.postplot.predefforces=''; gui.flmodel{1}.postmodel.postplot.partmass='1'; gui.flmodel{1}.postmodel.postplot.partforce={'','',''}; gui.flmodel{1}.postmodel.postplot.parttstartauto='on'; gui.flmodel{1}.postmodel.postplot.parttstart=''; gui.flmodel{1}.postmodel.postplot.partvelstart={'0','0','0'}; gui.flmodel{1}.postmodel.postplot.explicitcoord={'0','0'}; gui.flmodel{1}.postmodel.postplot.partuseexpression='off'; gui.flmodel{1}.postmodel.postplot.partcolor='255,0,0'; gui.flmodel{1}.postmodel.postplot.partcolordata={'Hrad'}; gui.flmodel{1}.postmodel.postplot.partmap='jet'; gui.flmodel{1}.postmodel.postplot.partmapdepth='1024'; gui.flmodel{1}.postmodel.postplot.partbar='on'; gui.flmodel{1}.postmodel.postplot.partpointcolor='255,0,0'; gui.flmodel{1}.postmodel.postplot.partpointautoscale='on'; gui.flmodel{1}.postmodel.postplot.partpointscale='1'; gui.flmodel{1}.postmodel.postplot.partdroptype='once'; gui.flmodel{1}.postmodel.postplot.partdroptimes=''; gui.flmodel{1}.postmodel.postplot.partdropfreq=''; gui.flmodel{1}.postmodel.postplot.partbnd='stick'; gui.flmodel{1}.postmodel.postplot.partheightdata={'Hrad'}; gui.flmodel{1}.postmodel.postplot.partheightdatacheck='off'; gui.flmodel{1}.postmodel.postplot.partrtol='0.001'; gui.flmodel{1}.postmodel.postplot.partatolmanual='off'; gui.flmodel{1}.postmodel.postplot.partatol={'',''}; gui.flmodel{1}.postmodel.postplot.partstepsizemanual='off'; gui.flmodel{1}.postmodel.postplot.parttendauto='on'; gui.flmodel{1}.postmodel.postplot.partmaxstepsauto='on'; gui.flmodel{1}.postmodel.postplot.partedgetol='0.001'; gui.flmodel{1}.postmodel.postplot.partvelvar={'partu','partv','partw'}; gui.flmodel{1}.postmodel.postplot.parttvar='partt'; gui.flmodel{1}.postmodel.postplot.partstatic='off'; gui.flmodel{1}.postmodel.postplot.partres='5'; gui.flmodel{1}.postmodel.postplot.maxminplot='on'; gui.flmodel{1}.postmodel.postplot.maxminsubdata={'ElecEnDens'}; gui.flmodel{1}.postmodel.postplot.maxminsubdatacheck='on'; gui.flmodel{1}.postmodel.postplot.maxminbnddata={'ElecEng'}; gui.flmodel{1}.postmodel.postplot.maxminbnddatacheck='off'; gui.flmodel{1}.postmodel.postplot.geom='on'; gui.flmodel{1}.postmodel.postplot.roughplot='off'; gui.flmodel{1}.postmodel.postplot.autorefine='on'; gui.flmodel{1}.postmodel.postplot.refine='3'; gui.flmodel{1}.postmodel.postplot.geomnum={'Geom1'}; gui.flmodel{1}.postmodel.postplot.phase='0'; gui.flmodel{1}.postmodel.postplot.solnum='0'; gui.flmodel{1}.postmodel.postplot.selectvia='stored'; gui.flmodel{1}.postmodel.postplot.autotitle='on'; gui.flmodel{1}.postmodel.postplot.customtitle=''; gui.flmodel{1}.postmodel.postplot.smoothinternal='on'; gui.flmodel{1}.postmodel.postplot.useellogic='off'; gui.flmodel{1}.postmodel.postplot.ellogic=''; gui.flmodel{1}.postmodel.postplot.ellogictype='all'; gui.flmodel{1}.postmodel.postplot.deformplot='off'; gui.flmodel{1}.postmodel.postplot.deformsub='on'; gui.flmodel{1}.postmodel.postplot.deformbnd='on'; gui.flmodel{1}.postmodel.postplot.deformsubdata={'',''}; gui.flmodel{1}.postmodel.postplot.deformbnddata={'Hrad','Hazi'}; gui.flmodel{1}.postmodel.postplot.deformautoscale='on'; gui.flmodel{1}.postmodel.postplot.deformscale='0.002997'; gui.flmodel{1}.postmodel.postplot.animate_solnum='0'; gui.flmodel{1}.postmodel.postplot.animate_selectvia='stored'; gui.flmodel{1}.postmodel.postplot.filetype='AVI'; gui.flmodel{1}.postmodel.postplot.width='640'; gui.flmodel{1}.postmodel.postplot.height='480'; gui.flmodel{1}.postmodel.postplot.fps='10'; gui.flmodel{1}.postmodel.postplot.statfunctype='full'; gui.flmodel{1}.postmodel.postplot.statnframes='11'; gui.flmodel{1}.postmodel.postplot.reverse='off'; gui.flmodel{1}.postmodel.postplot.movieinmatlab='off'; gui.flmodel{1}.postmodel.postplot.copyaxis='off'; gui.flmodel{1}.postmodel.intdata{1}.intdata={'Hrad'}; gui.flmodel{1}.postmodel.intdata{1}.phase='0'; gui.flmodel{1}.postmodel.intdata{1}.solnum='0'; gui.flmodel{1}.postmodel.intdata{1}.selectvia='stored'; gui.flmodel{1}.postmodel.intdata{2}.autoorder='on'; gui.flmodel{1}.postmodel.intdata{2}.multiplyexpr='off'; gui.flmodel{1}.postmodel.intdata{2}.intdata={'Hrad'}; gui.flmodel{1}.postmodel.intdata{2}.phase='0'; gui.flmodel{1}.postmodel.intdata{2}.solnum='0'; gui.flmodel{1}.postmodel.intdata{2}.selectvia='stored'; gui.flmodel{1}.postmodel.intdata{3}.order='4'; gui.flmodel{1}.postmodel.intdata{3}.autoorder='on'; gui.flmodel{1}.postmodel.intdata{3}.multiplyexpr='off'; gui.flmodel{1}.postmodel.intdata{3}.intdata={'2*pi*x*ElecEnDens'}; gui.flmodel{1}.postmodel.intdata{3}.phase='0'; gui.flmodel{1}.postmodel.intdata{3}.solnum='0'; gui.flmodel{1}.postmodel.intdata{3}.selectvia='stored'; gui.flmodel{1}.postmodel.domainplot.colordata={'Hrad'}; gui.flmodel{1}.postmodel.domainplot.colorrangeauto='on'; gui.flmodel{1}.postmodel.domainplot.colorrangemin=''; gui.flmodel{1}.postmodel.domainplot.colorrangemax=''; gui.flmodel{1}.postmodel.domainplot.colorcont='on'; gui.flmodel{1}.postmodel.domainplot.surfacesurfacemap='jet'; gui.flmodel{1}.postmodel.domainplot.surfacesurfacemapdepth='1024'; gui.flmodel{1}.postmodel.domainplot.surfacesurfacebar='on'; gui.flmodel{1}.postmodel.domainplot.surfacesurfaceusemap='on'; gui.flmodel{1}.postmodel.domainplot.surfacesurfacecolor='255,0,0'; gui.flmodel{1}.postmodel.domainplot.surfacesurfacecoloring='interp'; gui.flmodel{1}.postmodel.domainplot.surfacesurfacefill='fill'; gui.flmodel{1}.postmodel.domainplot.extrusion='off'; gui.flmodel{1}.postmodel.domainplot.lineyaxisdata={'Hrad'}; gui.flmodel{1}.postmodel.domainplot.lineyaxiscont='on'; gui.flmodel{1}.postmodel.domainplot.linexaxisxaxistype='arc'; gui.flmodel{1}.postmodel.domainplot.linexaxisuseexpr='off'; gui.flmodel{1}.postmodel.domainplot.linexaxisdata={'Hrad'}; gui.flmodel{1}.postmodel.domainplot.linelinestyle='solid'; gui.flmodel{1}.postmodel.domainplot.linelinecolor='cyclecolor'; gui.flmodel{1}.postmodel.domainplot.linelinemarker='none'; gui.flmodel{1}.postmodel.domainplot.linelegend='off'; gui.flmodel{1}.postmodel.domainplot.linecolor='255,0,0'; gui.flmodel{1}.postmodel.domainplot.linesurfacemap='jet'; gui.flmodel{1}.postmodel.domainplot.linesurfacemapdepth='1024'; gui.flmodel{1}.postmodel.domainplot.linesurfacebar='on'; gui.flmodel{1}.postmodel.domainplot.linesurfaceusemap='on'; gui.flmodel{1}.postmodel.domainplot.linesurfacecolor='255,0,0'; gui.flmodel{1}.postmodel.domainplot.linesurfacecoloring='interp'; gui.flmodel{1}.postmodel.domainplot.linesurfacefill='fill'; gui.flmodel{1}.postmodel.domainplot.pointyaxisdata={'Hrad'}; gui.flmodel{1}.postmodel.domainplot.pointxxaxistype=''; gui.flmodel{1}.postmodel.domainplot.pointxuseexpr='off'; gui.flmodel{1}.postmodel.domainplot.pointxdata={'Hrad'}; gui.flmodel{1}.postmodel.domainplot.pointlinestyle='solid'; gui.flmodel{1}.postmodel.domainplot.pointlinecolor='cyclecolor'; gui.flmodel{1}.postmodel.domainplot.pointlinemarker='none'; gui.flmodel{1}.postmodel.domainplot.pointlegend='off'; gui.flmodel{1}.postmodel.domainplot.pointcolor='255,0,0'; gui.flmodel{1}.postmodel.domainplot.crossdispcolor='255,0,0'; gui.flmodel{1}.postmodel.domainplot.phase='0'; gui.flmodel{1}.postmodel.domainplot.solnum='0'; gui.flmodel{1}.postmodel.domainplot.selectvia='stored'; gui.flmodel{1}.postmodel.domainplot.autotitle='on'; gui.flmodel{1}.postmodel.domainplot.customtitle=''; gui.flmodel{1}.postmodel.domainplot.autolabelx='on'; gui.flmodel{1}.postmodel.domainplot.customlabelx=''; gui.flmodel{1}.postmodel.domainplot.autolabely='on'; gui.flmodel{1}.postmodel.domainplot.customlabely=''; gui.flmodel{1}.postmodel.domainplot.axistype={'lin','lin'}; gui.flmodel{1}.postmodel.domainplot.smoothinternal='on'; gui.flmodel{1}.postmodel.domainplot.autorefine='on'; gui.flmodel{1}.postmodel.domainplot.refine='3'; gui.flmodel{1}.postmodel.domainplot.plottypeind='0'; gui.flmodel{1}.postmodel.crossplot.extrusion='off'; gui.flmodel{1}.postmodel.crossplot.lineyaxisdata={'log10(Eaxi*Eaxi+100)'}; gui.flmodel{1}.postmodel.crossplot.lineyaxisunit='1'; gui.flmodel{1}.postmodel.crossplot.linexaxisxaxistype='arc'; gui.flmodel{1}.postmodel.crossplot.linexaxisuseexpr='off'; gui.flmodel{1}.postmodel.crossplot.linexaxisdata={'Hrad'}; gui.flmodel{1}.postmodel.crossplot.linelinestyle='solid'; gui.flmodel{1}.postmodel.crossplot.linelinecolor='cyclecolor'; gui.flmodel{1}.postmodel.crossplot.linelinemarker='none'; gui.flmodel{1}.postmodel.crossplot.linelegend='off'; gui.flmodel{1}.postmodel.crossplot.linecolor='255,0,0'; gui.flmodel{1}.postmodel.crossplot.linesurfacemap='jet'; gui.flmodel{1}.postmodel.crossplot.linesurfacemapdepth='1024'; gui.flmodel{1}.postmodel.crossplot.linesurfacebar='on'; gui.flmodel{1}.postmodel.crossplot.linesurfaceusemap='on'; gui.flmodel{1}.postmodel.crossplot.linesurfacecolor='255,0,0'; gui.flmodel{1}.postmodel.crossplot.linesurfacecoloring='interp'; gui.flmodel{1}.postmodel.crossplot.linesurfacefill='fill'; gui.flmodel{1}.postmodel.crossplot.lineresolution='200'; gui.flmodel{1}.postmodel.crossplot.linecoord={'9','9','-1.5','1.5'}; gui.flmodel{1}.postmodel.crossplot.linelevels='5'; gui.flmodel{1}.postmodel.crossplot.linevectorlevels=''; gui.flmodel{1}.postmodel.crossplot.lineisvector='off'; gui.flmodel{1}.postmodel.crossplot.lineactive='off'; gui.flmodel{1}.postmodel.crossplot.pointyaxisdata={''}; gui.flmodel{1}.postmodel.crossplot.pointxxaxistype=''; gui.flmodel{1}.postmodel.crossplot.pointxuseexpr='off'; gui.flmodel{1}.postmodel.crossplot.pointxdata={'Hrad'}; gui.flmodel{1}.postmodel.crossplot.pointlinestyle='solid'; gui.flmodel{1}.postmodel.crossplot.pointlinecolor='cyclecolor'; gui.flmodel{1}.postmodel.crossplot.pointlinemarker='none'; gui.flmodel{1}.postmodel.crossplot.pointlegend='off'; gui.flmodel{1}.postmodel.crossplot.pointcolor='255,0,0'; gui.flmodel{1}.postmodel.crossplot.pointcoord={'0','0'}; gui.flmodel{1}.postmodel.crossplot.crossdispcolor='0,0,0'; gui.flmodel{1}.postmodel.crossplot.phase='0'; gui.flmodel{1}.postmodel.crossplot.solnum='0'; gui.flmodel{1}.postmodel.crossplot.selectvia='stored'; gui.flmodel{1}.postmodel.crossplot.autotitle='on'; gui.flmodel{1}.postmodel.crossplot.customtitle=''; gui.flmodel{1}.postmodel.crossplot.autolabelx='on'; gui.flmodel{1}.postmodel.crossplot.customlabelx=''; gui.flmodel{1}.postmodel.crossplot.autolabely='on'; gui.flmodel{1}.postmodel.crossplot.customlabely=''; gui.flmodel{1}.postmodel.crossplot.axistype={'lin','lin'}; gui.flmodel{1}.postmodel.crossplot.plottypeind='0'; gui.flmodel{1}.postmodel.dataexport.pntdata={'Hrad'}; gui.flmodel{1}.postmodel.dataexport.pntlocation='element'; gui.flmodel{1}.postmodel.dataexport.pntlagorder='2'; gui.flmodel{1}.postmodel.dataexport.bnddata={'Hrad'}; gui.flmodel{1}.postmodel.dataexport.bndcont='on'; gui.flmodel{1}.postmodel.dataexport.bndlocation='element'; gui.flmodel{1}.postmodel.dataexport.bndlagorder='2'; gui.flmodel{1}.postmodel.dataexport.subdata={'Hrad'}; gui.flmodel{1}.postmodel.dataexport.subcont='on'; gui.flmodel{1}.postmodel.dataexport.subxspacing='10'; gui.flmodel{1}.postmodel.dataexport.subxvectorspacing=''; gui.flmodel{1}.postmodel.dataexport.subxisvector='off'; gui.flmodel{1}.postmodel.dataexport.subyspacing='10'; gui.flmodel{1}.postmodel.dataexport.subyvectorspacing=''; gui.flmodel{1}.postmodel.dataexport.subyisvector='off'; gui.flmodel{1}.postmodel.dataexport.sublocation='element'; gui.flmodel{1}.postmodel.dataexport.sublagorder='2'; gui.flmodel{1}.postmodel.dataexport.phase='0'; gui.flmodel{1}.postmodel.dataexport.solnum='0'; gui.flmodel{1}.postmodel.dataexport.selectvia='stored'; gui.flmodel{1}.postmodel.dataexport.exportformat='ptd'; gui.flmodel{1}.postmodel.dataexport.exportedim='2'; gui.flmodel{1}.postmodel.dataexport.struct='off'; gui.flmodel{1}.postmodel.datadisplay.pntdata={'Hrad'}; gui.flmodel{1}.postmodel.datadisplay.pntlocation='element'; gui.flmodel{1}.postmodel.datadisplay.pntlagorder='2'; gui.flmodel{1}.postmodel.datadisplay.bnddata={'Hrad'}; gui.flmodel{1}.postmodel.datadisplay.bndcont='on'; gui.flmodel{1}.postmodel.datadisplay.bndlocation='element'; gui.flmodel{1}.postmodel.datadisplay.bndlagorder='2'; gui.flmodel{1}.postmodel.datadisplay.subdata={'Hrad'}; gui.flmodel{1}.postmodel.datadisplay.subcont='on'; gui.flmodel{1}.postmodel.datadisplay.subxspacing='10'; gui.flmodel{1}.postmodel.datadisplay.subxvectorspacing=''; gui.flmodel{1}.postmodel.datadisplay.subxisvector='off'; gui.flmodel{1}.postmodel.datadisplay.subyspacing='10'; gui.flmodel{1}.postmodel.datadisplay.subyvectorspacing=''; gui.flmodel{1}.postmodel.datadisplay.subyisvector='off'; gui.flmodel{1}.postmodel.datadisplay.sublocation='element'; gui.flmodel{1}.postmodel.datadisplay.sublagorder='2'; gui.flmodel{1}.postmodel.datadisplay.phase='0'; gui.flmodel{1}.postmodel.datadisplay.solnum='0'; gui.flmodel{1}.postmodel.datadisplay.selectvia='stored'; gui.flmodel{1}.postmodel.datadisplay.exportformat='ptd'; gui.flmodel{1}.postmodel.datadisplay.exportedim='2'; gui.flmodel{1}.postmodel.datadisplay.struct='off'; gui.flmodel{1}.postmodel.datadisplay.fullprecision='off'; gui.flmodel{1}.postmodel.datadisplay.interpdata={'Hrad'}; gui.flmodel{1}.postmodel.datadisplay.coord={'0','0'}; gui.flmodel{1}.geommodel.suppressed{1}=[]; gui.flmodel{1}.geommodel.suppressed{2}=[]; gui.flmodel{1}.geommodel.suppressed{3}=[]; gui.flmodel{1}.workplane.type='0'; gui.flmodel{1}.workplane.wrkpln='0,1,0,0,0,1,0,0,0'; gui.flmodel{1}.workplane.localsys='0,1,0,0,0,0,1,0,0,0,0,1'; gui.flmodel{1}.workplane.model2d='Geom1'; gui.flmodel{1}.workplane.quicktype='10'; gui.flmodel{1}.workplane.parameter='0'; gui.flmodel{1}.workplane.zdir='up'; gui.flmodel{1}.meshmodel.meshplot.subplot='on'; gui.flmodel{1}.meshmodel.meshplot.meshsubuseexpression='on'; gui.flmodel{1}.meshmodel.meshplot.meshsubcolor='128,128,128'; gui.flmodel{1}.meshmodel.meshplot.meshsubbordercheck='off'; gui.flmodel{1}.meshmodel.meshplot.meshwiresubplot='on'; gui.flmodel{1}.meshmodel.meshplot.meshwiresubcolor='192,192,192'; gui.flmodel{1}.meshmodel.meshplot.bndplot='on'; gui.flmodel{1}.meshmodel.meshplot.meshbndcolor='0,0,0'; gui.flmodel{1}.meshmodel.meshplot.useellogic='off'; gui.flmodel{1}.meshmodel.meshplot.ellogic=''; gui.flmodel{1}.meshmodel.meshplot.ellogictype='all'; gui.flmodel{1}.meshmodel.meshplot.meshkeepfraction='1'; gui.flmodel{1}.meshmodel.meshplot.meshkeeptype='random'; gui.flmodel{1}.meshmodel.meshplot.meshmap='jet'; gui.flmodel{1}.meshmodel.meshplot.meshmapdepth='1024'; gui.flmodel{1}.meshmodel.meshplot.meshbar='on'; uq~ txfemsrcom.femlab.geom.Rectȉ,E6DlxDlyLlxExprt!Lcom/femlab/geom/Geom$Expression;LlyExprq~[xrcom.femlab.geom.Prim2Z~DrotLbaseq~Lconstrq~[post[D[posExprt"[Lcom/femlab/geom/Geom$Expression;LrotExprq~[xrcom.femlab.geom.Geom2Vc/Oxrcom.femlab.geom.Geom͹6{L geomAssoctLcom/femlab/geom/GeomAssoc;Lversionq~xpwsq~wt COMSOL 3.2twt $Name: $t$Date: 2005/10/24 07:30:19 $xwuq~RGeom2|=-C6?@*@*@@@@???? BezierCurve@?*@? BezierCurve*@?*@@? BezierCurve*@@?@@? BezierCurve@@?@? AssocAttrib VectorInt AssocAttrib VectorInt1  xwxwtcenterur[D>cZxp@"ur"[Lcom.femlab.geom.Geom$Expression;\2YUxpsrcom.femlab.geom.Geom$Expression OpI_hDnumScaleLexprStrq~Lthis$0tLcom/femlab/geom/Geom;xpwt9w?xsq~nwt0w?xwsq~nwt0w?FR9xxw @ sq~nwt8w?xw@ sq~nwt8w?xxsq~_wq~cw[uq~R[Geom2|=-C6?@@? 1`fW@ 1`fW@? @ @?#@??????? BezierCurve@?@?? BezierCurve@? 1`fW@? BezierCurve@?? 1`fW@?? BezierCurve 1`fW@ .)?$L@5A-? @? BezierCurve 1`fW@? .)?$L@?5A-? @?? BezierCurve @?#@;f?#@? BezierCurve @??#@?;f?#@? AssocAttrib VectorInt5  xwxsq~_wq~cw uq~R Geom2|=-C6? @@@?@@ 1`fW@ 1`fW@? @ @?#@*@*@@ ? ????? ? ?? ?  ?  ?  BezierCurve@?@߿? BezierCurve@?*@? BezierCurve@?@?? BezierCurve@? 1`fW@? BezierCurve@??@@? BezierCurve@??1`fW@?? BezierCurve@@?*@@? BezierCurve*@?*@@? BezierCurve1`fW@ .)?$L@5A-? @? BezierCurve 1`fW@? .)?$L@?5A-? @?? BezierCurve @?#@;f?#@? BezierCurve @??#@?;f?#@?xwxsrcom.femlab.mesh.Mesh_q Lversionq~xpwq~cwur[[Dǭ dgExpuq~j @@@@@Wf`1 @Wf`1 @ @ @#@*@*@@@@@@@@@@@@$I$I@I$I$@mm@I$I$@mm@mm@@$I$H@I$I$@mm@ I$I$@ mm@!mm@!@"I$I#@#$I$H@#mm@$I$I$@$mm@%mm@%@&I$I#@'$I$G@'ml@(I$I$@(mm@)mm@@@@-@H" Z@+30@:D@ @I4UP(@@@@@@@@@@@@,@H" X@+30@:D@ @I4UP(@$I$I@I$I$@mm@I$I$@mm@mm@@$I$H@I$I$@mm@ I$I$@ mm@!mm@!@"I$I#@#$I$H@#mm@$I$I$@$mm@%mm@%@&I$I#@'$I$G@'ml@(I$I$@(mm@)mm@*@*@*@*@*@*@)@*@*@*@*@*@*@*@*@*@*@*@*@*@*@*@*@*@*@*@*@]dI@`ߐA@|}h@;b@R0V@HgY@]dG@`ߐA@|}d@;b@R0V@HgY@ _i8u@!%@!kx@")ɚ@"~_ܕ@"ŊO @">V_@ _i8u@!%@!kx@")ɚ@"~_ܕ@"ŊO @">V_@&?I/J@&?I/J@"lD@"lD@%+@XTcM@XTcM@&y@H@&y@H@ $I$I@ $I$I@'^~@$v@$ >q@f1@f1@$V|@($@$^Ǵo@(&@'&@$i׎@$@Wa @Wa @#תo@(X<$@(X<$@{w8@{w8@!Mf\@!Mf\@$&9u@#@#@">$͏@">$͏@ml@ml@&JR=@%i@&K{@(R֞@*Ԃ}@*Ԃ}@$RG@%l@f1@f1@&X<$@&3nz@$\@&)@ @ @#I8>G@&+@ L@ S8L-@!@!tI @#5-Ao@(\UA@"2@"sV@'ē5@'Mt@'5'@(>s@(rT-@(ZuV@~lj@~lj@#)@% YtY2@@@'NvJ'@(bIL@%V{@(%@(/?J@%!aw|.@8@{ ]q@@@#sL)e@%B9@4g@'#@nb(@# cTh@q@q@),w4@"Aj @$vmQ,"@$U.@$#w=_w@)9 *@$gt@'׳.@#޳ @'X@"?:,@i@i@) Bd@ A"@ A @#Fy@ ȮM@&sgB@)@&E|T@'EW@#na@) M.@',k@%M @)K{@)K{@#+nJ@%??Fi@#qs@3Uz@3Uz@%Q[@-@%$@eEA@ ym}@j>@j>@]$ @'hsq@#,3 @㒏X@),{oP@),{oP@'Ifڇ@$ '[.c@ 2̍@#`a!2@XtJ@A@P`@$"u@'O-@&>@ݼD@h@ݼA@gYp@gYp@%&@${(kZ@EjA>@%nfȼX@';H?@!h@t@t@#LЦV@K!@K!@!y]C@ XF@!M^>@!M^>@!bi@"FpY:>@( Q-r;@!bi@&h. ~@RUTzH@RUTzH@!a`@'wY@ W@ W@%L=@'9@h|y@h|y@<}V@&"@@uc`)@Gz־@";ifC@"?Y@%j'%@dzk@"J<@&^d-t@&@>ȫ@!RL@(]ϑ@ )&@V5<@&!ZGX3@'Cm-@%c8@$(3f@#h,@ 9__T@ .@'yVa@)vs}@'lm@(b'@%ߪ>H@!OiO@ 1@#o<@[2/@[2/@#ȗWc'@!͉q=@)߮dI@@HeF@&X)@ 3;5@#ˎ?@$I{F@&qd@&/P@(@%,+@' $+@#Rw$@#w9@[7M@&ugt@(*|.@&Y@WGV@ m@I$I#@dM@ m@ qoo@'\ݠ+@y솎d@"$4)p@̂@$@#+@uq*@ K;h@˧lvj@]}QH@]}QH@&9.VM@)Õ @)!h\@(q@ +Y@$uz@%KG@#tq7@)%@)%@$c@(I>@)l @;#@%@?0@wo @wo @$⛹@)%@LZY@( 0@(A"p@'<=g@#% lF@(Cn@-.w@)o$&M@",KR@&Lľ@WGYDr@"/M@%U'8@(,?:@(/{@'qnj@'@ F0@:@"RF@'z$gx@~kh@!(@(Yfw@%:@&>Y@(+ @xW@~@~@"[I@"@#JA @i@i@xĠ@$cC@40D@"4@'TpKg@"<}$@"@#6'@')("Q@%=E@,hBL@,hBL@$D@)8շ5J@q5J@'\s|t@$~U@m z@%,V@$@!{qY@%ʷP*@"B@&):@6!Eu@,,(׽@".b@.Ӻo@y @$BXN^@$IV@#_@4@>&G@%km@)]&@,@,@$Q9Jx@%m<@ZY@ꪪ@ +]@(<@y=@'[@#&ܴ @&;z@&DAڜ@!(c@"E8@MkqAG@)ju@!=?!@!=?!@'r)w@ q^@?p@)3@@I:@$7-@$wvS@(g> @$@$@$Q@)o@'>l@% AG@((!q,@& 7*,@( C^@!]ל@!]ל@#I@V;C@Wot@(a4!@%6K @)StF@!\d@!\d@@"ߔb@' ـAG@#~};@#N弉-@$]i֮M@!Ϻ@&I@"@#̮0@$̦.@#>p1X>@&DHp@s[@"n@TR@Si&t@%x`@7}@t%BePx@>h@>h@m@Ps@~@~@gD(@Eb@'L@)P@\_@!;T:@& l@#qݶ<@(vhJ@5d&@ 4@#%I{@'2#@8@8@`w@(y!Lo@"/i/@)13`@"@)]&@(@JĻ@(@&5O h@V@) u I@$A i@%6NCB@''7@(-@@&Ȓ@(@$p@#)q@)%m@$5@_>k@$ 4@"mr@"~஋n@)Õ @$PY@'tw@%r`@'Fӫ@3G; @%Pku@'^(@aiߐ@aiߐ@P!@P!@#Ve@)!h\@Q&u@Q&u@Hd@&܇V"@&e"h@ĸ@47i@$ (01@i@i@@)l@)Zl @!>.U@# |@$:1 @'T5/@r3SfJ@"+A4@(tYk@(^zA@ @$`@'v^^d@8,@^Z@%ܘ@)%@(Rd@(K7@&s:@Se@OBR@'ӋNt@(奣B@'c6_@&oR@ Մf@%׏Y@(_z@&r8%)@%@#RpdN@$8L'@(^`5@&{J]@#,@%w0vh@K>@# 2@!^z8m@$`;Ѐ@$[6k@FV@'@Bѝ[@&p,Z@(۩{@~y=@'tL@#И@!H/@)13`@%$8@FV@$u@ yz@yvMe@yvMc@!8ҝ?@xN@!z@&& b_R@%B*@APo@໷H@໷H@/Q@%UA) @#qfL@&ٽ2p@$_Y@(ڙɤZ@SCH@SCH@2 C@ /H@&/i7*@cE~@k޾}@# f@)3@)$@(j<@&2s^@"õ~W@$:c:@' !+@%l.@&Ju@KR@Q4R@Q4R@񝫎ZW@ >}@#aຏ@#/+&P@%*W@<ב5@&oA@(y@$1>@Ե@$a~[y@ps2@&RP ~@no @)l@$F[@$t˅`@"'m>@+@ Q@)=( @)=( @$c@&7fO:@n3Rn@$?!2@%C£@#`-ҍ@ cW@ӻ. @$@){@ɭ@#uE7@LJv9j@5q>@ @"qhP@"@': $@#}gl>@#r|4@)׀A@&p-1@Do>@"&jה@#@@'rwL@ a6~@tg@ )@\YV@Q no@a88E@>_T@'mkU3@'Rj͚@&zU@1@%0N@ ¿l|@(1W@#@%dHf @7b%@`|@'ڒ1@(u @j-@Ɩ} @)Ƕ@%eT|@ >&@(h@9-@C@"(qA@!JKs@&/[I@!Z@'v@<M@'@$;*@&|\ى1@#=D\d@'{E@w@$R8j@)@#"vw@i5[P@&F) 8@)c @!j&F@١XL@Jɋ@#@):@CWp@% @!8^uY@%0,@"d*[:r@( @%;Y@ęXK@&P@%P@] @2@$eAb@# &@ @J@'4eX@$dvw>@(h@w2s@\݆b@_z@#!%@`~@ p@&j"y+@#&<@%sU@&'b@nx0 @%d1@#lY땱@'N@%DHi@ )@4!~&@4!~&@}~⼚@A:@F<`Ӆ@%(#@!m@"j@'r0(@'()@'Qk]$+@p&@%3r&@-y@#rQ@ z@%Q@"eP@ j6@ p,+O@#t}@##Sc@'H:@#JX@$.@6 g@"*}9>@6Z}dz@-`@(ÐTe@&Fm@ol@@i@m&@&.Z~@%PE=@Qg@ec:@#6I^@(=)Z@)mm@%FGa@%@@ Pja3@'^"X@!)a@%kgkb@"X@)DG@ef@#P@#u81L%@*M@]Uk@ *ۂS@#2g@"ήT@"ׇH@&YZg@!ѳ3@!k@Z>U@ғi@$2@N,@N,@W@_ȴ@%hoE@$1kxh@&@<@<@4!@N @&:Q@#8Z7@#O8 @#E@*I@*I@".R@)b6wS@(Kq@#)e@(8Kݗ@0&[@&2zʃ[@@R@R@#DX %c@#ո̨@&"4 @"jX'@#^ r@}8@u)@u)@! ל@$@@%),@%ТI@ j@"h\U89@ 3a @ 3a @!MP6M@&uЦ5v@(t@(t@$a[@:0Ҹ@9@" 5z@w@&[bI@#@'q;@@*ðy@ĩs_@ Do@@ 13P@B@;9@ *@{E@JT@"KM۲@)0$Ȣ@$w"3%@"bj@#@#Q%@'S@"[I@Ƈags@Ƈags@6 W@%v@'z3@# es@)G+Hy$@$1@!@&=n`W@( @sG@@ɀ@ɀ@'#5g@I$I"@I$I"@ ]m@ {mm@ {mm@m@$&@ՠ)@7R<@$@&.i@)BQ@#\ @ P[@&̾܌@#ۊvg@(8k 4@#mAY@! ]@[nS@#nk@ U"&Rp@(_@$;"@"lYF@%V @ʲ1@@&m5R4@(闽@3@!!R@{ @|TMY@J=[ʀ@$5}@ʕF@lc܈@'ZbT@ qNCp@)N]i@._5 @%Fu2@#`-TV~s@&?eT@&?eT@"{q @(,@ҧE@$Փ3@@(:n@Au@%=z@(@ r@@) f<@'\@(B @%䔤@%=(@ V\@%̚@l|-B@K#@$Ba,@(`2Q@QW*@!n.\R@Y\@Y\@VK@$<ՎO@%0g@(uD@(.@$@$!_@#e\@#j@$fȥn@&3|b@#uX~@@((C&@#{<7@% @%[]P@%7U0@$$R@$\roK@"ss@(j +s@!XM`@E?@@@)>DPi@_2..@z-d@$y@Pm@$*d@&R>-@½J@#эRFv@%_&J@'hG)@'?@'N4Av@'^T@'!e 7@$a/9@'|ȳ/@N$ @|mn@!Zf@-@-@}@"xTgr@'9n6@]g@"fxO?Ȫ@5b@*3@'ޙ@(^yLo@]4M4@>a45@#W@#ۮ@^tf@p|8@'94@)51ˬC@"@"N3a@{qci|@(:,M_@  @%`[!@3@(9{/@) !\J@(wؒv&@'zR@ @|(@!!32q{Z@$EKL[@"X%'T@%P(2@/Lipb@&N@<h@%°@23@)rnSh@)9@)nT/@՛ֽ2@)y+@&{r@)9ݰ&@"͚ z@& >@9@#6\@~on{@~onz@)Caʅ@)Caʅ@).@).@(F\@)ؒv&@)@)@)@!NufqM@!|hZ@# 3F@#K@ D@@:xx@!ҷ[_@ @!<@ ?Z@І],@*p@ T bdj@,>@Y&:@3q% @"A@!|@I@]O@ `@ M?­@ BM@-IA@:D@ @|ތ@!p@ W+NP@"?T@Cb@4*4K@!"w@9;@ CvT#@7ےĘ@!-{3b@!3uޯ@RMT 7@ %f]卾@,@L$@ ˋ D@ʛ I@2f@|P$@w+z@ #_@cK^:@"'[VY@ +'o@ ᒦ@@! @%)@7E>@* =@l;@"Ȉ@Y*@/b/@C.|@`&dc@%@=­@!cB@ ep@"AMsO:@όg@ 9@!Z4dA@!u>@"/I@!@m@!B@>;@7o%@!| ~z^@2au@J([j@ Ezu@"zn@C@M@! @"Rhw@ /^s8@ @*@!#$8@" j@nXG@ ?x@糨@ 8@sgV@g T@" 9@A @p9)@.tT@>AH@!@K^+@ ޮ.?/@ =q @F]@۾4@Z6@ @:D@ @,|Y6@ʛ G@Dvi@"M@ ?P@ >ր-@ &şV@oS3@",@BNZ@"H>o@"Ȉ@! O@!@ @CVo@ | @7n@!v Xo@!" @!$0@J( @!k)@Y܄[YF@!1r@}V@8@s`@v9@OB<@xy4@0x2 1@! , '@ GRVk@ ~*k/@4S>@+4@C3@Oj@l`G]@ @ cD;@?_ʦV@s )@/@FhK@ ]@&@@@~@ ܔ䬺@j,@*vE@hj@^@-PjG2@!~;c@Z-@Ũl@ PK@zWC@~`6@r @?@s7"@@q "@{F97@?@s7"@@q "@{F97@ IqW@ t@!iHv`@!WЊ@"Qʨ@"1@"37u@"nK{@ IqW@ t@!iHv`@!WЊ@"Qʨ@"1@"37u@"nK{@=T,4@#1BV@"Z.jr@"Bg @!2@! @!Q=Q@!7:@"ŭQ#@#~.ٴ@v,S@#sz@#a @"-;-^@#}f@#!@#A\|@7uZ@"@#^ov@#%/`@RŻN@ @"ׯф|@"S&@"uO8@7l[e@> @n5"@ `<#2@ $IX@!Hsn@"PX#8@"u]@!UG@b@ 4j@"mo@@ؗ+@#? P5@uh`:s@!FL@2@ԖM)UO@"[@,$@;炡 @! aC @@]Dtf@! A@C%R}D@ @!@$2ؗ@!PK@E|@ ]V@#W\%@#R@!g_-@!*C@!a'@!yFf@P@#@@!cP@ Ճ@"EXTJ@"Nn06G@ Q@"V3.@"D@"hĿJ@"@$D@# te@-B@fM4L@rGp @!ËU@#`r@"~ @ r*@O@ `3HT:@ 暴I'@鋆n^@'ß@#M'@@"bP@cw@|z@!8S@#fs@")|@ e*t@ h@޽@l.^t@u@ Oc@ O ~@s@!N B%w@ s= @@"lGBS@ 9רo@[@ii@Г@ea-A{@nR@ @o@/ щ@!In,^@"s\Z@}Y?&0@!x%WE@ ECa@sY@%5@! ^@"'d(@"N{@!}w@" &@@#=I@+w@"")h@"'| @wUC@SMj@#dNd%@s@!ߎ\B@!GrP@#}s@"Sg 9Z@ _#8F@!Ӯ @/!@#2b@ ^ΚC\@ @@"_xT@$v4@ PƗ@sj@#2Nb@m@$K@#`@4@"AB@#o@!gy@#ܔΪ@!e5z@!:a@ @#&%:R@Spx@l{ @"@~\v!@"@#}wyiF@sb\r@#< @ Y301@"J ߳@*@"Ԏo@#zoX@ x#L@#@-X@B@!5a@$@f@7uZ@"\5 @"ԿA@#9G~@Pz-@wZĤ@$)B]1@@;3;;@Ơ{@#\@46K7@F{;@12\@ `<#2@ $IX@Y}u@1[ |@EFb@!aВ@|2@19@ ~1@ @"ep@i J@*v@PE>N/@ `X@"hq@ @!GVW@o7聄@@Nֽb@\(f@)+@ L @#P@ 庺d@#y~HZ@!![:_6@ ]@K]6/@GH,@ x@k3/R@ 'J}!@#ftP@Ӑ1@!_>@^d֠@Qܨ@#JdW@H}AD@"w@xD5Z@P8B@aR@ 2G@qqd@Ҫ?-@ bfvP@ kxI@x{4l@! ް~@"7@ XYD@JL@"xD0@#@ɓ"?|@ۇ7@#W@l[4@ a[@:D>/@ 0@$:r*@!34<@#Dr@ YKi|@": b*@ 'H@ Ms@ a@#R)@YZ'Xn@ !ܿF@ Lq@"=)~.h@ 5s$@!eP@O^@^6Q@8d@!"f @ 8y:@!h=@@!X@!Vt=@".JD{@" @ }P$r@ h@+ @#.]@"@+~ @! t@#w@=N@Ax-@Š@#1,+!r@xED@#7#@!v @Ii]t@"?Tl@㉌&@#Ēy&@!% ~L1@!go @##jR@"aav@qю@ HZw@"db@S޾@#}&(@<_O@"5˟I\@Ը"4@._<@#B.2@ 0e@"Δ@ D&pr|@"Dpwn^@]Q@K-XN@. @#4%@#(Հ@#@&8`@"sP@"@"@#Sz@!!,X@"[@ gr@ λ@Ρ%ڋ@O@%@#|@#(t@#_?@"9$@ =d@#(`@"&M;@# n6@#勚:@ v=5@!:/'Ai.@#Bm@ W@# N&@"R@"ɒ,M@#%P@#fV=@#!&hA@=,~@S-@$(1 [@Yn@ 8@"p94ʀ@ Y?4X@#3!@7l[e@> @=@$C]@!JP@n1@ D9ӱ@fiFy@ gBVz@2ko@%k@]`Dv@S@#Udʱ$@!q@{$>@!Iɣ@{x@bPnҨ@l@!5d@mi @#s@"͸f@ Mr@  @#VɌ@V4@ +'J@!Pk@"dnD*(@QZO@B)@*P.@!RP@![.?@ )P@#cX@+@ Ӑ=@b9B@!w@Z @"w΋@/`j@!߸7b@Kp5@t/@!Y@!HrD@@#iu @ qo8@y*H@ QJ_@|@Ef@!m6@#9p@ PbS@l<0И@!-0v@(\@'&@M2H# @ 9FLn2@Th@qWCb|@"@vshs@ C@)N4}X@ikX@!wV@ H@5 @wWU@Ҽ&@$@*Û@"R<@ X@{e@!@{s@ʡ5 @U-A@N!2Oۯ@ րNv@ ~LZ@w@C@!z@! jh@!;0a@H@e@`@#$:@#8@"-@@ώ.yD@!`#@"lGBS@ K8i@9g@!7~@!qi]8@vg6@# 0@! j@$IE@j$ @#`.e@!dV@#o @"{@#u2@#\R@"Cthn@m]@"s0@"B@O6@"W.d@!-v@!^ *N@ UQ@@vf@"r }@" h@"Ÿ@;Ꙩ@"{^;&@!8n+@RY$Z|@f{{@#.!@ԈT2l@#m(:@4RSs@#hL@ ̈@ ﶐>@ W#(@#X*>@#}>n@鋆n^@# [S@!#\l@(kE@! s@#e?F2@"&\@ iw7zD@#JB@"商H@#Co|@!b(@!c-@#^4@# e:f@%*01@#oO@P?@W @ i2 @ X@!b2@!d@!@ /y+@!sM<@#!=t@!'l@!D @!o@"@@#gfBw@#Nb?[V@ #@#W3@!J҂M@  J@ [@ O2@! @"'3#@"+NK"@!9t(@#@!UE@!\J~A@ g `@!j@Y/<@ ky /@ӣ @&dL@#_.@!™NU@!#S@ 8@y]@瀎kg@ &@ Zߛ"@ M)>@""F@M&@$B@ K*@ '[@^LWh@"R@ g@@!ڰ<@ bQ@ ;o0@Iu@!ri.' @&]@@V@tX@Tg@'I@ aZ@ ;@ bQ@#=@&@A@ns,@!!1DI@L@"S@6@}@ "uУ:@ (Z``@!azh@As@ s"@ I:x@"?U.?@"̴@!4u@/ۨ@@"Hʬ}@,-hS@#@#$-*@!!@#4Dtg@#֗` t@ 4`dm@"ֳoX@![M@}FF@"Ѽ@n!@ =PD@"]qT@+|@"DO>@ w@ pF7@s@Bv0@ h~@!RU7@Xģ@ ZR@"LdDl@!_9@ G@"Ѣ槚@#R@#eE@#)F@"qO@"S@Zz6@{M@"n㚻@#\@o F@ (@!N߮x@"@#yu @ ^2@"#uq~j ?@??@ UUUUUX UUUUU\UUUUUdUUUUUgUUUUUz??UUUUUQ?UUUUUS???UUUUUP@@UUUUUR@@@ UUUUUP@ ?????@@@@@@@@@@@@@@@@@@@@@@@@@@@ mp mm $I$LmmI$I,I$I$mmmmϿI$I$mmI$I$пI$I%?I$I$?I$I$H?mm?I$I$l?mm?mm?@I$I$~@I$I@mm@ $I$4@ mm@ mX章+οZس_MbJ@`3?CV?章+?Zسj?MbJ;?`?3??CU.S]n,IKOMLSlKktPL^Z굧Һy( L?.S]n?,IKOM?LS?lKkt?PL?^Z굧?Һy( Lq5\?q5?@ 4 4粪@/+%/+%@\u P\u W@I$I$?w3ZWT$ @B@6j<B@6jA@@[M1UX *P?UX?v@.?/ Qf@ V V nQNgR@gR¿B@6jA?B@6j<@a _qfa _qf@ o&?VI*¿VI* ~Ti @ ~Ti @ i@a??2Z@ V.:(]$t@t.[t.[?ºy( @Ŵ $ @  V.: pd?$Idb@  ?m `?= /A@(ùlҼ@S婾aOEc?WQ]@n_u@ ϩfg@&81}c.H@NP!\uU?PeVN M,@ M,󊗾9?-l@{:V8{:V>݃@ BjUU= ϩfgmmD@S^?d0PI@1~t- :V<@ :V8KO+{O,1ؿ@ @@ lpup ~?up rJ[ZK<آ:O E (Cn E (Cn.:Q@ @D?ߤl@bx=~?D{ǟ@ P Z P Z@'up }?up r@c@eנ@?̯W Bjc<^? 1[Umf?uO]H?v.Zc7B?c7?XdÌWpR;@vup rvup y@B.H6?bB33G@cIv]@   ?Ia@x=t aEK2?)@;i;~c?ϫ?'iyԚ@ 8Lz@-^Ems?c?_W1 zo-@ zo-?`lz8@ƓNd|`r+F@o<6`@3FWB@6jA-/?B@6j<@ \+ \+@=]h@#ɿt.\ u)CydZ [Mُ'Z+@'Z+e)@ ܄ ܄Fkw?ڸB f֪@ f֪?&w( @Rz2? U&w( *@@ (0ӳU?TJ? t t[V;j@ K_ K_@A4{py-@ 6up u K:@L~@[#{?/?,T*O?*;s$ J5@9z1U *Z@UTQw(z̿I$IY?? TփK@F~Ѧ-IV^}j AlWԠC?WԠC?@N ?3a@PN@ :V;@נqoًc&@*w? `~65Q\?/xw a5+5N} 1@n{ @8NK_qeL jCV2̖0 @#HC?_aZH6?BlvqI99?SeZѳ?Hў FR@ FQ@͍A͏@ܨs??53M@Ck֚%Զ@.R%[ڿÿ1b*?1aв?@[lX?)){@ ΂/?N/\+?\+@훆?<@ẺyK?ʿ{vh*1?@ a5?N@ XuWff4@ k]v":U0 $!I ˯C@ |Y@ Գ3@ YV_| KiKa?%ł׶5/W?VGv?ֱ, F? … ?жh@2Z̥ I\+@\+?7$@H`?<4E?_ƿ_dDc?GY?T@ #L* h?yh @0J7Ո@(HխG(HխIsZ+ a5EV?zZ?a- 0@&M@ "Y@`W9Sں[? m@Sg1rN)X3@AS?xv^߿I00 ]lzlФpNH@ )Y:W&6ާ:V??:V9c)-?9bВl@ w[; jۡ-^@.IFv@{]bv@^/@ CX%(@< <'gc@_xgv@ ` `rZ!0Ǣ%O[ yZ&R'T Tۭσޥ@[An I@fCnp@n'ֈ1)`֊xh@[F=?$]{9@Lb[>+Mn?0%j? @[޻@urϽ5@N77@JA\j L\@=C@ 0?F8N.?i0?O7 *y^@48ȸ@ooMZ@ Fہ6L@^Pk_r@*k ̽ο??)s@aߋ?5w7@fB=q߿z R?148?yǺI]Jy^2 6t_T9;@QWijG{@I4_$ )9iS?6 S&?<+?XfU>?舆3b@Ff_@ ö@ ij OtV?rG @VQ@sa?i@5?ƉEnr/|* JJZ:K> Ϭfٔ.zԹ?2LP VA@Ń&@T0C@/L.vעj@/L ?\1Xof@ .@ v@ ʽ@ ($/_: >u &8`h" C@ 4{4fP!@^5 F=?W4@i[/?~= @&$@/9@~ήN~ήO JB:@& a$ QQ!򔏬?VNgzi ܺp?S ~n@zFg2?_IXRC/ZC#% -=@ n0~[@ ^ʯ@׽?pp1"la$wWV?׽ 4n 5w ]\@ 4@QIqS@ l1+@f*?xBG#?xW3mm#fZHۓ[5@ g6@ع.Dz {re@ %vpeJ vġ@ Q4X?%{kkF#=N&r@E#\@Ӹt@D td[?;Lzy3Z'*x@ INNC@ʹ`}#@BuBBuD:@ bg'`"y@ Q Q @BuB@;U?p?oV?-#p@tQ)SF?tQ)S9aQd ͬ`?c?{ù1{ =pc^?ت9:ȿ O 䪪?䪪?՘6 8 l:@~\@7#:q@ mZ mZ @@VgA??el?|@ @ f1bCBR?R?N}W eCŃ,e?,d;@ A? @j] 7@ G@ *&x:$jfp>@ʰ}?}e53? ]C)@gq@չR@dr>.%?E(DcR땿(1? X'R.6?<0Zׁ?KǏn/c@c@ {{3MH˿2UdӊD,?᮱x$@/]+/ 7?N@Wu%JkWB1k?kWB1_@6$;@l~??4V@Z@VgA%x@cx>n‡B̫UaӁH@!a @eu*J?Vpt&*?CNP#믜V ,@95P$Q@ff$ݕ@ e*? tK["%@M?>Kpޔ?,h% vt}yK@y= @ ݁{ݷإȇ,: ؿ .D@#{?qY*YqU]8NbT)&<@ٳuٳuu3t1m<ڪ]@Ԯݿj_?US@ug@ ,ӍȿQ֤Ćg!NZM@M? n&@ uUUUUV@:^C?F$?koҬ?|P?T$B@#^@@rRߎ߆TwF^T+@ k{\?@*?Z.&롵?V ;?z `z `6@ Ś7֨OWJ?A7O@ h8h P|!EQ bq;' $`@[?S&\@ G{@U@1i/{@K15ަFj@kq@1*_¿`ք \@ gW gW @Q¿F"?@3{zx&d<@,64r&Jo>dV@й"@up~c@v@|AS#E A@ ?4@ +_?˄{9X?3[>@Q/@.@X V@^zH4Զ@wpM:L@w׶>~?Vs{s@} m5 ?*<̢ fd@-W'e@o VsI@ VsI|6?1)C@ l 4I |S@ 2k@͝\+?a?s[ 7qr@ w#,?HhBʿ=@ sߵ vܡ$i n ?R{Ɛ}|G|Aعa#:?rAkiw! xή0К0К?I EKR@c>#@ n \U@=|njn%մ$prBkXMJ"@\BN]._rL?1df3X` =8Sv@ղZq ]"h / q@ Z E;}pWQ=llҴ;V?6i?&ds zά?lO Mzƙ:P?h߳V 0i.^w?z.t?^> p?Zkr@0oŁ@4ޫm%4!Id? ʳ?_?O?o#" 9#|XF@ a\?r+CD@Z6?2?MgsVx(#@?HLAq?-GR=RwX@]\} >/j@ 䗜=>?Jz@ P⬿GZW??Rͽ?,v@:@_S&f@[q>?*((@p >%$W\H{?"E@ X oOݛS#<>w,@\*X<@@4T@ >bܪ?HխDHխVp fE^@nT9;@x A.@ ϩfg?FF?_5!?)lڲhC?ڙHDk ˯g?9 ,Q? |;,?нy?UUUUUU?=\{?JŲ?ͫ{]<&Q?鏺>7RFNT?72ۙq>?/??NL6 @ʪݐؿ?B #4^+^ Y/`?t5хX@uϿ^_1axٌ$M?`8o0?wn3]B:[z??=_?mp?S8??? `?iȍ)?{Z[?k?〠♐OXn]}VP~&߿TK?4Vw?ƴPU? ?Ҫ?ۤ1)? 鿭9ӶLI?-n?lsg?ճ[xڭBȿѶHIە㸆?Zܿ=0ԙ?饇 Mgb?O]:UUUUUUG\x_?_>ieEV3̿DAa?@G ?< ?~x/v?Ҫ?wf?#w?q{,eE]?ء\?88㿤_mޡ"R8=m$U?8G e?89?9q?˿. 6v4! |dӲP x?.V]ÀRS#u?Y! Y ~J1 WЩ¿Mf"?iUm:˿[cs7#$п\2?"ǟӿE4a?%O9 9ـ????۬G?O?Pݟ?帻}؈P sf颵/8࿰_jy?i (?88㎿Ǒpޕ?DC?fƟ\D?Vuzoqqqqƿ88?UUUUUUXƟ%c+?ӭ웳 ?hK?u@RBUUUUUU?3UL?+!??Β36ـ88ސ`\󙺨o5l-%D߿&0?󙺨o5?l?-%D?&0q{ޞi,HBsaqOp昱֬aSڿ}/G~=?q{?ޞi?,H?Bsa?qOp?昱֬?aS?}/G~=?j/OPW\v?^ q? E?+kT?Bs? ;D?0=4?(&-fb!&h?$mz? T0yJL?%[7j>?6Z\?T2?}槜xbˊ̿ Îq?ٟ(byh7c礿(n? :8?4j;x?}aI9 ?l1G?^m[-P㽿??+ [ل?)I?2̂Y!88?i?̪ ?-L\dw?c =1?vNrr)N? 'V*d?D!5ۻTn?bvG?+ט?\t@ʿCKc?Zn;m? x\F@! ~N;?o@iԿ;GYc*j!?.*0|?㒿w93u?Oq?>??lkL^{"fKȿ\\сy?S!W? x`?n3w?^+ `?rJlIjXب]jdr|x,?d<4?@ 92?`C":V?Ȩp|@?0z [naY5.@?jbR)u-A?`y$?F\<"?|?LJF@&?7ZYUٿLwB\E?4?o?E͢kYb:?;f?E`?EAN:2g?0o7?4{?mv?ACx#xR,^1P!? pӨտȇ,>ߢ[T=ŕ?QE[fd31p?Q9=?ì7!ؼ&?r]=t0?gaG6?;$?Dȿ R?e(慠?ѣ056?gfѿP\?}X?Rп5 wm ?tܕ?dj zD?냈Q$?fd?Z/rٿI?0=˖ֿmɭ?٬|ο?[I0?4Q3?I?Wt ?쿰!?20 ?} _P?о02?9dX:? %r*\E?#p\?zLRP?ϽMA?IyvEؿL+*Tm>IĔ ?ӦBj?J)b5F?\?+5]_?ҏm[*?fV4K.{p?"'ݿ wK(¿R?쓞X:?cgb?0N?Qb?)#aR? g9?{۠?~K0l*2@oޚ_?;Ч?8t*l?I?BC4l?2Bl?v?.4?٤'D̿PKl| 14"?ҧUܿSK^j쩚s#?$?+P?D4ћ?S8?YaP`?J)L,'Bƿ$mz T0yJ? `b?`b~T?1r? 0?ݛ/T@B&E56@_|?3 ?}Zo'?3 ?mvL`?`ũ9.?ڑTO?3 j߷cҿֶEYHH I]ХYQ\?x$iT?=?/pտ 'V*?* }xR?J7?6c gSČ?ǩ{*&3vk{[:?J.n?@KEԅð6?$fn?USv $?Z'M?@?! INƿd?51U@f|ֿy{h_ :g@?^?~-sn?cǟӮScB&?%V1ƈrF? QlpTC匿z? ܿ>_Go܌eD?b?@-{CDPn?CG;K?~5/3bz?EM˿[5cҿ`?UbRvLj?n]/ʿR<h?2׽f=ؿ3d\?oALb?7b?WY??x?.W?.,|FAh`s%?g w xOKG?R?ׁ_?\_C?6q,QLm(\?ޙ׽LAd*?8700m?7ҏ=hi\Du:j?s(?mD?A2oar]=t0?劔%U?߫ Pzr? =_p?=!#h?<0Z? ,?ڿ#t?zex?ER7??Tp(?ȞǼŠLJW?ұ7T? ]X$?f,b@~SDR?%"Ŀ#4,u9Lr?0H `Zn;m̿ x^?hWu?ZD "?rr?SfLp{ z?B}p.?y~޿x4Q3?ԍt4? VP? ?Jx䷙?[˞ʊ+bQ|4I:?,>.0?BVmi?߃x ? ]?H'Ղ?eC ?!ռ$0,?~ =?ȁliE.?bH],)KA-fD糣R;]H^?6OŝR20ǟD?𪚜G6^6?n] ? rrܸ?J?`Q2aԿ܆PRk?E6? F Y?$m\&?ؤt%?=m$Dv|rJl-B?t?V?ZG̿ToڔiH?+?i6#!F6W'$H%sW::^k*R ?-Z^ƿ}r? (?tF?gzt?@9PB2&?̓m?cfxD߲=Yȱ?^tD?MJ?(6.:6{ƿM&ma٬t?"Pv?ߴr`p&nW?wރ{?M]YHI?W>bXſpv[Ŀfo2?JkyVJNJ?2ne? `Z ~Y߿?Z5?\ G: kRD?ሿE?vhҿ\uDk?zE>@h9,Ϳpxm?߫OI?֪11\?ƞΎ?D881\O2j?y Y~a2-?6zz?h#?@:RK$lGfw?Ӎz?tmhqZ?%W8?Ifs,?Yuƙhև|>n?ؿ^~M-lD?.IcT$ :;?u|HآUl?-6"?JŢ5&|?R?P?)5g?h4΍@ZK~79*?m壁2?mM00>U^:>cͿj$^5gVB?ޯNP ėo?*(MLT?Z%Dյ#¿ђ(ۿܭg{D?БØEGUQCz?ݎ8בMA@B _OT0=L B*? JhH?4F6QE0de?'ҰR`NrvA`;?Q?xGJYb.?ԌU?%?]?)hݘ?" {?0XC]y$"֖?z;7AA̦dp?ӹ3Pi?Bd? ;rd?މ_zЬ:?)A3?L홋QF?sFW2Ö?Mg?cwld?Z}( w?E?c?%d?Vʿ|a1?yɿ9<:?~]s:?^<=m$U? Sο}OԿ0>sjw1?(N9\g?\BlRP?n)l _j:CSſ"p?Ud?jV?3鲉?HC]8޲v?U$BG]?@Z]6uq~ tvtxtedgttriur[[IO<xpur[IM`&v겥xp  uq~uq~  uq~uq~uq~uq~uq~uq~uq~uq~uq~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc defghijklmnopqrstuvwxyz{|}~abcdefghijklmnopqrstuvwxyuq~  !"#$%&'()*+,-./0 123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc defghijklmnopqrstuvwxyz{|}~ abcdefghijklmnopqrstuvwxyuq~uq~j?UUUUUI?UUUUUI??UUUUUJ?ڪ??⪪?UUUUUL??ꪪ?UUUUUJ?I$I$?I$I$?mm?I$I$?mm?mm??I$I$?ԒI$I"?mm?$I$F?mm?ݶmj??$I$G?I$I$?mm?I$I"?mk?mm??$I$F?I$I$?mm?I$I!?mj?mm????UUUUU\?UUUUU\??UUUUU\?ꪪ?UUUUUR?UUUUUR??UUUUUR?ڪ??⪪?UUUUUQ??ꪪ?UUUUUO?UUUUU@?UUUUU@??UUUUU@?ꪪ?I$I$?I$I$?mm?I$I$?mm?mm??I$I$?ԒI$I"?mm?$I$F?mm?ݶmj??$I$G?I$I$?mm?I$I"?mk?mm??$I$F?I$I$?mm?I$I!?mj?mm?I$I$?I$I$?mm?I$I$?mm?mm??I$I$?ԒI$I?mm?$I$;?mm?ݶm]??$I$@?I$I$?mm?I$I?md?mm??$I$??I$I$?mm?I$I?mc?mm?&6si?Īf?ڹ~4*X??P/GQ? +h?&6s[?Īf?ڹ~4*X??P/GQ? +Z?!f9<]?Т1(?d9? 7@?%?9?뷱51?!f9<]?Т1(?d9? 7@?%?9?뷱51?ToH:?&0? a%?諎?4?&0? a%?諎?-?!f9<]?2El6?ԃ5T?2(S?ub?|es?XMo??!f9<]?2El6?ԃ5T?2(S?ub?|es?XMo?uq~j?UUUUUI?UUUUUI??UUUUUJ?ڪ??⪪?UUUUUL??ꪪ?UUUUUJ??I$I$?I$I$?mm?I$I$?mm?mm??I$I$?ԒI$I"?mm?$I$F?mm?ݶmj??$I$G?I$I$?mm?I$I"?mk?mm??$I$F?I$I$?mm?I$I!?mj?mm??????UUUUU\?UUUUU\??UUUUU\?ꪪ??UUUUUR?UUUUUR??UUUUUR?ڪ??⪪?UUUUUQ??ꪪ?UUUUUO??UUUUU@?UUUUU@??UUUUU@?ꪪ??I$I$?I$I$?mm?I$I$?mm?mm??I$I$?ԒI$I"?mm?$I$F?mm?ݶmj??$I$G?I$I$?mm?I$I"?mk?mm??$I$F?I$I$?mm?I$I!?mj?mm??I$I$?I$I$?mm?I$I$?mm?mm??I$I$?ԒI$I?mm?$I$;?mm?ݶm]??$I$@?I$I$?mm?I$I?md?mm??$I$??I$I$?mm?I$I?mc?mm??&6si?Īf?ToH:?&0? a%?諎?4?&6s[?Īf?ڹ~4*X?&0? a%?諎?-?!f9<]?2El6?ԃ5T?2(S?ub?|es?XMo??!f9<]?2El6?ԃ5T?2(S?ub?|es?XMo??ڹ~4*X??P/GQ? +h???P/GQ? +Z??!f9<]?Т1(?d9? 7@?%?9?뷱51??!f9<]?Т1(?d9? 7@?%?9?뷱51?uq~  uq~uq~uq~uq~uq~uq~uq~uq~uq~uq~ Y|Y;YY;\**\6]6| ] 6QQQQQbbb@~M[[  =#=(DD@V@lDD(l(>>bb>tt(EvvE:jjF%F___Y5 f99v 9BBWv]]qvqq{Y00mmY][YmZ[ J!"""C;;I#CIux#uwYY!hU;hGIGLKJJ"JJJdZZ<nQMZZQUUU{{{{QIB>>tM2Stb-hh-----UUl~U|: hh220Q))) g))R Y  n o   Q2 Q22Y.22 i>U>>> iiiiii ::NNNN%%AAMAAA 0HAAN 0NN 6HHHHFooo F##### W#E  Y   RRRRR   t     -UUU 10000$-+ +!!DDDDDD!! = 1FF KFFF = d 3 ^ ''''''E<G E77 E  @UU FU777 g F [27 eGGGGG2&&JJJJJ&&&;;;;;99999xt4444       4 csm***SSSS lR""**Z$$$$Z666666EEEEQ$5$OP7O8887""2222++F+22822 2  F'+%V@88D%%%jj70#8@1#1kkkZ41107675Y656<44113>X=ED.?>99:2DEF2 FGEII=GGHQHM5-,-,_ T``H_TGGW9WA AttttwAgtgsggG((-WWHSHSmWWc  m;;<ll<=?>fW+Z+Z*Z<  ff@AA\BC{{CIXI{X{:XK[[:[// <<KLM&E^^NN=N^^ssPt<*:::t44^L^^.._.3w_iiPwzCPzkV|z|}C3}CC Cs r\,\ X, =P- Q ,RRRSX 11sV|ttmkm}m,}E}00l\l\XT\IIlJIU:(V:BBJZJRaRZ$a,D   G8$ "gMLeeee ccccc %%KKK 11 /1KK r11ccc88H~ B P|Cc  ;3  ``` NN `** `6**8 88G8G6**NNN@gtihTTSTiiTTiSSSSSSssseT#^^xxxxxHH  HHH^^^::::::^ ,ZZZ D .l       S S     WWWWWW}W     ]3U3U333CCCCCIBPBBBB7+++++ ETTTTTT? q q @@@@@((( h(&&_888888/D8D1// 1111 ( O O c    >Z RA aAAAA ;%bb''%%%%%LLL5 7LLKKKK@KK Mq/[1//n[3[[;3_ $^ ^ u    uu%)uu # %%%%%%2222x=     m     o=***aa6776---x-'O`1``17}}C bbCe =O  'p pffVVVVcc^hh''^]^^ ]]]]]'D 4 9HHHHH H HG2  oo2 Booooo} J  *cccc       =c  9=99999egM$L$$QQQffccc3Q$}l~&l_ _ B((-W-LXXLL))X$Zn$u ) y & .yktnnZZa[@@z[\]@6<<";;'<NNt3,,Nfp==''''6``N`3N553K33K"Koooz^d_dd)0d_404!ss=ffaabfQQQcBc ~BB}p|p=p{zzY$33u~u3^~g^oYyYyxwx4Uvu.~~s0{//4ng 6vDD5C555~ {{  4 4S  {{ S44d+BMfmx  .&.]ts]srrxxrqrapaabMqqdqv9v;997F,dd7oonm,|,|,llklkjmk&&n?h5|,Fh??>WW||55+5++?r[[[X55P!OOOOPzPJ###!&>6v6&8NNN   8ehhrhr II I*nnnnHH\*??L??Lm?  X  d  iwvT CTT iTTiiiii?HHHHH <HZ3 L333  L^^<9 I 'cocccc|cOo  x  8b, qqqqqqqiRRR <<RRO<<^^K>>wwVUUe/e/zz4/[S[4   DDDD"""RyRQOQQ`K$M)MMKOOhkUGG"G$I$C!8+88"E!!C.pp##$$%eE"e''(TPTOy/Pypp?eeuwzdzz*w*+),)-F7))F7R!R9R9F/auxxTFTjUVVvjG*##E77j FLL@@}AE/EnnnmAAjiihg:%%gf ee Lqq9  7A.A@/0 d 0uq~  |||YYY**;;\\\  \6]||] Q6Q[bbb[11VDM~[Q~  :==(DDD@l@(l(lbb't>(#(vEvEE=j:j%F_Y__5 Yff f9Y9]]WWpv9W{qqjY0m0]Y Y[mmJJ![";#';CJI#ICIGxuu#CZww!Y!;hhGKKJJJJ"%J%dZinnMQQ<QUj{U{{{{>ttMMSM2-*'* NlWWC|Cl~~~C| f:f:N 00>> bbQa jR  g gg  X cc:cfddYXXY `X o o c  nee Q i i Q `AAeAA.. .e   +  +d 88U>>/ /  iN::iij4"G4"ii""G N N%   HM, 0 0 H 6 6 6   ElEF a,al m     } W F }E b W W p b b p b   k k oo  j i eYYY m#   $ - 2 - 2 X X X X$-- -   ++   j/// 1 = K @ K K 3 3 N j = N N v v V v v N 3 V V f ^ f kEE<<< E \ \ E  \ \ 1 @ 2 ] 2 F ] e g { e F g}}#t} { { { [ [ [T e``T2`aSS2 rxxss;{{{t;s n c t m t t c~~~~mmR w< w wjQ w l l<ffvfZQZQuQ$uvNNNPP88OO87"""aA22+2+88+2  hFF%FV@F%j00Z88@@kk45176615Y66=<5544112>=.DDD>?3D992222E 9FGFFIEE==VGQHH,M,  Y Y y-,,L u uL`  T_WHWG9T9A A tPxAwggttgsG((-W.HHWmSm9c  ml:;l;<<l=>fW++ZZ** < /f?A\\\{ABBBCCIIXX{:XXJK[[[//<<L&EEEMN=X^sLLt<:<<*:t4^P^..33_w3wi_ )i {wCzwPm|||CCC}}LC}C  s\r\^, = O -P,rQQ R11 rttt|kmm0},}}ll}0ll\X\SI\:iTUUUB:BJJJZZZ,aM,,mVDDD" G ! !G $g$gg 5 e !  % % % & & & / / / 88 AHu Au@ PK|~~~t|KCddtrrrs$ccdds  R3 G ,, R3,,5$ cr$rt  gg  U twJJ &q JwJ6%%q86UU@@""g  tiII&IISS {   eee )SHH>>zzz>.&..##gg++Pff hhi5  , > > , D D , Dl k\\ S\\  z S z _ _  }}} )))BB] (]] JUB J?P7I?I7  I U(  y y   P qP? _ _ q Z Z ~ T    k O T T h ~ ~ r r  _ SS_aEknFnDD      | | h h Oc cc r ^llr ?& . . . >&& R ?W aWO ? G ; a aO ;Obb4^^^4 4'yy00'0VVCKVV50qh 75hh Ph@ M M 7 7 Mqyy;;1nFFF11339;99  dy  __ $x #x^_ ^   @vwAA77) ))Tw # T jTyj yRR66s j   x==x    # $ $[z[[x x yzzmm pxoouo u*)aaa6777---''`O`1}}7}=` Cbb=p O' pff((V p  : : hh ^ U  DsD   9 9GGGB 4M 4 9  U * * *Mk  n n 4 BB772 2 K Kv B B AH H}}  }  J    J J k =-=  p --- ! 5LLL$$$jcfclQQll&ly&&  __ BBqVVL-WLLq)$XYY$))un  ))y ~ ytt..na[Z[n@@@\zz<KK;"'';NNky,N,3ppD6o`N`3355o3"oor00d^_drd))_4)!!!sss`aQfbcBc ~B~}}Qpp|{{{$^Y$$3uN~~3^~gggo^yzyxxwowwvut~ss00{/s44oo/WW voo56DD5C{5 ~ ~5C d 4S  {{{ (44d++BMMMmxm  .]&..&tt]srxrxrqpobaafqqqq9vv99>9d,,77dbaonn,,|,mlkkjmk&mn+5h|,FFh?WW|W???*r[[vv55PP!OPPO#zz8J!O!&!;6v&68&8NN 88PPeehBBhrr   IIn*pp!!?\\?\**LLq *q zd XX ^ ^Xzz d% d%  z p p[  woww %%11nn C C Covv   " " Z "Z?[ Z " < <   s s  L L  ' '   ```9 I x x  ' mOOO||, |  x 8 8i  8 MM  Vq]bbi{{{ I I  ( (99 OOR<^>>wVUeUe/zz4//4S[SSO   DOODR]Vy"RQyKRKMK`I$MMMOkkU"GG)+$$!!+8"8"pC'$.'.$E%&Eee&''zPyP?e?ppzdz)(w*+*g/,,),.-F-)7R/!/R/R99FTauxuxXxUVGj7 Ejj7 @L}%}/EEn?nnAAmjiihhA%% ggfe qL99  77A/@A00ed uq~;*;*\]]bMMM1H1@~~~[6 ::E##VV@@>>lb>>vv#B=j=j%F%%55FF5_  ff9YY]B]IWWvvpppjpqjww0Y0]]]Y mZZ[CCC[!JJ';'I;IIxIxG#x#CZwU!!Z;;hh!uLuGLLLyy"JJJddd;<<<nZYjII{Q{{IB>222MSSWSb'''** * Nl-WCC~Wl~|||  f f::NNN  00>>>>bbb aQjQ j b  gRg  c  ccfdXddY ` X o o c o Q  n nee Q ` `A `YAe. i .e  +  +ee +  +88U8nn> ///NN :j:jii4N""444GG G  % H H H  M, 0 H 6 6 0   EllllaaaaF mmmm   } } } } WFE p W p po p b  b kkk k Yoojj ieYo##  - 2 X - 1 X -$$$--  ++    j/// 1 @ K = K 3 N j = j j v d v V N V f V f f f 3 k Ek<aa E`` E \ ] @ @ ] ] 2 F ] \ F e} g g}#}# { g { [2T [T eT`T<S2 r;xmmxx;{{{t;;ts m m m m n c t t t~~sm<< wRj wj l l<<fvfZQZQuuu 5vv`NONO7P`P``877"aa"""AA882'''h 'FDDDD8%AA7jj0ZZ###HHHkZ41105]Y]]]7=XXXYY<<<____2>2>..??.3?DE29IIFVQQVVQ\\\VM,MM55 Y- y Y- y-\_`LL u u uL `T__HTWW9 (G(AG(( PwPxwwss((G...HHSSS.mc cc:l=>+-Z+Z */f?@@\{\J:J::[ <<LME&&&EO==^ssPtst<:44--4^PP.^HHL3C__i{{{ !PPwzPVVkkz3L}C \s,\XXXO P-rr--  XXlX1VstskVVV00RRE1lllS\Tiii:II:((JiEEERaZaa,VD D !@"G""$$yggyyy 5 5 !!  % % % % / &r /    8 8tH A Auu@~ PK|u~t|C|ttrsscs csdd ; G G G 3 33, >5,5$$$rrrtt   UU ww rww & JqqJ6qq%86Ug@ !""""g iI& ISSS    e.e  ) )SH )zz>>##>..&&&#gggg++ff++fPf   hhhii5  ,5 , D .  D\c k\   S z z z _ z  }} ]))((](UJJBBBJJ? ?P7I  I U(    y    Y 77P _ q Z S Z q T T Z Z   k k T ~ h ~ ~ r rS |   _aaEkFDnn__D   | h O | | Oc krr rW rll& .& >& ? R ?W ?WW^ a a R G ;OOO4'4b ^4 'y0bVCVC50 755hK Ph 7 P@ Mqqqy;1Fk1339;99 dyy _^x_x #xx    w MvvvvAA7A yA TT)www^T  j)yyyRGR66jjs6s   xu=x  # $ [ $[z [ x  zzymy   o=uo p*ux)e))a6616xO11}=}=`  Cebb    O  ((  : : :  * :  hh  ^^ U U U  9ssD D RRGB 4M 4 9 UMMk *Mn  nnn B B72K2  KK BuK B AH } } J ! J  kkk==ppVp -- !  5LMlQj(jj3}j}}$&& M__yqqq-(-WqL$Y$uuuuyy~~~yykkk...naaa@\]zz6666<<RN;;tt,,''3c3==RRR'6'6oN`55N!""KKorr]d^r00))``44!4=s=ffbQBiiii~pp=|YY$$usu3u~~go^4U4UUvu~~.00~Ussnnn/n/WWWvvooD'eee~~v{=={dd S(((++(S  d  egggg+MBBfmmx  &]&]rrrqpabbbbbbffvd;;;FFd77bm,,,&&kkkm??h|h>?>||5|W5++?r5rrvvX[5POBB##P8zzJ!J>66&JB NP ehB rrK nnIp!!!\?\?*q*LLm qq q Xddd ^ ^Xz  d% z p pp p[ wwovoo%1111nnn Cvo v C  " "Z[[[Z      < s  <  s s sK  L L '    ``<9 ' I x     n O| O, |   x 8 8  M   VV]bb] ii{ I{ ( ({ ( 9 (  ROO O^^K>>wwXwXVuz4zSS4[[    hhhD]V||||yQRKKKQK``))OhkkUGUU)$`I++8!Eppp.'.Ee%"e&(zPTTTOOOyPy???udddppww))aagg\+\\\-F!F!!)/RLggaUTFTTjXxXXXvGGG###*E@@77F  /q//:::}@}**}A:%  f___ q9????A7.A@/@@_duq~uq~juq~juq~juq~juq~juq~juq~uq~uq~uq~uq~uq~uq~uq~uq~uq~xsrcom.femlab.xmesh.Solution[ʏQqSxpwuq~R>lambdarr  !"#$%&'()*+,-./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@PAPBPCPDPEPFPGPHPIPJPKPLPMPNPOPPPQPRPSPTPUPVPWPXPYPZP[P\P]P^P_P`PaPbPcPdPePfPgPhPiPjPkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzP{P|P}P~PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQ Q Q Q Q QQQQQQQQQQQQQQQQQQQ Q!Q"Q#Q$Q%Q&Q'Q(Q)Q*Q+Q,Q-Q.Q/Q0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q:Q;QQ?Q@QAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQVQWQXQYQZQ[Q\Q]Q^Q_Q`QaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQ{Q|Q}Q~QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRR R R R R RRRRRRRRRRRRRRRRRRR R!R"R#R$R%R&R'R(R)R*R+R,R-R.R/R0R1R2R3R4R5R6R7R8R9R:R;RR?R@RARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVRWRXRYRZR[R\R]R^R_R`RaRbRcRdReRfRgRhRiRjRkRlRmRnRoRpRqRrRsRtRuRvRwRxRyRzR{R|R}R~RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSS S S S S SSSSSSSSSSSSSSSSSSS S!S"S#S$S%S&S'S(S)S*S+S,S-S.S/S0S1S2S3S4S5S6S7S8S9S:S;SS?S@SASBSCSDSESFSGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS[S\S]S^S_S`SaSbScSdSeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzS{S|S}S~SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTT T T T T TTTTTTTTTTTTTTTTTTT T!T"T#T$T%T&T'T(T)T*T+T,T-T.T/T0T1T2T3T4T5T6T7T8T9T:T;TT?T@TATBTCTDTETFTGTHTITJTKTLTMTNTOTPTQTRTSTTTUTVTWTXTYTZT[T\T]T^T_T`TaTbTcTdTeTfTgThTiTjTkTlTmTnToTpTqTrTsTtTuTvTwTxTyTzT{T|T}T~TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUU U U U U UUUUUUUUUUUUUUUUUUU U!U"U#U$U%U&U'U(U)U*U+U,U-U.U/U0U1U2U3U4U5U6U7U8U9U:U;UU?U@UAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUUUVUWUXUYUZU[U\U]U^U_U`UaUbUcUdUeUfUgUhUiUjUkUlUmUnUoUpUqUrUsUtUuUvUwUxUyUzU{U|U}U~UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVV V V V V VVVVVVVVVVVVVVVVVVV V!V"V#V$V%V&V'V(V)V*V+V,V-V.V/V0V1V2V3V4V5V6V7V8V9V:V;VV?V@VAVBVCVDVEVFVGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV[V\V]V^V_V`VaVbVcVdVeVfVgVhViVjVkVlVmVnVoVpVqVrVsVtVuVvVwVxVyVzV{V|V}V~VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWW W W W W WWWWWWWWWWWWWWWWWWW W!W"W#W$W%W&W'W(W)W*W+W,W-W.W/W0W1W2W3W4W5W6W7W8W9W:W;WW?W@WAWBWCWDWEWFWGWHWIWJWKWLWMWNWOWPWQWRWSWTWUWVWWWXWYWZW[W\W]W^W_W`WaWbWcWdWeWfWgWhWiWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzW{W|W}W~WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXX X X X X XXXXXXXXXXXXXXXXXXX X!X"X#X$X%X&X'X(X)X*X+X,X-X.X/X0X1X2X3X4X5X6X7X8X9X:X;XX?X@XAXBXCXDXEXFXGXHXIXJXKXLXMXNXOXPXQXRXSXTXUXVXWXXXYXZX[X\X]X^X_X`XaXbXcXdXeXfXgXhXiXjXkXlXmXnXoXpXqXrXsXtXuXvXwXxXyXzX{X|X}X~XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYY Y Y Y Y YYYYYYYYYYYYYYYYYYY Y!Y"Y#Y$Y%Y&Y'Y(Y)Y*Y+Y,Y-Y.Y/Y0Y1Y2Y3Y4Y5Y6Y7Y8Y9Y:Y;YY?Y@YAYBYCYDYEYFYGYHYIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY[Y\Y]Y^Y_Y`YaYbYcYdYeYfYgYhYiYjYkYlYmYnYoYpYqYrYsYtYuYvYwYxYyYzY{Y|Y}Y~YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZ Z Z Z Z ZZZZZZZZZZZZZZZZZZZ Z!Z"Z#Z$Z%Z&Z'Z(Z)Z*Z+Z,Z-Z.Z/Z0Z1Z2Z3Z4Z5Z6Z7Z8Z9Z:Z;ZZ?Z@ZAZBZCZDZEZFZGZHZIZJZKZLZMZNZOZPZQZRZSZTZUZVZWZXZYZZZ[Z\Z]Z^Z_Z`ZaZbZcZdZeZfZgZhZiZjZkZlZmZnZoZpZqZrZsZtZuZvZwZxZyZzZ{Z|Z}Z~ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[[[[[ [ [ [ [ [[[[[[[[[[[[[[[[[[[ [!["[#[$[%[&['[([)[*[+[,[-[.[/[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@pApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp[p\p]p^p_p`papbpcpdpepfpgphpipjpkplpmpnpopppqprpsptpupvpwpxpypzp{p|p}p~ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppqqqqqqqqq q q q q qqqqqqqqqqqqqqqqqqq q!q"q#q$q%q&q'q(q)q*q+q,q-q.q/q0q1q2q3q4q5q6q7q8q9q:q;qq?q@qAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq[q\q]q^q_q`qaqbqcqdqeqfqgqhqiqjqkqlqmqnqoqpqqqrqsqtquqvqwqxqyqzq{q|q}q~qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrrrrrrrrr r r r r rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;rr?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrruq~R!BlArWG=A>lC]VwW Nw?M)?h "LE=JҌL=D Ḻ<)Ǩ5.>Z>J?^\K?9n /Oj>tj>^9%, >`#s> JqUm?gnׇp?gX3b@?Pp<[Cim&i`(<(mEO]w> Lm#ռ޼uiW-a<:gO<0gl:*ӌ_VhPU;!޸N-v[!E}ľ _:ž7qľ2t¾'KyݻG-v %*' 7}>cXû>Cnk>C̩>p/>Њf>C>Z1sNu>0'~[θ>uAޖP>f6+>,@XU>SFJ>Ojt|?>">eXk>Q6Q?nA 6O+mWN<>zQ>V|>i4J(3d?ru\ v׾ET V?<^O?QOqN_5?P|d?FUiBU?|+ѿCB.818Ny[C.q6jqPctſ ٿ9Sq!HطϷRt<1 +ֿIkV:?X$Js߁-|>л?ձUsa=5;F)Ȩs<ATCq*^yљþ,CՖľ|=ž#KwþVIls dϵ:ڟwʀj_>ȿ>g>_m&FO>!Y7>d/>I; >n<> c>i7>79|>(R[*+>}-qK>$'>YNsѲ>e R >TZy>P->xsT>]_|$C$7Z]ޗ>$C->hw\ȀhB*vo>D,oϾ7{|Aj}m5ڷT30Ef$?Ў FZ?^čH,>=ZB?No?)ʁɕ %0ҟ>{&տ@WR/F#bJ%T.e9`Ϧ࿮ (ᒓG"e@Bز7QDi˿Q|޿j\|鿫:EB k"鿑4ƿ\Ć?衒?v?-&?-??"]q.?._}t?r>?1pٲ?s sg?J1R {?qɷ ?żn?RZKPq#?G9$?/imӉY+^ċ<^ͫD<Q?KQG<,Z< 1=V'=0=Ex cuLf(_y+ȅ{ؽʼn=dh3E—$lx]=+p5>Pu9LD>:Q>\>U]>Nd> i>m9`=\V6'f=-Xa={g#=8P= "d'>~:d>TV&>ևhg&=MJ=<̖fk= Zvh >pe>hYǩ>CB+a, =* sp:=IկHg=zGߧ=ܼy==^wz=xhU=Fyt8=t$حqmL1 ך؄-vHo ahA>iMnD4>5o)=>!0O> (X_^>q_@@d>\ъh>C,f>AV>:i8]\WVSy勾pzgѶ`*2k\׿:Fľ@/7Ⱦ>ʾmkw˾INʾ@0Ⱦ? Lľֿ̮ؾmCʹ4 vn9)qwiыc7yJSWjW>D'k7g>Q ۞F>_ğ?LĆ$?:?TXKtN?v<)[??ÿ1?9D?U?~$[?USmC4>>a?b4$?A"=:?qCN?K.6[?Yب,1?SfnD?)&U?tyJ[?OŮ=O܇MbοJQ.Ngȧd!.d =,3Y?0};MٿBP-W#o6B;YM1cο^, +Q7# Lld?3h Թ^ .Lٿ`f1RM/)nP/;&>'k!l?>ždջJ>;+ W>`a>@6g>x)Vj>{#cV=bec=֝?c=*YW=tuyZ=5M=C_=ۧ:@>o>/>g\>.2\p4=!>뱼]>V# &v8>C\1E> &LW>ې|a>I0]f>m~4 gj>l]gi>mb>>g&>v l9E/tCN bۆ}P( △n2lr¾X'#Oƾn?ɾa˾d˾c"?ɾ^Vƾ¾\ƾj`D@.CzlbRo7hlD")>Ⱥ{Dc>WEj>$>l4W?~X?'*?}+5@?^ R? !iv\?3* ?z`M5?D5I?aX? )%V?W.>Pu?s*?6K*? &l@?ոdzR?^!&f\?̪#Z55?$ĵI?}~θX?lp^V?aCqƿlͻ<߿ˤ6̠Z H)pX'vwŋ# 'F<`@D;D1D<'>fһ;2>s 8>RD@>֙sH>iR>a7Z>͡~c>0>rm>o_r>dr>VJȑi> =u=AN9 =GU)>8XRm>ƒ`^>G39̕93 t9BSm9I4o#&\Bwd]+9FUxP9צlЫgLIdmbb9 b~b:=<=+x&> [ #m>Ą>Qͱ<jm/f4ܼmޤ>}Z>dpB۵!>k8O-0>׏=>! rZD>iFrG>|P>GI}[>S@ud>ɜDl>Tfr> s>*h>EnϏ?ow?Hq *?LRC?NpZ?5Hr?R1؆ ?u6?*P?W|f?^?*rF5?i?L*?}JB?bKZ?Pg r?Nw6?==P?Rf?B(º?rv? \e?bz?0G?Q6w?{=X @&Qnxn@HX?aԉ?W ? @ ?Ÿi?1o@Tt@v@ٳg?gf?*M|?@w` ?ܘ?N] @ =Hm@`?/`?Tꎲ?G ?(đc?:q"l?Ƹun@ՠ@-@yҢ54jQ>|)4NE.>eK/5>]V@;>-{嵍C>J*M>/YU>%m `>ScIh>p>,ێVs>Vfxp>_ըt[>nj Md=,Gw=nIms>f_wD>/S >&ɮ>>ϻg,)9$NT9oz׿9:N#}9?hSFpaʜRy6]z;cjxyw9~H>lgVkV9*/Xx|BQOUe=\ D=+$ =O7(J)F>sLAz>%s> @&z`noUjhˆ9xܛY-A>+L>U`>&>q*Gu6>/IA>ڻRE>J>v0@}ێU>(Oa>22 RTh>:~p>wL9s>up> }FZ>$뇬>R΄ ?ze?MOy1?,}.H?v`a?) BBpx?Vf{m%?[T3>T=?r.T?58m?}?>~ٗ ?\ǼU ?Րy{1?6ݸH?E/\a?eEix?-tG=?9\VT?zwm?v7rx?l=p?G?$|J|?%#?.G?<@(e?lh @KT-L@L.??96?>E̓?c?Xȼ@_6u@ `G@W[n?|%3?硵ev?Q2s?"{?"' {@>Eo @ (K@O3eu/?b?!Nm1?2Y׋??,π?༒@H,v@JϏ}G@"(EDsԆ+<.J]=Yɨ=C8 .eq<7A>'}/7B>/9S>>[Lq>`HS"sK_9\nF;d aDtW޾$wQ8 {(p ,<K<9>f~#q+o?w$hfKRy熽/IEQxƽ3'ݽg rb]>ct CN/l61[Z3!2Nǿ9QG Y>Fů7X>R,ԣ>>.>Z>ӴলzBl^=3Bߗ*-?'W%D)fۼ5EdqX@"SKie ˇ;Ҿ6E`-MĔ<Ԅ̚7@gTC@Y?y,?ח,;?qu?)9N?6Kטi*u?gӮz?sҒ~?wwB?l\P>̠tA>\A>b#>?x^t.>d[:>z|fb>PZY|u>b9o>{lj>Rt> }>3lϱ>׵$>3ހ>B>sT>N4>A[3> UW>>i>Ƨ>+'?ΰZcv Tľ 7ž$R'Fľ$1`B¾a)'pjVe뿫|I>?UBI`ܿ u~ʳV(h}m%T@(d桮'Y0RT3yӺ\T=F NElB̈́Pػϴi|d+@2Rch/[lډ f0:>kCzq̓p|!#Y >Lb8==.8 BJ])t+*R$>,Մӿ*S t(v9 Tw#ľIyؾZcJ jxI0T>Xj߹CJr.|88r)EY՘JSS)g`71.=<SWq0S*>tc{>P?2~?:;ӎP? ǜ?Bj5*?*B&>f3Y?-?$qz?GiE?.Bq?6ȼk?\{Fb? %yIB¢㿞WncȨˇ<7Q%þ4{'#z0\9疪<$ŦeV澀I 68JMal}RNr8I4L~>C-6>V*,<rf=VS6=RoT=Q>xd2=-z`B= =ZG>wf?a?Z6ג?ytM^t?SJ?(}8.N )Ta!? o/?+?c2 ?tWx?yAT>?w@17">y.>f3 &>-ɩ(3>J[p>b/EXʃ>t/~>9J>ٷ((>AE>_N>؋hsE> ɦLĿ>a f>('m>2>MTXR>)f¾rW@ľ֨REľ[zl¾'g: ^e߿7gDGwGnٿDd_ֿgDnz+q"25 :~VfECZJ9Y݉hĿf&N8􏌌<?Q7lΉ3m]x}qD疍 WѓO0%?6~ICasd̦'舽_P.H\߽ϙAH>#êX>G&>ws?S(t U>rCv%DP4n wKD}Z趿֋п&9Ѵ]I>QM6>_N.?gL?dbݑ?;<H$j?):S1>@#C?c#?`?z?bcEw?:N_?\;_> ׽*>wu922>B>!EO>|8m>_!+>4qRGH>`7tב>׻7hn,_#WnL5l3E鿶 sBKiVۿmd".$i ?'&[wN'WWΜiM^˟C63ξE\ 0j!.fW]]Qvx53N"п||; CVĸyajKP̾U7┢㾢+ ]4UQJy1+{G@bٚ_«>nz{?~[I?6eZɣ?B)?k(?'d>Cw;?xUN`?{?P?m? r?i 搗iZV^O8W UbUfy#<Z}6.\KD9_> ] >q>;.`>:շ+ 7d+fcsEYbW*9BVwn¿%,$ԿmB1, -Z^>#>[l)>srR"3!< > 8(>tJ>$C>Ծ>+lNg,>D\P">Ԯ@V>VZ>|r>N~L0q>LGm>t㛛>5>i^{>w{,!ƴ>~5a|>\J><>i8>\> '&>v ĭ¾+Eľ  ľ69^þCͿeC׿ap忁C"翵4HsnKR?ΌOKE߿hTҫؿZMGzs;t)q !S>_$ H[a-ow&:(>L<c49č#_xݱxV aaQk & ĮҊ+,G> z?7$ӽUCx`Nzjf#QmpxD>;ÿޠfɿƇC.ؿ=Ҕݿx*S8 tΪ>e咿ʠ䉿 X>71r>C ;=lu;ݦM$5 jlXzV5T3Fx9&Iu{ =;mO使a@q9>lu>Qzd>HQI>f>f??ǟ?P?ho q?3|c?$5?h h?8)?3B?W_>]5)>C3F?-P?E"%h?TB6r?/>[?MP$?{hP;?T,:?UH?H?g"?L늱S?-IdԿиEN߿q׸ vL5( "E1 y~t+U>kΖDa!B_OQlJ v3#dvϿ|ے O #>h <;hr~ªpswթ|~otV>}q*`2"'8?›=0?˻Պ?GN4?5_ ?@:"v?q'0>= ?>W#>c>N$%Ҁ>e4S/z׿W'E+*.Gx|"տުW5oH(7›bʃ߀t78U\pV}x? STͿҞ24w%D\\7H=LXI\5h>v Z8>`z?y|{ ?/5U?)j? \%n!?%At>" N?%GsB4j?: Г?\`0?-/e[?/S?Yز+h>ѿګM>fPoaJ< ; x<=e?=ݲ>ÎK=Jʹ; ,>鉵o4>:ß{ʾ\ȮR/˾R-xɾĂlP#'-qeUH>זP)?3,+?Cj:9?Qʹd>J`<Je7ܓ>fΙ.>Nq?7Ddm?^]*W,=!7G=|Tk5=e"=7}+!>E6E>޶>:6>4q>mgq?+ "=.J)<;< .FP$<|%(1x<.w::Y-9<X`<rh台<ΝL<û̓s=귅OͿVR|6oO*?+.+EHP?u5?,bdkL!?s`G?gT}1򿎱n7z x-+փz G=>t6:C5>03dC[>U-g>TE`j>Fpfti>_\>R9F]D6JExsϒS[X4Pь,=coyǂJHIE=nhǾqwʾB˾˷˾ ʾž"0RRuS`MߦF&O{.]̮E4G꿋h뇤޿i&A+(qJ K"&Un}>w${8>Z9N>\8L8[T>G}~]LGpY岀&s##!dH>{$9_>wӈxe>K+e>k4j>0pi>!Ol/?ΨMG?SY !\?ah6g?m!jk-ɿ5I^L@?7w"w?v &Ԑz>|>Qѿ?t-"I]?òuS+?6Sj=:~=e>TBZ}o=u`iS=*O܉d=-GAo=%X=a ~=v),Y= ]^>n>F f>)A?oj)޿KF¿V Zy{s w?p1a܁U?BdUA?FV~l?*aow?$џ:|̩x(:>@ VXwv2`?球>gk=()=׸ϮS=b-~ );>& W=mg)=h(>hmK>!Խ>ޛ<>KuD,< 25;!fJX>Ce>-j>$`> (OUu$>TwvCjQ&'}L%ۄLl(+rc@I*+ƾ>SȾ|žX(a¾*Z>-dnwx bQ=q׿0 kV&XHh!+!>\}"9>?cNW>Ua^#aq6<FP#_kA $!><]T`>tk"e> c>\5i>m6?syR?`H/g?_{r?3lS8¿ʝ~?)e? v0>Ȩq!>n^=tQA=l= 8zO;=l*=Ԃ- r=*FBR>+ku>Y,,dM>F{'?eʤ3~տi}]b??b.s#[?SK+E?m[޿=wY=28<ܿzq8s+^ ?:WYl<#y8+ =w="x>r}=#R_=z8>/=fUܠ<րz<6m׮DS'<(8b<>|#EE->P`9>cVA>H .r`>܀8)/[¾ɄԂ˾&.4F˾DI9ɾ{͒yM4Js&"+࿝lDt\]@*#AJPF>#ڐ{Q@?GL ,?~L9X?_nj?&d4Gxl?IB^ǧgܿ*Lfd]m?E& ?x?%?{x%?gE>N♇7|=pg>CF"?( я˿fكK#h;vh?H;U{?^>2w_+y~u_#Tq>dOغ>}=ލI=iOq4=RnO%>L-Сi= I=<N=e[QA=H,E>E8h>DJ( >?Z0?Aͣ=EȲ<?K?KLO?@?V:?~(`+?~"N%?;ulK? 3O?:bZ'?]M@wV pf[/Rv 2m%7RM׿ Āܛ=I"r{lpQ'=0 ,y |;% v tcJ>G0#*T>Br.b>pTe>d޿i>j d>&FHJ>  dc'zaQBt)YkΦ`b}zž;O,Ⱦ ZǾOW:]hA>*Yy OZ>( s W!V6a_r;is gDZˁb>ƫg>Ita|?_>Kh>e~{9?#4?l%?.[ʠ-S?(M?G a?+hf?/Ü>+>e"=b),.y=[y=1g\Kq=<9=[6ҧe=HԎ:>JjH">Oym~z>pXU>;~ ?1f3?g\^dg-?鋐׿-=#=ҿT o !"b2?_aZ}׃u#99|?Ew|?_^Q?($K?y?8;?QK]5?6%?tc?,Dsg?| Gr?SoOu?1њia 8\R g&z* v&o Fg)j2PUS3KTϴ50UHkmϟ,ř=|P/ 3?W1?y_OA?-YH?.=-|AR򜮿Ϳj+;qs@B>?d==U=#߳=$'Gr<#x2#y`>wœ]}Bٿ5z5# ( ySB?E1?P(W_?iHr?{yPw?]uJDd+Cѿώ=h?XH(َ?ջQ=~bf!t%> F  ?dk@3?+[Tt ȿVIBXb , ?A!?V9P?=:? W<k?,z?_i; *ɫdLtݿsOh}aJq9JTLKG%$ Llf<On%c)1OP=dyY> ed>6L0>xV>f 2)>sZ>?u!X;> &-K>m>Q>|ln>31w5)?vf6?,`8"E?sn>rREm9o!D:j{<< n-H=Dٙ>z>PC#B* ?r]%u?;P<jٝc=f! E=r=(+h=mpI>~yc=+ڑG=yM7=$n =]Wjâ'>wg>B>_H&&>Sdv>y ?PT%=yAXZ޸<><\W?#?? ?BVr`&? dRoV?ir 3@Ļ?T @l*6?S>J ">7~qE<>-g߻C>VŻ N>oxS>Q:k_>TJr>@Vln>Zp>QD>0xF>RlƳW>T>k>}:uw>X`6r>MP1 >{ݬ#>Jߙ>d/հ>7sNȶ>)ikŻ>jJ>ö>yS4>-;p>Njn.>w>0[>{׺uԵ>>>@0I>*Y)jV">es1>ُǝ9B>>pŊ3I>fFT>dM/,]>7Rl>XIo>!,y3>¾*~>c2P`>Vlp>5{c>3@1's>. {r>MT>AɺtM>k[d>ƁBN6?6_գS?]6l?icH?l?3os?6 1?6Z?n*l>>=!s?7Ԉ'?]P5?o }^=XҔB],o>6z=>F]gES=cK&Bd=~ U:= "U=BrV=N?d>IҾ]>S>Z8R&?|r?ZD?wF2D?G?Sb͋d?YL?-{?Z)P?,4@ P#@;l?@|j1@mU@ ,@\UP?v/O@br3(#0D<PR7{u-P<3'B`<*?{l D?)=R ]?Snt?~;X?prf?he?>~ 8?>`g3=ο(e/=C\=̎@>bp`=4&.=s W.>ku>n3d> /?dW*=߇S{<${ܥ䣀ܔ >͛ &?b{}?dlY?|\Q ?]X6Ad?8u9?ɇ,"?g[Q?D@ Mb.?ޒi@G2?7nFX#>1&+>ߓ#@>,{'OD>K_z%O>1ׁds>m ~Txr>nT>#e>T8sw>->ꁄ>(.)>IJ> 9X>*=|>,(>X8Y>>\>)j>*ʓ2 > )>$̨5>R8|>[r @%ş@A[S\@Yp?wEt?:v>~o5>> 92=u@>pӓ)X>hUh9a>b2_iq>;>f >)R>uk!>=*6u>`>e't>7kЉr>YPae>4b_B]>hB;O B?km`?50y?ap%?Ϳ?g?uruH?`Vg?(1m>1Cx߸>17U>Z<=Κs=D_=P{Hʩ=w$BWx=Ve8X>]$f>>.d3?o̰p?3W. ?/|Wac?Fl?\;)J#j?@KR?Gj?pi ?wVA@m@}}T @)@ @*~<"@Wd@+@l{_U_B<-ڰ?@ˁV?u(Xhn?("y?ղq?Co ?5Lo?> a>±~?n)m<Ċj\ =e6¸='>;d =RG>B,l_>z+= uj<<@˼;D2`<'4IǦ-=3{gV?UEV?O=sy?` }?_}`P?p0 j7?:&6)ng?j1J @$?_*@up @ØJ?.{+>a!:H>n%lX>H"Yc>h>oZt>ӆK>MV>bed>>F>B@ ~~,@v'?|,?]o <>hS@>HORE>vٳxP>Ԕ+;"g>-H%|I?q4?O0f?:|/w?8W?Eh)l?-?Ⱥ{??l:?w|?/WV ?Eom0?J>(#=̣>SM? t*?I- ?ᡖN?՚x?3>K?h&>Q?ҽ?9?mJySo?cr?&x}3@HrL@@TX?קSR@!e@eIjRz@ ?GS@Xu[ .21(ul[X<" IˠdÀ'op~1? J+?xKD?d2J?V z\?<;b?Cy?}-Cs?-/?CO8Ɣ?I?5?d?HEz4?a_P?7??Kx>2?v>c3-^S?1|ees=6<=AʹZܖ=k3=۞K>&^6)>x R>MYH+?W\yW _?<?_|h?V`p[?1 8?s1T?17]?}, w?R1:q?}2JJ?CD?V}2?C ?,?A~\?OD=b?6H @XfS[@o@ly?.S?jh@$ӱ @鯖=; @)M<?FgbR?,A>zya >O"1>nmO*5>}Jh@>^J> ^I>7l>Zp>Oi t>>ց"r>{ a>aeR>˲3 gd>Q+.qq> >l~>Z>qdl> `ج>:n>kQ_ƽ>D>6>-M쬹>}t>_>>1)@#@@&v @N@@OP߰@f?tȇ@)@V?S N>?f >&ί`)>sj(5>E88>f5xM 3K>/FJ5OX>Joha>Vxq>Lΐ>V?>*Cم>ZM#v>Ĵ&li>TĐs>#to>?Y>t u]iO>XC?kp=?ѥx+/?ӷY8Wa?kg9Z?&s?0y?+?#?Sp?mј?<?U ??\T?i@R?ZN?5 >B >>!">| J=t#xn=s[=Ts=v^ŏ=˿pe=I>S@>#6$*> V>M2[>;̈́ ?q}?Aud6?خb?nl?K?i?MN\? ?|TwY?FvW?5^?1B܈W?.FE?os@?·t?n̏Vj{?FլGq?bJ?D<}@/w`y@{8@ @@f' @򓋇?~a@{@eGg?C@+x@|I@8@6o6 @?s@im @r01XuA=9 =D=kÖi>=(dC<92Dԓ\P11JR>no-Qڧw> @-,!@j-*?t1?U΅}E>X CmQ>*4O?б)Q?>OF??AO?]uuX?x{ $??)b ^?!E?[ |?u%ᚑ?$Z@a 7N@%#@1@;ol@'E@5 @P(@Ƕ# ڌ<mOH<<_5[`<9TG/VXLnTg.w9/ҼaYdHeȼ~En53kpLRmgscE.9xBʽN߀Y0EojRY 9OhW{=N=vS=P?< uzއJ#½%e6߲cneۦd,CD)#Dʨ<, M R9u}IV8&Ap&vӪ_lm+,gnt%t2+}H=>θ/?`$ xvMEig=r|)=gO'<,vWnG@: `rIJEL}t4K-Ęգ21Cwaý-m|?པ65iAuRѽ +$Z1 XY.Ғ)<մak٣Zqmmo_sAͽtK1[R|`hh 6"Ewpc\D0D8Q+scwh{v+7lW݂ґf_O|.86I#;>NXƐ7ؾ%u¾W >>)>BZ>q.P_+;˿h(E+>MIV=PQ+}F>|}jza>⿉R>('X>٩>'b>G|)B>>a9[I>ң@ 0>a=b^0i>`h*%>~)>"=Chc=z=p=H<'>D``=SÏ=̜ci=~A{=!b؈= eAO=jBB= 3AzB=,%=#tl=-˘=,9=vF=6&K<)P3=PC1wJ=!a=}k#=[b=﵋=Yd& )Y0F}Mm*K/ƽE 49uTg.V!@k %&cIh>`7c׽A/L۶w 먣~ݽ7c߽|>T_A GR'q2ijd訾Ϝ9<˘|a;Vcwt`>/3 ޽T=곯*t )˟.^޶p*J o н Sًõ1=} h-hD\xhfG.\]2@Nk&xλYo]>Q.K70C/귘O]m;y&7켛p8iw*𼸱[l pk?}Cͼ\rgڔ\^NT3,kjYb'3=ԩpU7=#,&=a;=&6y=΂=5r=.I>x(l䓨=9=DQi=/=LHÅ=eQ#qK= <C=C$:}=enE$>uG=kݧ\W=}`%>r+3>3~Id>+VL `>c->r>>o6>C_>7(>wN>S>]>\>ӫG. ?|f?bSVDU>~kS@>_@nF> ~x|>X糁b> L:>VeO>'N>:u>H0H>uX'R>l<ݏ >3++r&>O+&>H=Z3Ԭ== Ւ='m=[=C=ܔ֌=F*픂r=R=3 [=H l=mfֹ= =YN};=K>`$>=_3>C>>3?MT>D]Y>xcEP>'T>M7M4>u5>:NJ>YL}=M3>gM>n C>gZh>)F>vEk>.;k>=.Ar>Zƕ>wW?r>q!> ΁>z^\>/=_>1x?Ax>^>XeVj>6(*Қ>nj>ds+?>|=#>1}"??O>ݹ[ C;?*?UN2?Q +Q?MۜR?XAh!?s .? ?0n?3>I<?P0?yyEA?"*CX?5ie]?+z+")?on>'0@X>VgI>Tvƿ8>zƗm>6k>$Nj>6 Sa,љ>&[>MCVV>̧ ¥>W߷>+@i>8T>Ƞ6>Fվ]ׂ~?!$~?53?8S?OHi8?<'&}?U?7}LJ?xŨ?U?XF[4?Ih1ɲ?B;ֶ?$[0gﮟ?#?DD[A?nŋC?U#8?f(}?h?F{? ?%ZS?{$y쐠??,]|g?ȱdH?j?{?b ?UD?K%)?\?{DK?* c,?6I q?]1yk?ׇC(T?m^|?~~c?(R7r2͠'?끧 2>iZ`>0H]'?PfF#?9?HL4?ɳSD?P?iU)7?g2$?htF7?+n#? *?q5G?aQg?DP?1t?4F+c?geL?2MU?)|jE?A7?<0?;_ a?P 3?^B?$M!?)Oy?䃙%?vH8;>(o?nQ?-KI>6Ŏ6"?Ǘ7?6C>zk>l1>y> 1ҽh0?~0?jJ%8?2#? E?jp^ ?GtS?*(H?:`lB?'ړC?;}2?LZ"HC?$TxJCY?wV%e?8tS?*Ai4e?zq?aA[?hq_Q? %)?0;q?)ɶT Z?.9MV{?*%?x s?~xdX?Q|?{?#1\"?̠?PM?G[DГ?8EY?6tT?B+e?C(2e{?rlMh?Q?rW?ws?*#?$j?c¦?VM~Q?(O7?QN6?_99-?[?ij?R"?J)?o,F?`Byɽy?=K5T?DTap? !n?,D.}?,6?QQx?*)$nK?oTi?-LJUR?K3`?S/>d]?}<?Y(?d&&7>ʋ!]n>߅>b>%z>}'P?LU>;tJ>OHl>Ct>rn>`fJL>a_|>>Ww> >[#K>zMP>Pg>>2 >Oj>B>/qv4>%7`>Ѹ&4B>Ҩyn^>?*n@>D>=eO> $>kNJ>#F>2l64ye>/|Ay>? V>D5&,r>BȠ_z>"4ɀ>3Ÿ~>#0WE >i.K->I>ǃ>p>Ee>,#0>Cq!>>B'[>m0TgI>JptU>aX>ȼ@f>u͆4 > =\>bzVS>Y-Th>_H~x>1B߃>;X>fLqϟ>*>fe>}C Ģ>z>O+u>JJg>#>^"> O>*>Cn37>%m>Y A>ג'j/?j񑭳>>^[>ULwe>N!>ӛ6>7;>@'\>9{>Sl@n>;>Dg>/zӬ>#LTb>#b>ꦻ:>7*>p> d>֡> 뫑>悍>bgd">89F0̙>P#P>/ >"\+>>8|>r%@>c˧|>>43Dx>5:iomk>TZs>9g>6gf>ugۅ|>Zۀ>T>8#>2>rt>sQ.>,]Ó>L9~>jeES>NF<׾>,n+>@>oH6ΰ>Y`G>:H>\y>Q6u>rg>>=MT>QK>*:>>Lڽ{>}E>74֮,># [">>RQX>HFz>s;(>'7>jг>#U`ݮ>;D>_4>W&.>-ƿ>1u>>m(<>m >>mZ>`>^k>&M t>l:G>o>4>)Nj>تG$>q>c>_p#>9[CM>>PO>L >2EA>2%>L)>1}*P>*(m>i>Њ^n> N>>q(J>EM3>s[d>p >0 >idu2>2=C>>pPz>VfJh>X>H>t> b25>uC><(.>;>Uy?d?+Q>J?.z>_m>1>U>_8Ѿl 9>f>\k[&(>vn{>T5>r>PxHJ>W)>{!Kt8-]$3:>mMy> C>Z{ ֯>fiJU>)NQ<]>NoI>3қ>d.>fj>~B>n,>惁ݹ>t7H>TF*+s>aqj!í]\)㡾qiyC F^ȾIADS<ץY༾(1RS}ǵ$¾,#iPþTңNľ ZY2/8V|k(¾چ=W¥þj hD¾!!KZŻns RG/྾:]ä852P){qןĹaƌɷs78dX|Q ( ^B& ƾr|þAĖƾG5̾6/K׾ŠϾ^=Ӿ5wݾ|VɾO &¾BWӮ¾)AڹǾ3xLKXԾX1?徹p|<ھ0Wоӥ<ݾ<0f<\l1(wDm{jZ),oUy~d  [$o،)@Gպ꾽b1߾ϸn̾gҾGվߔHCվ|qI˾7]9hhս;޾oL߿7wjxP5n dAf k,e%Nٕ:{\pb4McP0g;*>Acq& pK\X1]N8lwQm-m]IrL,b~~+f+כ}iyjIGDУ{uB7yaff|8?'RC9C<*pEv{c@w8¿<ſ˽ʝ\ͿWb ֿJDƿD.Ν+ǿTze 6=ȿD/Bῌos.ǿC=̿<пF/޿?_iԿ vͿ¿ht`.S-񞧿lQwZ}XPuۿ`пzncC=hȿ=|奿5S@ŵeMu$6p yh}}OStm]IOʋTibMW_phbۃ//2[\wֱr@nj-?䅣aA"Q㲆)!3o迿l_2گ+ѿ4I{妿Y 7ݵJmƿ K}LHŘDV4ߑK~]t]  [=zw^Z"\EÎ&XI*jNY̆[v73 l|@b@RxX(~ bVQGթO8u1.mJ ,`y8Yum0y)A0l_5, 6W4MnW5igR9^O HT,C>wɾ)4ǾYf)پWGEPE נPuM޻NJr#ip$/Ծ僦bx!yyaȒ῾]1bT\FssYwKʹFÂdž~F B 2snH>ރ1u_yŽpodF+vV r-S@ӘV9mXVK\4g0\x#_QBybo)J^uadtPdL{nvoUoJ`hrYxy辏b~O9+6/h7ki}bl=׉_z-pi0$o" G wiIJg#=1WZ;;ϰ ҐܾF3:3Ͼ!ܽ¾:$9ƴH&\Ĥ=kvL|^5鲾Mqr*_uū ̤ d񷜾>'&KB쒾pPm9K47N[qy)Q#{Q[]E۩ދY~UwڤEydXtA*举e卺ל$s񰾻~Ǐyx=c_Yo: 褛\eɝgZΝHU]op;eT808ցHQn)sM,]@ibJ'YԯKQ稏oa*`g *bpiZOt]`h!꘴PfZȨ:2EXG!|ON{[-ZĿƄZ.V˿`ɿH;¿Ea̿%%cS[п|ſ) ZW2cm=ZſؘX8rпa߿_6?b࿆;Y过^2!޿XL#ޜA⿤9濦ZN\CM޿ԥQPֿ01οkѿf^׿yvӿ#.%¿v-wԿ,%̿pῥ&忍5ܸp忲K"v]TC3ؿ8)ҿt̿ou[iÿI!ۿeIvq?iD?yDS{h n:gqLSz?LtvZxɀh禿%y<9Ŀ4@(o囿B9&\k˒?6cوHLT {2uAb#ݣZU&lT[;m;?XWZ} 16>tn6Kj{ ФDy'iHLՍ6*T}־歭o-H8@FC`]Ev3MPdǘùM&Vaq߆Xj{͡-ağg8lfpD5}l|'2rfIVX'єJǁ{d͒]2Wj1/r99Vvb6Aq R~R({AjZN}DHjQ@|'Jl ,hfN'm'~>VP}OW*J FFt\0b0"( W9t .hpAUJt=U>)_Yn&bu!Ƞb])'TQKV.1HR M//y ^Γ( f,վl_iGT޾w ';>FWþN ^ؐq>yJW4d@˃ G>C|#wa/ăpκp]==] 9β>=.G\Iũ=>Pmwq^.ul$(J4&9=Qؑ矤cm>돦1/>Cs1M>ɓ_B>ij>R0>yoQ>c }>>Ӣ?at:j?b y?eYzR?횲'B?Ųy?5?N-ړZ?r?sVּ?p$?Ow*YF?5nl\?DRΖ?QnIIQ?""?\fϖ?{ր %>?uTC%!?{T,'?2x&.D+?1u3?gTkuJGD?,׺N#B?dQS?s@>b?/U!t?@ v?M^d?}c?Sf5Pz?lp?/]X,?wR?>f(؁?QB?ri]g?~ q?@ 3 z4?5'1?_?sx}T ?7; ?H@V?,?M4 ?jj_"*?`#;^8?] D?9R96I?ԏhT? IK?\4?#(`קA?lzO?W8t2?!?E('?<,$?i~#?*?6?KC?|@;jd)?ˣ2?x]m$?g.M_KI?0+La?Rq?$l˿Z?HJ)&wU?pE#I?1^b?:J?qy?nfh?iJL? ?/?d?bVi[ +It?.C}?@aC?r-2??>6? N࿝=P.glbϿy !ٿv1濄xų!8g?Ǭ꿗4nQ4쿠J00OMΧJD"*S!†Y(t r7j W?*ʶO3dNdgV=1XN~k=hd`+Cͽ~IJG7|tQS4#Ft½g_:Ff>佼/U*}.CƮ8Y UjyD>{mSWKn64+Spe*8zm6d7"wHլE! ]L_+?Nۗrg1׽['B0xOcǽD5 ;*,H"gp_lN#s0ǎe^)1.zɍP $gqfcqmtNBs *+҈&5@ּ|ig*&=޼?04eod;6Cm q]u׼@)||R ȧX#)iؼq@(GKB 8B6&l{$WfNl$ɐm9(ؽqXE)[<O.%2kgWo2B,$@#9SBJI\ 9PDNE23-/O5d.o{3T?C!CؽjDl{wڽ;ҫD\˽ وU_豽&ڕNEN)E%xEO24W,RW"ndm"I2FkRK^d:e,?wc,/]MY/CX<'o̤",DBgv0jԉ.fu"a^_8{N }X$/gл<6{R:$Tfc}]ROAZGCU}eQ>d,DwCW%#u&cߙZX"ZUΔd1IAk`%н|*䝣@ᆾn6@U緾7B庾4xkt 'kj6.y?TӤ}yqa+tk{tDBIо!q3%s־tF LJ{#=# oiU Nb-Ky$0:#'!x5ES'Wo@V;H764J0(f$X^fznuӾ.FMG r 2 0rc@-D5 #ER,ZQJt=ѾB gfI|;iJᢾ`wGAvӾ/I飾Pz]M RN>aqbIk) <'XSxƗF!bU@7lT7H{ KN(eDs*O`BKs756, ߣqG4˜]##0?|^&-ũե>2,>.6M>j;>?^ɾ2>~)>{"\_>_>xD>t>!Þ"о뻇`e>CM-uU7kU^5HA0^;B?{ʩ-ϊC|U .tkl.<ƃ<.#2""D/WV_TX:Áj^S}Ӎ뾷jʁqH We#ys;!1f{D *' y;'AO8!c.@QD?\_JӪ9_M)bL;~C&SeSrQ)keO\kiutT͚{ ~<ӨSy+s9qէsahsUjCŜ6pǞLH[DBZvY#ՈZmE2J$bȔX9Rfg:yvNu^p`0dUj.W+w_Zm8K0/EdX.8 LD *ݙe"zXrc47e[(8_ .Qu^UlZ`j1@h1c*x9Z^uaLem~4 Mq3^UK*q;=Z~Qx؝h]7ʦZ4ьy뗣jNQ'G'RϜOx䃿Pu~r'x ϳziaz/SwܞB졯ޱc; p.Xv[{Tnjx4wҧRG֙E[:+aP6mj~ZW-I0'J$T1f(^¿o2ԃĿİK ſjTYyͿ\`r>"(+>z~ܬ=z>荧|8>gJ<$G>$Zx>aP>'A`>^?>0QÉ> /2n> >l>Tʵn>X~ P>ua{3>>&>,W>^.aP>tpe̔>0>Igc> %O>90j>b@GQ>RD`\=o~Mp0F>G 0/վ=֕) t=l;>4`zBu>%`3>FA=9j-=~Ee=E]dܱ=Bwܷ=br20=aj='mӳ=֋=#I>WDSH>ޯ<=@2?>T Z>Mkt>f5t>M54/,>q=տA!^=ãl=rlA= Lf=lj'wQ=:B`f= k=*o=_x@=ugQ=#5XD=6@=+WŚ=?U=r=X-k=O '=aS=#Z=d=^B!=sP=]!>=گug=V6=ֳM=R\=6UL3̈=^z=Nhk=Dc =Aǎk'/7 PNFpnw@[Cb ]!#rpk:wr>7p>7O3:>j3e=G#vDE"ʾv=UvZ?%NΆ$ekP\N*ƞǧYĽi5 üT&)~OѮxd#MxBak5I0b9xEUBHRXq;j&|ze QqQ㴽FaVH%'m6C9O[. evry՟ofbM#BԲ1DF̼SF-Dǩ17RsѼ| JXWټ⏌.ϼox^5@3>Z޼d2J PsQ&G༊F#1 ylRŬA=.?'$eI7%xTDh7(=01_N4=e37=ZR~wt=DWP=V&=Iiο=ed7=4) 5"=wqb= wg=\bU[=g3gXșA< n=壐݊=GU=tI=n#n:=w > L[= >^s4=n$ $=.lU=P+ 65>9>Ďפ.>g٘b>jD'$>>5ލb>>%sm>%@)ށ>gӖ>oDN>t]ta>Ix`>}gs`>?d_`>xnڂ>w_Æ:> >{ka>;d>-~*>"e>>ϥ_> ?~!I> y{.>ԥ;>@ s>7>*Je>!zͿZ>!>[O>>k>ӫ%b>zoz>esJ>&>~>z_-h>:2)xA>L~<>Ks|2> >a-)>~Ƃʏ:>0|$>ewJ>kz>C)>D'9[=ga)WP=M!=mE =wQ=} >t=I4h01=+ jQ=Բ󑅱=X"=˻g=/h3=+؝4=p@@=d!j="uy=݁R1=,= ɠ=p&^/=l 7= ƛ=~'=f=s=/=%~;G=wj>/[+>;SW=um_U|=uTb:V=Qt%> )>3>,mD>L~aA>9XkP>nc/7>lN_>+} }>. d>jTc>8CG>O0D>/5>EB_z">$E/HA>NoHء>eJЙ=Y]?=Es)= 5&=FYt >kzy>Ǔ>r|=i2>u>I>2E>2?c>fSnQ>bo*>K>ζy`>HP>VNp>wE}>'t>B{>>}Ց>2>ṾS:E>m> x>wRڨ>o)G>[Y>H9>WV>5Ve>K kK>s 9 >:0Ǵ>s`FV>Y;>¸XQ>}ı?hdz>?A) ?N, +?K 0?Ҷ|A?|?rfB?dʄA?6*0?x|?ݍ??d1>y;?1h? HM:> >h۟8"? Ky0?]t&??- /6?89oB8?j@O?B?mxRwY?X?;_`?CTL[?>LC‰c?KQp? l?&iVUf?LtZl?#X{w?X9h?=;V?M?w0Z?k(Z?I*i?fwG1w?B4i?Gcy[g?\g$`?Lx[?˧y?Q$y?'5zK?1?˃+w?e~?4tx? * ?ʟ*?3!5?[e?CD/\~? 0? ?N'占?"Č? FZ.?~?xt'?)xA?D xwv?X]͋?sǘȓ?=OŞ?Fn?{J@??ʈmZ?׈?5N?$W?S?(kK?o2?$MZ1I??\ӹl?}?!Y?۪:5?vД?QG%?jQ?#Şs?&+J7z?wtÆc?v*Mm?Ůa_?KwU_?,1t?B;R?#X?Ǥ~@? :JU?cf8?n4?< 7?N1Q?~?T?,?_?du1 B?b*ٹcE?Þ=K?UQnF?ĉHP/?2Z4?aMWV3?zP#?}2@44?(r ?WLK?z?i?0H3 ??9?$bT>?20p/4?&C6y0?%6?u<}A?}hTj8E?cGP?E\^N?dfh?I/YF?(;5W 8uz>1 ?Ja?pߙ?;&Va"?2;?,?٠>w ?w~;x?t%h?zo+P>>c&(>Q_>GmGn6>ߨ*>0B*>ri>H>b>nƆ>2n**>KG2-><򜖦>|g>D͂>5x>4>0jJFq>F?>p1>nK>>]|B@>Vӓ>,\HÞ>Ls>j<>0 >SH΃>BA>(f>\_1tQ>`G{H{>BQ5Hqj)ԡN,S,/M>*B> +>\h4l>2V>7>}ҋr6>Tj>FU>o`>쎰(.>̫X?R5b?=>^ձu?Ca}? ڰ>pѵ>/%;/~Ѿeh yҿ&l9Ri)ȾZ9 ྀV6?|tᾤ o!C׾k⾤a[33t?vU1Qz?7?:Xب/?8ʔ?L.?~e??1*Q??UH?z [?dy!?x&7?-{9?9}?GaAF?V6v?b5?Ead? N?bG1?6.3?:?!G*?(9?lJ?hJƆ?o?ׁ_ ?R?+Ja?)7a\1?0yxf?+d?(jȸ?w%?L?|մ?430?}O ?U::<1?>?R\l?:T$?JE篱?%]?~ަ?7X[l?PT?3y@?"?,, ?XlS? ד? Skd?1?  ֤?nP?_ȭE?+ ?k|R? j?*"?^F?,V?cɚVf?ca؝?"b?""ř?NpǓ?+,[?I?-aq{?NSGU?i`?mhi? ^i?I?zү+?fzg?S?x' ?x!r0A?r ??ɑ ?2O?Ғ?<-+-?rm?GIL?N1T?Q"?q.??-#>Z?$ Ǵ?z4@? fpF?uQ)?Êg?n?*7E>?SG?K춏?j$'?y`}e?+ń?S @??}D?[=Cq?s܊Uސ\?F{X? HU5}? \)ӗ?wѓ?mQ$`?Gp?Y?Y~[(T?]MhP?r=HΏ 9?*c$G?_X:M?qWGܾƥ0S !?S>Lm ?#a ?d3U#?e ?8۬P? V2qD,?W^f=?ND8?I5Q?mKŽ6?' %?>:J?dW&?~v.? Њ^ ?- qJZ#?wL$=?)1?gUC?~ad?逝vL?qY? Qo?G yw?(^Qm?؉+?Yoi?Ƞr?]<? k!dq?,Wq?Lm0?$)QSac?DsTV?ɞ6g?=LsF?cD!T?T-,?" :?TFDI?ר T2?ߌv*?$ y,?.L50?-?$?XO~>^6">&>i?҇8?3C硅)?Jrm?kͲ!?}3?a`lO? lf7?Û:Y?| ?:uM?8ܣF"?*xHa@?SF?,ن1#e?g6d?n7Y?DZ?@ylQ?T?7S?Ꞝ}|P?5Z}L?>AM?HK? H-?P?TUlX?]|UO]?R_`?`2k?%`X.a?#ce?#|Id?Ru?Bu?84KGv?bw\Æ?r| u?Q7 o?;>‡5j?jcM5a?[`u?旪7Zr}?I3݈?凈?2ʻ?_{^Eؘ?)kё?F}?uٍ?R_Ŷ?j}fz?f'?~?0??^Qݍ?) ?ϵc?7٠Z^?ʗUN?מL ?m A ?ԟ?l?WK?`4%L?j<=?uzO?LgH?:O5?/?O;ґ?agӅ?EWk~?} ?Jchz? вB?^C\'z?g&`v?~7?X4?hӃ?Xp@?@9??AY&?Qp؍?/p. ?!Ҵǀ?dOA)?v?9b?Ph;?IfU?V%?KMs`?n?TE?&?6=?q}Z~?9|?bemR ?պ?R{3?$bG!?XB?>[cƵ??=C?ao_?W%?/jd?LW?\6aX? ~FY?t?O-?f?v?5B,r?T?X ?,F&ڻ?uClr]??ӥu4?[o?أ]?R=Pۚ?"E?ʬk?wJ5?-q?9DM/?ԋ?i"gr?a|?&hj̅?ba5z?܂v?]Ԣ~k?7s<,r?@W?_?ë)6?MZ?lq#?h!'g0?H-?(u0yy?jtĸ*}?Ι>h?~-Tp?#u%Vp?Pѹg?%tf?+aq?f@k?ƂƐ%u?h˔j?G 1Y?T޲W?5P?$^_?@4a?!y^T?#"p;?89??7 GzB?#sQ?` C?ýJ?}UA Q?U?ҹȥ]?lyoc?3g d?0hPHrKZ? `1`?IrE_e?fX?29:c?D՛> rk>>h*D?Uu/?J578? Rn!?կO?ԁ?9A!0?ʇe?!?OvÑ?P,yc#?]G6>q?a|?ՙM6W>j@>JN?{[ʳh?ί ?ط?H^O>̶(>$.>DZTa>MpI>f>DmL> ac>)36[>[2ߣ>r">f[> $&>z,xm1>G[> >#k@>R4F˵>3>+>?\>[ />8aq> 8g>oصQ>pڇd>2|N@>$~Z-K>mWH%>V;>ۀ"=.>L>>s#>9/-A>=2>w~M>}S>C(d)>޼:QF>d-9=/>UH>" ;>˘;>óP>J+,r_>F!ywV>(2up>HR>L4*u>f> 'X]>rd}>~程>' >j)>eh.>*!u,>r> q7W>Nh>v( #>cJ->l >#[w>)&Hv>^`>13Nv\>Gnbp>*݀W>GZP>?uC?q>>ex/>hS>\4H+>;a3>,K>>Uէt>H>ӊ=KW>ꂁJ>YG;P>݀JD>/Rm9>bY>Z$a>W]Hs>rjY_>v5e>5j>ZNJ>L [>^Pq>r~>I^>|4A>>1ԩ>MO>?'@>u*H>:p>q}>ah>jq>*EM>n>#Z>5_>#Vٱ>KK$>({Pv>W=>Z$>Gt>eKխ>>>뻖^>1  u>E >_B->:6?O ?g>.>6>%\>>|]`>_>bP' >Zn>VJ0>?O>1$`> 4]>ޜ>>{>ͶPUy>PUj>[s.>\sƘR>)uL᤬>HU>d}vsb>sٸ>Q>sjyP>'@Q>@m>lV͑>y>yl[~Ӥ>$Q=>%6[>T޳jU>8t">7߾آ>Su2V>93>_>@>8>yLV>df>SJe>l.>$#d>!>`M/>rC1>s>@ E>qy9]!>X>!KcW>_4]>Hiy>o>iI~>^gw>Fp>j4u>cOj>5f<]>3b>!0Sa>$EAQN>iT@|D>–}nJX>C;\>6>Wg>br>r@c1\>c Q>NҞiWt>ڠo>$9D'{>E >tsVz> gv:x>rdq*n>82>xC|>j3> X>};Œ>%~a>ƮQz>J{Gz>}xt"b>pGВ> >: >Q#)>Z?N>6>zWs>j>t]>SO|>P3fR_>)/^4$>>Aw>y7O>Bd1N>jj {>16>c]>qr>5.> Oc><@!>mN>f29*>6q3.}>2i)>v7`ܢ>嶺Q>1ґR^>ZjpOnB>D;\>h~>cK> V>x,>,X5>dU>Yg%ͯ>;Z<>ڨ?>_?kXR>{࢘>_> *?M>,>k>^->v>{>>' q>&ͧ!>|7D>~Rp>=cG>4d>>>[NwT>[2Ҹ>TQ\D>o`o8>nw>K>$-a  >BF>X$>٨a>1]>^X+>n>>LR>Фh>Z*>:R>!>>B2]>JF>{`T>as>7=qd>pȻ9H>O+y>J>z(>]v>)>b>9b>dxY>6/>zI߻>*`&>?Y>7>kآ>!@NoB>?‚>Hϛ>o_Вu>F&>dGq>?"> s#>f2 P!>st)ox>,b:F>h>I&>MMx>[z >9e\>x*>d >Jð>]VFw>,>>܄TA>:4q2~>f> M>gIj\3#?pn!?>ag?ג2>ן3>ٜV'}>Ilܴ)>Fz@>R/%>`v| >4l>v",F>'Ӽ>* )|>kG>6W5>k49;>+x>7->l>+.>ɧ˟>21>-x >*M>yDU汱>_~_>և6->>Mc>[ux?h* ?o+?t~jI?_8J.?x&Nj>Cna>ȲMS>L>d_=>hX@;?>=&mcY&^>6WiE%>ڢs>ݘi"}`>'~8 >hPS>U6>Xr5)k>Eı>]T>)F">Xa>?|>:\aZ>}炭>*oa>$"M>[5f>̃t<>M ">tj>:>3秙&>"bk>*XM>Յ>F>B>s7.>0> u^> q›>0F)>_t8>:/>1 5"3>Cmva>][lݼ>G Ի>+ec>&!LW>lyN>/(>ϓ>(}Ri\; 56%yO( k,j^߱X.6P}P/<È>rn|7򩳾}\5{.ľͽo3&Hா/ѓȃR绾IB=þ@~¾fuZ9VWľgA9ns|CJ#ty;5*/0ES_c,¾x_7ˮd?j#xɄp+ļq3þ?O6¾A+օþmT¾L-ľ3fľŞľBaþMT̙:i}$pj¾^ +!+)O% yx¾u+PwƅB#sq C;¾CdϾaѾp SǞ^R#پ՘AvGuI& BzJ#X%~`:8Rw#%ķ?+!@U9vq%.*1bE$H*]]!셎6/Rz: E[8UNw,F:r7m5VۣBR^i67{a* mà}JҠ]6B]S8'WTfpyr:7wNf|fxcs2B}EeɿJ8;Ŀi>1ۿT=`ҿx&ӿMȅ޿삇aܿ6ٿmͿ5vпđ2i"ǿ/&};ͧV;vpܮszJn򼸧yY?qC?CſEHDC/~ZϿ>bhT N俏ZI~h1ѿM.qҿ*ZJοV2I俥ՃݿZ `Tֿi_rԿs}$jڿCѿ 1Eʿ751zſF*ϿyȿXFa@o BOcUhUK-i VW1+<]d*`NtܴPn$ @#3MH`t鯐CKĿ{QLOҿHa).ȿɋb_ۿ9ꫪԿؠпY0ǿ:|#0Wa+\r᾿J#5`9._^oC&zrާ,Tn28Jr"뮿KVYlnKI \% %$4-9}vۢd3W'FJԉꍿ3:RVV(eVx ܚB;)Q(eOBB'U`wB9(S:DXOc~6y΋BxSp9C[yQ-#|mH>aEn&Y 7}[Z zjL{Ɋ!rNrx N?t4vҮF3 |^ SHjU*™ubݴs;~=/ zbzh $ȥadTm0h/뜿`%->(̏:?܇G,G JӸfPSyZLUeciCs.({f%eҍZGh1:CJeJJt_RlH^P_:Z'gE\!E#h5QV~CԁJAΪhx?gT`-r> RWMDJKnF.$;›]7s5`+k2&n<ӹ p3".T0pw!* +x9T05wq2-QyG>MgHݏuNA|%9PS{arhz#U#d1SXeOmMa7WKƝ\S 2Y9XAliCI#94jo$]d6EJW(@ 1L]E `NvmE6Wcq i'ߏ`.iOLY,+澟(ľM8>v}n|hL ѾEEr]Ѿ_C)󼾉ĮqKXF+*9_plq[>b)M!b5¬"1HutUgKDXYɚ؋vD=P̉%{@3Z끾oRn/XBY41_wu/wmduKi9tMx:s9Sxu/0Wy@ RbʸIi?-=' rJH_"}y@.QU0n,3r߉Gt_4t}MeId]jJ]zFa^=Uh ]fݬ(aN{heÕ]Ђrjt(N9_"㝌 SoٸdbM~T+O`2t;^q,Ɩ=isImsu[)3W8:s?mpNlDb' 2VN*Kګ|EzsbBpdQե:Gh r,+_9ܘ!2:f;\zF=$)X]=r7hwqZJ,c?NSL>CĹR[W ['Ra/OUqI.dGWm[>G݌ Fd`yj"!Íb ȡVEh@Hmވ=ufqH:)uڽЌd@EeXump9~=~z]]fisS0d9jԞ]WT1̆wcUy('j,-zn Pa񭜩AswYgN~+k|pc0wn5UjhqG~K PƀދjqX *g?/~ƙ ^b(igZ5ӱP],7uwR`.V=XG[5GdἱL2g"석WQr5moU忾xBkL-ЁC~IEq962ܔ g*|쮾8B\, h1h1}y5ival$ӀѓT=y0$6y2=,UॎН.$<;Iq-2u#5dkP a| lBv8b R{s,D-Nqw ȄBevxEm퀿;t+ 3 (CjIݿ۷;ؿvkɊ׿_ӿcCֿߐVп{"\T̿bubȿ 6ɿQ+:ÿ\ ɑĿAw%5ҿ7՘uB̿’ƿQ>vs9tjFULo>A4 \xCu,I ZTz:z¿ܼ0owFmY51q6m9]?<֣͗v̄.Xx:8r$ݕd!Bv:Tf?kFH~=P H6ȄG YS便KU=ǹsDiC;ټV ſk0¿)R&qǿA ͿՖ ȿYd˿muʿyj Vſ!ob ¿}R ɿ zʿU`˿ ܨ+ƿ*?+.^X"@ IJvg cϒP:74bƿUɿVCп@1foп$lԿ=Pӿ3Կ"+n`ۿa7 "'|ܿ?pۿMӿc[=ֿDH߿>U|1z UtKܿr>qQ῏r*qyi p7saX%t,/2Qݧ~8qw $i"Sx޿!x<)%nhfF*F=!{3:,>*6d;?7;࿫5H<.ܿ[v74ۿ4_ڿRTj޿]߿ =9ڿGhֿ)6ѿPژӿXο2Cп]cUҿ9d;׿%ԿKпnϿϿd1пCKȿ'&y!ǿy[ǿRT|ſkZ#eԿW]]ѿ7D5ʿgӿ#Rfؿaj׿4UBҿ*ֿ*޿PlTٮOU^؈&~6ؔ῱doq)xejBĶOؿ_ylݿ(}dD߿ԇ2տZNҿMUƫIӿ:&;ȿEmʿ'ݿ;zڿK=ֿ_y󵿍IJQQU(A`?h9}Tÿ'qUpd񳣬[LwT<Qſ%Thп+|\Nʿ+zO IdQkنo[=4._GM1 Rd!OA&=ΆKkx9y?*2w^EPgFGu$j0!&!C]ť9Bjʩ}ڭ B\d7ix~SD%ϽWY!-k=ĿS5Ŀnwh\J_RSo;?!ͱ480Zw8 ɮ~@AB{m3uТ}%5v f-*rC O&r阿tWB}7q~C(lfC\\s"<>m."/mfpR7/9|XDg=Ki-z-z5}{΁xkxwX n f v:=n1:2=du]r[Vʸew"YXp ?a>\( i"D;q ?νm ؍E~ -:9nscieqx]wMM6xRrvK/9Qi @leH>D1>6ǵ4} ͠088/ (7!'G%U> &R&,DqxX*PYr hS|هw/~b$TV~Ӏ i&+=7k.*oI(ŀ] (%3a#凼%ꏜ JRо̴j xv֥\ >a^P 7c ':p<1gFG2[|+/ž{־97M>q˜y}wrrM䣍%Ͼuad߾{`߾xvp> `ʦ}8@|u<TnA>l*hV-:>֪2>%$κa= IcbqoQcq쾹]eaD7>X#=ѴX=DLb/=F>hHfUP= yD,~=뀭=]f|,o8!%ED=4=g-%rr63Byμ0}䈽+XTKXU̽nD!,ySƧ]kקּcN7˭Yiw 罹"j+=2x)mw>FϽ~Hf='CE)=66w &"\mC=m KC.=&|hýVh[L[K{V,CXlU=W>5V!ӛk>h^|P>rv+n>Bx󉁵>2B)>{ͬʂQȪ>uU^J>w:>iEҙ>{ttT>2ͬ->i oE>+>mE:>&mΌ{>0PLM>? N">z>mz?o>'3>JN>E?!MNZU?ȱ71`k?vҒ߇?C?kuޓĠ??u?SD!?ss?hЅΪ?|?D!PS':?q'O3?&r?C/l?VGa=ě?r̓?&{?@򿹲?J}?>?ul:?B1?Nj?ynzz><?ĝo$?R?π6? v)?aˎ-!w??&4*?⑶~0? i:*?TF(?ظV[2??@"7?r$RA?Oa3o+!I?wX,J?>C?E}ƌ;A4U?F)]?X'[? xxc?3Tk?Sv?ayDRu?v,.c?}^n?xޞzb? ZNu?Ss?$dD h?|CM>%?l`.F}{?~X?UA%?`?G?R3Cj|?ĶR?~~?'I?g"L-?Jbs?_ ?PF?=27'?eWFN?:?ОC?о?iX֋?&fw??R?M1? ?N?0I??*?Lι?*ɕ?_c t? :?w;h?"Tɓ?"Z?_Є?֤>T|?KA9?Č? J?0)')u?qH.t?(.k?Gh?cr!v?!iYx?Kug?GYтl?Vd?#3b?/a?JU?9u23q_? c?|\^? ~C[?bS?cR_?Be?XRGȂy?ԡD6Cp?ߙ.K(l? 5p?*Wce?:g`?䤮%S?Ib ,Y?MK?d:?%)E?HoEEG? Vg.HS?R7 pE??^Q'K?A2?;T3;?̮a *?f) =4?76?=g:2?{%D#?y.?; Y5(?gH?5?Vuo?\W9?*.N>uqv#"?v1<-?O۠e"?NU`%?BO-?0)?$Vө>.?}wP ?_>w+8 ?(߈,?((K$?Q6B+?tG4?32? 4?5S+/?Kř2?$:g8?NКg4?y^\Ţ??4BOH?r45A?g]WPG?~YQ? 7jt?,/?n2?26@(?ПXg#?#K?D. 3 ?yG?|oA ?3A >?F2 ?)?7k)>Fg35?yв ?RVk?5'?ZD< ?Oy?A ) n?.\?BK>=N>6M^Ǻ>DVp>|>, 4?J >'q$Y>J'!?IaS?K)?P]H%?9$? NLh.?Aoc4/?7Ø6?iuz$8?e),?z +>r|6 y9?G2?덉K:?`M$7?%s"B?ja&]oV?6(S D?DY9 R?ZG4[?3ui?Ha?ܻY Y? t~O@x?u?ku?qdx?#0qp?MY#Q*t?}0~? {?΁?d iF?ιqƷ?ο?8Lf?u#c?A Uw?\_sk?4&ba?N9zܸ??SV}?(Z[1@`S?#u?c aيl?օ?i`?Gv?Č*??mզE?f~-?oGR?ם?\y?( ߗ?̓3Ӛ?A0Z?z2E?48?Dl_?"?3s?`}?m̂?(Ÿ!?/ (ڽ?Nh:?-?ܾ4?c&q?R$?)H?p7)?-s#?U[4Kv? O?0񤿳??=?wƢ?$c?a#yG?v??߇?QR?_m? [? #P ?)h?Vy8i?ӫTF?6i]V?rc?j35?}^X?D<=s?bz?v0@h?>U e? ?'?x?~ ?<Q+?l@kx?HF?٨?{==?ft?o葚Z?Mr? x8t??S ?yaS??PԼuT?8RB?b(X$b?+3J?`i(S?v$uh?M7HP?_r?J:?Kg3 ?ce[?⿷ǒ?tӃL濏0 Uxē꿺ŴIh翣@SVݬRgh^ ޏ\݈4꿄gBA9K'agb(ɘ&5B꿒ͺ[/J@mH-&eh. aBvfN%쿤24_5uO4_AsUq<^m<ы.&*Vi8>4>k>eg`,q \8uä.E~3qh +޸ .`@0x ߐHJvT{]DCYZm@7wj!zn0zNFUa|uDrϝVuRcp'wu|p6ݢ`~ᖱs[V#޽ۀIظ|n<\>.w` ~=a~A=#^|1(k#J3tf5zeFRѾv(@\9}>Ix]UcFSHjXcR>n=ڃ>?<0>h:m=$gѡ >0 }X]>-?g3"_D?ʾHZ?6񮍹e?`Vj?vZc?-R??')[;}?u6;?뾘;?@l4?e h6b?nu?~͈?:??GY??L,HX7F???x>?rJ&?k#?/_P?Z4 ?v{>AzR>S`FwI>^6s6>},>Y)>WJq.>oj18f]r6>uT='}־H}Zk? +g?.?z/?~?{ ?@?j|̺? ?ݜL%{?a'O?arr%?"C?ѝp?*Qr_?5?\w1P?5+۠?-Oԏ?S`jd&?,T?欔 ?=[}HA" ?;ev)7IEk?B,Dz?TCk?W nh\%?(fA?-6?TձrE?Ó5?PH.?7mT?Gq+jfY?IӃ.O?Cl?9q@6p?˰WR?uc?he?ʤԟp?V?y?/HѻP?B?2?n?7M!?b&?#y?lu}oܠ?,+B?S4/?$d?)!?*Oq?[Nlvu?-5g?QUK?\nхN?&ܛ@?ZuэY? a3 Q?;+z ?2e >nzh>ć8>RiZ>H,WS>u&Q>EO=>eX >\*4>SDd>g CIX>66H%a>,[>B٬3a>T4G>Q>!w>"f>z^>EӾ5.ݘz¾DǕӾdE*Mb7 & T\uV~\1ёZmdB8JJ&&Ll)X`d\k΄k~Q%&4dIes!|RMCiN͟n,6ʼsDzE]Kbſ.[j ִFFS|&H)MVwաbpvC6nN_l6W}bmZoOtE8Hd:"MxngBN, 7hs>0﨏[[^)E{_y:>n,+O9V =)!Qvqdr~scPM(`GIٓ  sM~s\"Ýo Bp๕Ws¸C[78,}{m:Q1ELn`fȠ r } qX%2A-~⿘"ѿA+~¿7Gm]9H(i{q.:漢@&K+=c[hr⚿fܷA4z}&ƿIy~iƿhߖ+/ؿRc5Y,׿3>O޿mNlS7E޿h>'=.ihhxqڿA6>׿Vѿ7˿Cȿۿ8m rଘ׿U%ѿn Q{g?-盭+t?%c/\"%}?szۜ.:'# /`j[ն\* 5#fύ$'.ܔ|>S?5vܰe?zBg}nfʠ8CIpqH$m2kY0W> ͂=[ep,C;zMo+>~+4>~c^>+>>F9M%?Db?R*6?c%}?\aޣ?-oE?j*x)8?P0? ֧R? I?tX?b<>d?RmdEw?EQR?G}?KH\?a+q?p3?P?/SD?2qq?y?o?דيf?vе:4_]?v pX??]z3Y$?=LH ?I0%$?6M-@?Oҿ!1?bg=?W;J ?s>@?Of?OqtV?H:xEo?Nu?t?}Vȕ?4+ ~?ϵR`? A ? ؖ?4)?j\}6$?wݺ??hT?C%0? fRB*!?ao?w??V?>{Oo?Ύ+???O6?-| _l?Fs4?,?-?I:?_E-3?!AZ?̧?Qi_?ޅ?o?z)`ժ?gSa^?bEr?:훘?\a?fnR~~? {{?У:?Uke}K濉]leҒM07 wcI=^t'93h%_" 2=K2oomC9[aM[p,콙S" kP"n ~Jb2 3L=])`zEٹPLYڽ轄l}7 ׽0L]B#k&"gȺ RcٽN`Ck\m˃ʽ0cԽϛhav*'㫥8W0mx=gǾESE@΃U5Ƙ[mW!wb~8#" !,`Ǽ抰3?2i2}7 }Ւշ ,gCkql7@QF~8,qT4P@ 1 kt\1*lKSuMlm>Mw<(*0;F нl$xL齒Oy(ֽoEڡhI- X&BV_,D}~ferbXF]ݽ,a) l+1ҽA+;i| AR]{3)Ȥ5 Bm/{ .Z^qW_*vv2qT\>-~c> bP>*ۙ>68 >ip W>zs&l>g`*K XI$7>Dmd܃iy/Iֹ 6&P"Yq">-k:1q(deQ71>LYlkuEa(vcCo oșHWݏuzYw0\hik@Ã|k^|}ǿ 24,u?<Oؖ9>v^wg-q"On /ƿw5t)ӿCEw.iY>U` >lr>d U4H>-jN >Sf>+,>Y>kJ=`> b>*<>ʺOx>+#UἘ#Pg=Ԍ9_>89>E­U>>]SQ=&ޙ=m!^= 4z=pԅ=QZ*=({=X-=4zMId=<:(HH=l_9>>Q9o5> U>]=`)===ze=u,&"~Z= _n=d w=z%R u= *dR=D<=zH =. 2>jיfՄ%cW2?齈RKGa<"PMh>4W4WhwxZP`L!Y服&z!l-^\"n3Z+ȻT?0 Y}1aQGj2>9!>>Uu 8>>ӣ͑wؽrYKֽc&.NMUh>սf|RZ5fL ]}iU b_: X(N#/X׷ԣMg5d!=m~ 5;*uyb vBH<. s=[e=<0QH*peeS>9 =WT=`0t=ׇ4=ԟ =Cy)=>}jA=F9qa=9A=2vn_=ĶV='|=F::=sNOh,Zr0ӕڡ=x=*h=*>o'P/D>. ]@>Ѵx>7>`lJ>\pu>PH >:原>_Ρ>(+>nr~ >N->+ƣt>VY >>욓^q>y3>]Ќ>VtFsf>{Vq9d>M`b>^+xa>u`L>W*>jUWqC>DavA>È@{>>.kHt|/>;IOT >= = =Hxa==#>]=6@_:=Ad=.dU{=9,~3P=u=Hk= =}S=7umĻ=OCbr=dx=E>{wH[>~CSrw>pm>Qs>j!c0>}?<>w~Q>fR>Hl>$Os>w!V>vDF>8̀*>O4>x š->Wi=׷k=!(sh=$:=Kdf<`> o,>`OX>clX<>\^XV>V/1o>ˀ>6cY>>L}>KױI>CLR>J >IO8>H">mԝu>׹i|>:W >0h>d >' ~?M>Qt>#򍤖>S*;N>w$'>X6B>]v.?C1?kw!?]>?_@?4W8?={| '?Oz >ڟn?`d?ju-C ?Hu? ^`M?dlb?@ u?HI?:S?_ob?hogp?i!h݇?ͼ &?i1iV?ʻv? s*ʇ?;D?6€?Ӈ ???ɨk"?Q%?ğ?ᮗT?HSx?e|QT?]Td?ߨmw?Kz~?QCIbh?᠁h?`Yp?zcHG?*pL?|*XJ?Du5?^ ;&? rZ?Q3$?vş+?C?:duf?e3q*?iFnS4`7?+sw?+|>cx ?.C>p+z>'JX_>'>*Wl.>ξ >U-ũ>X3>"K>o:|8>JY4>a癍]> ^>i? QsȢоojFK3Ծ>{'|L쾣 `r?XacF?f"2?Tz?z{%?5/+?=?N!? SDq ? 7?o?haH?Ďi?P`!?4s?*؎?{9>?#?po 4?ִ.?!g ?NJ)?/ܫ?}LQ?9#q?.|}?klj??K? HCuZO?Z/?,?_pil?rl̦i?2zzq_?Mz~U?g>?} > ?9p>^{Qg*?\t?)/?Q+5?I{B?h#8D?}[[-?w?'(?ت ?-F8?*Oߤ@?-1V?O4c4b?Yy?:A⡂?8?1g u?'/5s?A"X?ƿ^?*{O?E]8_14?N~??LHT?^@?vN$?J1!?8?y?W=zb|?9o?9籫?#jr]?_ ?8M>ݝ>qqA>83>2M>,`T?ÊE!?H)*?N<'!3?ڶB?wU?3֖,?MI8?0<.?|cXZG?SEQL?]_Y?͕;`?dD q?HhV?2DU?XwEfK?79=F?ud?A\86q?تr?+=X?)=?Ulɍ? 9BPЙ?޸9L?J/~?aK?pbҁ?cxX~?rؒ?M 26?BK?ɟ#F?BN?c.ȁ?zMM?5T5?lbS?.6S*?wɽ?ٸU?)!?n~t? 6E]s?RnKy? y?L=o?2' Pu?9Aʀs?^e?{ȡX?V^m4H?^V?:}]?֥R?=T.?v֧?Fw,},?%jP#?$ u+?2\ίsGg>`iL ?\{ 3>g8W>M>Cp>o[>{Di[>Ǿ >C,>GaŚ>^I@>L0>r>RM%]>dVW>b>GW>4\SOw>L>Nr>J-lq>s>P>9R>VmīC->IП>AV1>(X|GP>g9>! q=>3gJ@>c_!z>])h> c>{``>>Ԥt>WH\ ~>pTڞ>4f.>Q͒ڋ>.`Hj>? fJe>-srlW>d 6>N(>8m N>/N>#:iD>f!9>:7CX>Z<@,Q>{뫓g>lٴbgr>|/Jb>cv>v>el}z>|dgꟁ>iFQ>'ԩ>ސ>r>ʙnP2>I>Ij>˺>ZYg>67>a$^>}/>ͮ.>,8>g?\JH>k>8> sy>K7X'c>Gpn>+>Y~;"6>H>J>!˩>d >WV>hϴ>u[ux>]J> +>ꙓ>$aμ>/o3>9=K>?$>Z;>4 ٞ>q>$W^>エb>tZg>Tpmc >TW>BbR=E>D|>_Q>g>~'6t> '>|[3y>eq>˨|im>oq>YFyS>Ep9L\>}#q>N?PR`>agi>##U>2K> _=>-u>nED.>+ >@>$_>.mJ>ǻ&x>yÆZ>ꗖ1>`ooD>H K>q\jOx> ǂ>LPc>ȓ{>W,3>ҙI|>Ee&R>|}ₛ>mq->_i3>ת>V>{F>e)ˬ>dIܮ>2X>'H>/ %DǠ>ж]M>ȗe մ>h;>7m|t>08>{$>噅ܫ>] L>'䠌>W>"Nյ>qG >{8.>p9k>5\M$>:>K[>0>X<_> ;N~>BF>'o>/Opu!> dL>>9=>9>Y(p>%,[>a>3f[>9Je&U>`>K>% >5-A>~->ޅ>WhX>\ >1G>qW!d>b־>*Y>m=P,>b˰U>)/&>q\iR>ry&>Qg)>j?{EZ>t4?]Js>J(s>y~1Q>Oz>{Gꩰ>>C'b>!F+>*︣+>=_{>0I- >\3\>U>Ak>Kfg#>cI> ,?P7Ζ? }>ԃ>; c>H$?l5:j>K>@rh>&KR>n#>j!Uْ>->/bΌ>v~n>'t;>">=f^:> ԉF>Oz 5f5>lڛT+>+um>ފ_>)Ĥ>orӾo>fc>XH>>#OY@>a=/Ƚ>(M>[9->01>f?a>u1>h3>N( >5#bz^9O,<8忱,Ӌe{¤kBW ݨ<_QHQy ?>8,S^TKG%¾dNmZȾ!A\q.vþaSE/r)?Zh(gq濾Y꿾y8z廾<2w̑# E< йE@&hH)qJbP)¾=A_(7k¾[Ʃx&aþΙ]žIҢξ42 ӾO:8<ھqh@ؾT+6Ͼlt. Ǿܴh|ž;30GN{mFO`r)"Ae̴i12uYnHȾjϾ( f4;{4ѾzܾaMо)dmbC7ܨPA #侙O NEhKG(,A sQv;)\_9 jhLNBH>ݱ")O<:?y=BҾ=}վ0Ⱦ(v) ۾侵 :p[DWʾQkƾ\W7.ܾ z!澻Xb xk:YTiNӠ*aA*ץ[&cΠYCRc2få4Dx*)Mʵ). @fEFpOe 3@s}faჿ{XpՂ()Ny]NqhmdNJ_6TPeiZgT=`ʊl93 n]D0V5XK;_'SM /#s#Ͽ]%տ@q;п |пx} t l1Δ 7sc[^; ߿(+y׿DԿ(Twg9ۿf4Yֿ ǿzsǿQD2Ե-S8OGpҿ0WxH)ٿtzN!㰿Xϐ¿zԬlԮKBpI4 XEJiPU- aapԫW_]Pnkc٘X-~W@\Nykȓ_' |ŀȡ\?'YGG>h{n󽿌g˿$:ՠϿg)>M8i~2[esi\O![hQu1mip%2vJhO[K|d׆3I5ŋzVk{N'j1/PV6ׂoMFD[Iϳy}a lm9W.XwB?~>PE+86 )$KB~#'Q- p xP %CS.$f)b8O>{9N--ZLнq`#8bq-"IfJ `Y1x Ǡilals3vyqot~w:B㊾I&Jj~ʵ.V{awg L!TCp@{.^ݷJ]#VT _FRrpC4 mJ0kFx:t8&J?ee|ro?};s>gV͋ vLރ%w}zȉhE2drtsmxaPQlƄxT1JX^dp03n:M;nvÙ =󭾡^䲾*R;8%գ}?ks!3x2Oɗa46wC1 dޓco|,CW8f&ڠv\肾K΋{Qg3csAWs릜|tl/TluL#3hApLÑX*S CA#SІDB="Q]'FzTi;f&+_s]܊)w;.3G8ĢxD=Cb@iVqWl!ƿgJۿn+пK:N8ҿX#Eȿb6jδTs)yoDxg;U`IGbmyf$=y(w>аχNQ~;x>Zҟ/LtNc˰ȹԖѫ\=D1k(ɿ>Ŀ15bǿUW>a^ܟʿ3|'ӿֱ$ۿ2 |ٿԴul΅`* 㿵!*.qs%j a|:q jEڿ,p}ο5#yRԿ<ܨѿ.ش˿vDпH|տ޿L{v忐ð$޿VֿT>IпCc-ѿ.Xy?p0?V^2w!"`gK Š/7grDѰ`v䰿=wwǿ-`XrlIH $ KcĮFĴ)Q/Wp;H=urLIVrNZ&:D@>!KlܹP:JXR)FX.;WKXk3 b$}0X&tϩ_1dLJzU1aVg GvKQVې]+RpmcW!vZ ^[BheBgu?~r[T217?vDE^sR{K8BKTc,"8ho>:V"Gil{ 0np%u6"XDH,@+wq<;70-󊝡J0xCF0 0Vo(( /-)ɺ'G2 ܆d_c#ƪdٰ0s5^Ӿ$z?q.Vs/rQ};F>g& >Eұ֛!!07rM^=Q> c*?k  %]hI|b4tN]#^WAI׾iNy5G&:eEC6~`m$=^QE2Ġ=Sv=[Z-8+=kJ1>]EDS`> &Yg>߻s>~>l*>%WG>5>򔙁>z^>͆~f>:jE>s4 ͭ> c6?#m??XT?PlD?NoPa- ?.j?)2?&qG?x5?(,?;<@?`6t? *Cd? q?ʄd?CA}+?+?+TN?-+e.?? ]f;?zW\KK?eMAO?:Ʒm?VKr*n?ReX?\?~E?^piV?tn?!Ks?>cipn?ř?D Q?9kҟ>aݸO6>Ln.>d ?|m*2?X*`?E8(?2D#Md?7UP? vL?J;u`?RLJd?jsQ?tӄw?yĈ?]? ㎮Au?ܓT?–( M!ǰCu?x?-? 0?`:!?gR{?3,Xݱ?ȳ'uغ?[?]k0Ѱ? d?7;w?z7N?Oț?e*@?Dza ?ցT?Bϔ+?B IQ?XjϠ?-r7J?̘$T?hplE.?OG?^_^}??\2 3S?1ʽ?sH?|l?oR?RX?wW?wB?D)5?Νě? <5V?Bcݿsˬtɿ#ڿo!D4ϰ?近chՑ6쿆}3[HRb\NE'0l؅F*'S|`fGvw{c?͉|d$}H <͢<^^5/C.I5Ye."e6ʄB^@m4Hp P"| <.?ӒӸm̒6ԛ!ȼH@Z^!Y]⼍Sp? k2 b2CH{sF~7jl2ᄷK<׽u[Z@"̦g2Ita>bu>ŚJSma%U \%6VQ"*9-Xx EXkn2a I8Ov#9Vdp ]ss<|m 7r#aλWDP7s(̎sXy:y[qN:z䚇jw @𬸁5:* 7XmU󾿟&SG&S2X0>MXsw>?.p>m]0>vIK">_\yY>`=M>b=F's=245b=?4$== '49ߪA>2~fz>{>>.>1z6>>`V4a>C)>z=>6=re&D=zZ=X1E=oLgK=50E=rZ>wI >\ Z>O1Cv>y[ >lV'>'1ic>ϵǠDm>A>`+>s&e>eX>.$5g> >nż>("H>YFay>;3q"?I,{?1?νɽV?Иݮ :?4sJ?mftR`?ԏ4h?TgI`?a^3q?YWӍZ?$5qt?g+?pwH?E4?Iuï??Վ?+̾q?֮͒ד?^9?|( ? LԲ?4?6u?LV\?4,Q?nVa?D I?q6"{?8 ;q?Rtf? Z=jB?P?$%>?!3>?V>gȖ>WEx ~><.wp>VC?0>%>R4Y %K9%N>zG,A>>|>^nྶImǾI}۾.*!?Gh%?6I?}6%?I@&?qL~?MyM?/3}?1?nx[]??V?Fᱭ?r)Ī?Ö)\?->?;4?EB? kJ"?3A+?A ?Lb??F5B?DJ`?>.?P?ITc愿zq?Lp?.Z?m\"?-&wh]w?{QtSK?4q{W?BI&gX?3] &?z?a$i[?^)?t??&I+)?HI?q(?zB ?թ >lD&?;?K:?Q/5&?~hZ0?L|>?_IT?ŅZI?.5ɼS?'9b?O@u?t V?yOーd?quj?f{p?ݹ*{?1Y\r?09g?[*G?Ac‹?vxFE?M8G?#L$p?\W?Fw_'?Ĕ?Nqp?R^җ?K? A͙?O^+F?ݷoT5?g?Й??Fa?jߚ?gb?JӨ?oCK?||?/Sm?~?6lo?0+{?s?ޫ~c?[cQ$F?,=9S?l$8a?rHEV?^ƷC!?^):CF>]#R?hlj>_>>.D鶭>tJ>Xh> ߹1>)$IdӬ>lRW_>R΅4>>(> +2>2p>Yd>k/>{ܰ_x>E>Qmb}r>"0 3X>oc@>}P S> zl2b>,Ʌ>*r>`>ܴ& ?>>> >X\>&>(@ >󁟂>fcU>ClK>s)zU>&dE>w4Tj>/q7>Ny>ze>HDX>dkzm>M>M>5^Ge>Bפc>$w=i>-F_F>d Go>EWպe>2.7E>܌E8>:Z ><̮>{q_ >r;ؿ>v@φ>r6ë[ >'8 >>Ԧ>>'$j>|*) >D> 2>\>3Sċ>݈of>V8>%m2>*>(X4>V/ (>!>D2h*<>>se3>S;>ptɡ>\O.>?''>c]ֶw>?> H&>Nd>!%2>.U ?ANӓ>f"?z.~>W?cŚ>eHO>W)%>E 0>*(h>c5>f>ʵC>7A>q1(k>n>N˷GiO>uj>(*Մu>4ȊܗLS!(і&꛾Џ&ľS?#ǾXc=Ǿ)$¾TJ/4 g|(F>Y.$þs&B-5ℾG1Ŭ㹾c~t+K(4¾ncP^ʾIྣiӾ#dՎ8nǾ aվo$= a![huX$L%TD׾ѾNLƷ` $U㽼qk k+כ@5, `Gk$kA~}UiYdO& HOưY.P8$>lG6@=KӾoDPO<_{]Ǿsr㗾kϩᾄ܄;n*3T&)^7 +,*tQ R%6t˾ez)ɾ"հ1V/6%e8߾k8nbQ/9b˷`wVveg3ilSL] u(< 1@$ީ zc޴A`63+3r26c#Ù12xZ *4BÇ?(Y|*/|ΜIIuN`e;rUo`4Huu~A3!t(O p6NcOi]cY(L r5$r3}$#);YPɉ*Јyk4^퇁4Կ[ϿJĿ-_=6eÿXdKPպ|XǜP,DsPRX/F~A0/11n/8ShAiD($,㠿oq+~촿]Ŀ7N) 1>ÿ{ʿ(:I¿0鸿6L˿ˬ@x׿!Vq׿^ڿl *Xѯ"DSΰ5%`翅Qd1Dٿ?]eڿH`Կsgп(6G̿]cǿ"ӞͿy8{67ۿj㿘3ݿ|h@,3ڿaeԿA"ʿ^v藿D+҈%dϐÿbu`.^LAի|?rZ/uqcL޸3f躿2 Ey.lHϒWi7{">Kk?*C>1!tæ : j`:4 !?~!I;0iGP칞WbEWq\%;+U]іfA&|w#^2Gw\&zMͅԅ+ՓW&).&a'}[arۖ3bC%Ww4(gВRwv VR=FU82}>#dr[A4-fнG;Y=@n5QLfc)v +O 4Ikk,umd1a"ko99MsAl(@(3ha|#4>Y G>IﱾaTV tRrQkk`>N; <3i[B>򖉣4GU b=*" =5!sLԗtV>+y_P}y>n |E>K4>ԍq/'>-.?ٞO?V??^Rl??/~%1>WE`>WK1?ui3!a?FƲ?[%2F7?#ÆʇEd6E>dω #>Aee >ci>Eh1<>Yaf>7X>a> :r5>xPN!>=x/^=H=/妰=2^+=1U-=m6z=^&f=)T=It=Ф{,=H=;o2B=}O.=#`_{ =^G=xX$2"qUyZ 'j6 !垆m.tÐ1~5ֳY`ڬ#WL·~0Cam-{3oqnoPU ?xBI]L\L\H_2uloomX5M.:KxxOy4g 6ξӏasPjpXysǡiЂҾMˏ5@wݾ~>پ+5'gb`zvSEnQ7 \5ԎiNYoYYv,eR V#! Ծo&Qþ$ρt>o>6>Jn>$yFka9>o홥ހ>@r>y,Fs4T>gWfZ>E->"3_Yd2>5U >^>7C>-|-KK>k >k>XҘ>*&>ZX[e>2)^8>3(BU>V>h2>ާ^?х(>{QZ ?i >B?z$?pjt6>^1?x@>Ñ>D'>)%_a+ ?W T>2^}/?8?JKQ0?'g?ȶW@ sLHUTN ZUS*o# V)V_zzK2qTe5JJP{v[kGr韂uWV~ v:҂`t|GVЧ&O#d釿XZU,ĂoxiWb^=h񚿶I!572˿^i0m>Qoo;>'>̂>rA>-KCoB>DfQ>ƴ85>v>Ûc> !ٲ>gh?>?6F>s=>Z)VR_>u|9A>s5%>ADY=ʞH乨=Kq>V0V&N>Z!(7>:4>x\&=6GG >t ͠=C%я=a<=g~=l]=h=@j7e=GGLSz=+7ERD=]Kc"F(=|K"L=*Yho=+b`=جRg=?s=fi?>r zW=\e@zi=laĪ=  >*%=? >~P6>/cG>21[>.!^o7>[u>?/p>7k[1M>/=MY>#.{>V%>z_eȕ> J>},"L>`w>V)Ϩ>-8I>  Υ>ʈVC}P>C̷m>ov>?H>3Qou>/>)`pY>V[CE>5(Z>!5==dlWL=d=F:9=/N+=Hp@r=|&ؑK=pHP=jZ_z=l0!=V=y)=nP=Z<*= 1=#fl<#=_=>=&S7J7=]P =AЌ(=@"(#F= ႏ=2$4=?ټ~3 =±C-u=5'┩=ZN = z=T=eK=hx;9=XS%=ť>j́[> h>t}az7=F>r.k47>^O}!v>ȺwK~>~[Õ>@8q>ߵGE>Qr5q\>U/z>}t=>tvoVrZ> >n@ӻD>m@ >IJxS R>kAہytƁG>5 {Q>iNhz>H{yOx@5e!~`-Mwh>d(z3>~c=Һx>CSo!>B)`,=ߋ=oK&A:W=' e5=.[=e=A=69w=Fs%`=M2=sie¹,=|nN=KĽp>F#½YeX̯3f( Cq^Ґ[2 G=BV.ozM3>} Xk8+-#j= j۽'fTĽvǎ,*G)2?b[LX/Q]?"냾:gs] 4ɞ꥾m`ﯾUS.Q['<C9iGyUG [$ԾSb˰f zJ]Sz x&)YE iN@a][Gm-`@M'CağÇMO*=W$*圸.($kg7Y$LRWzXmm9PԞcSSdƐe{DmQVL)Cи=渷8q7ЗW4`Rbie"u}zD~iP;kU.#Kt]-^uIy_;ÒGpbGAs'3! ѰM=J1L{zApXFck8kО1뽥qg{9?Hn5?$=՘L ?J[>'>.9f?Qi0?SR{B/?5)?Ux ?oH ?Ɯ=+> (Z>=r >rz? ;b> ]>Y}%>L> mׅ-X>U^{>А6?2J$?>J1?{ADQ ?Ks >Eoyi-?B??m1 տt5|:XxֿߙjĿۿRܸyf%VPV޿AP+J߿[;i 4Gɰ ۞οD*jqÿBozͩg<̀ (F"7C5ƭΑ{%ף1~?24ÿM{86WƿfѻrqǿMԿQԿ;O}aNzǪ4wSW^Wb꿂{%G6Cvpu}5NɎ̿b#ÿa51gRJR=Zp>)6e#}$Sko5bLQ&E^ FFCRTGo mgofpe\2P΅X?v!2_3I+DO?G-Y$\b| ]ng/DmIpQdZT^cqQ[r@/@;ʧyqTؙBso֨$>vB/VGBWܐ-B(ά&=7~)AFIT *ѓj UEq}ZiNL۶e^5u5O{$oyL=3@oz &OGgI4\2[Z\`mdqϏJhJOBBvk/3,"JCΞ\J--g7T5`eތ1sg5`oR퍮S>jv.,-Tw)9_%@]偿Ir>-ŭ㊿3G/&ln5P盿64'GnW 뫞7f M~u5,A׍Tjd@Qs됿2:_s=Q:,Zٙ ۈIW,S$ȣjmV53eGEƿƿЮnsYxw#}] "G 3Ju32*{ȸhlW#.S*lY0|Zџ5,$Hx{0}zhVbP>P"^ZݵS[EL^B%boPf]D!%J&8վ6Z(4j~Ӿ&5"m ޕK8| {3˾(0"0׊שD*>.M>,d=>#0E>݁,>dg?>K3 YNi?=r=#N` K>nUh2>TpTWJ\+X|D>x:xY>]]bÇQ>$ȼ)Y>:G V>^C1_T>~8BY>4+}a>g>egm:Plb>M,AT>;Buʀ;~Kv29SyaR8_)xKyg}/kJo\k⅂<`LXgӿer\@" 9hc1L`BɠwwM@vPOg`a;qNIw^hqto<)_~Jӥ۟𦵾f.D+r T.dȾ(Ss־#7̾_X<;ճݑe5%8*P֒/|ߣ̫Gľّ 4 y|a Ҿ! ۾7:۾Fƌ̾}C?5ھeA'Ӿ\HV龘8@$p@?)QH{3+͠1X,(ྂ|@"Ue1Iby9&[?&*DTN)d!عWpz{2n CDd%cPn+!(DAn*1 " .!} @Ŗ?3i `3`j(U m~Z"پuվ9Ezr޾-&E)Ӿ%/7о[L2;Jx#оa˾ پ]ӾsjѾ3ToӾ0YFξ "FǾrEQ˾"$xƾR_Ǿ%FB[žɾEƾʾQ>kT ϾK Sx˾-:7پA꾍X <龇X־{*m"|̾dLɾWI%pcѾ  پ~ ;!=_;'`7Ծ%ƿ-ľxVľ{ ƾYD;z[G_ʇ@=4\,, ֠bM`oM> >mǯeT-}~avOUwbSڗo'5xӶC9 >潾 Seɾ hzyx5ƾqUξ5ў[ھ17B}Yپݾʝѫ辡5rP;qw]|Q4ߚ8{Ly_WcI3ɾy]p0 ۾<'.ྗѾ*.m¢AᾦԹue$U)Hɢ3 N9fh9I?);ž!,Cpim0VHh&W#7߅FfeJgƉ?ApC2d ]`IA7>|\!XRh 2u>s+̖Be&yn7@꼿xy\r! ʺY P[hX>lPIZ6+NT]fw豼6f GΫ=l*=Lߍyp3Dy?iݼ׿$~PϿk+t~˿VYٿыh=俎7>hݿ%vrV$}v9>zwYڸ%pֿAoarsοs`cԿUs[ٿrYmj\⿸K<bؿq̿FP2}˿ ,^| d::zֻHOPU6h&-Q:BLڿ_qB˿&nao+O✦ⅿWQ~Vbўe^jZ:fX"sY= /񁏿mӹO?{3o{e@?=񥛿>^)hXz$l"<-L8ćƿ;Sy,HÿBӿhUѮyȖFݪ̈́IǿYMkNv3- MT A4~YL\Op!Z64 [֚{fOmxV8/D?BxY*ôSIX Qd-;J(1Rdw//E0<^mcAE3ō+*G󾭀:P!2V ,{}ФJceY8,Hpo)vT3}\:HXBw6;_rԾyjO;+9횾c,أ@_uMYIԑhzX_VtAqhM&83ki(ҾW[#Ɓ%A]d ik0y-`WCmL\vLN\D}3RmJSVaaCK:`v$W|e.@mG៴gF/~ B*1 X{:ƗO*hKjjq~ƪg9;]Ix@F,oJĔ~6pjeWXN&y% vd"':^X.yąr[> P3d 7>{d>!2EQ>WlݖX>borP>o\B>ҬE>=kGH`wӶ.G>69D|UkcȎ%\p2>B^!W&LE$I7|p<ƇyzBGzVAn.ocgl)a޾;>-Ѿ}|1¾B.0؎ 8Bo_0|ݫ&Fe+sHpf$eQ?}s*؆-u/QaZ"L$5^FnZfUT^zlVeeGP!Kze`yS$}v\uhmVv>=?pcH~_{ U~)v(`9w0uy&\>F eCE>ݓK> O=0r+Z>)*R>ufgY>e6]#d>rr`>HEG? rV?4d?oJT?Vu?rSx{?9EV?SDS?*'? D$'?{nRX?D&z$?ZNΒ?t?7CE?yZn@)??:?z>?@W?NR>?Qy­?RPo/R?b?F5?|?T}۽ʹ?k?%L?b\?j=r? e3`?fhv?TDס5?'?,~?_??-c?ːL?9C??aI?(lZ?eum?oK2?}ټ??>?kY-|?l•5 ?'/4?L3?Γ/qP?@?M)u?+mпs?#fw?#?@H=? V#?[}?7N3V?D˧?.+?@A?8av?qD?H p4?2?b>?,Ɔ}?W`$?SZ?Ձӥ?s[?27`?k?빅j??qP?b?OϠ?p?e4?&g?$rt?!?73D?lHq?E- ?@X?z5?>c\?ih +?@@/?}/pv?Xe?u?ɟm?껃Q?ޝ7W?56 &K?-fu?Zcc?h;o?F1?y?E)r?O?ưq?MS]=?dU[lU?9D; r?"`?z!s5?4rb%!?"?8㳜l?rZ>x>**͆>>Z4L>Ȃv>u>q46=I3>{VZ>qyP8=:/="H۔=\O$|=Bd=/ 3=Nҋ+>[+(KL=_ `>~V>n-?)f C?5 %?=K? 1O&}!s?gtK?WYfOq1d?m? Cyr?Ke/?g)ز?E%"خ8?NXcUb?qUp?xC ?'?&o.?9H;??~1?lb?ˆrN?}pS?۽oAX?]y ]?KjF j?onf?UQw?d$ 7??+eD?B@fŀ?>LW?2̊)?x ?Kx1I?a8ra?Tbݘ?V ?|ٲ?3?\..?0or?d/%h q?9/?pb@4?fD?*K?蒆?-z?wj#O? 7 \e?|?[EA?z +։?x?njَ?@倃?gh?/ p?Єܼd?Of `?1M=?3׫Q?qwW?b?)D?t/Je?A!In?6Sw?XCx?yR"?߲?/bVv?nl-?<ň?:|?㼴r?`jm}g?G/fIG?&+R?0=]?hϰb?"y[?Q++c?"{?c*?Ϟ?r')è?y]"I?B -{r?~V:?zqA?Pi;?U͠?7g?>Wӵ?H4M?ڲL ?)b?m6s?$&G?f{peH?? V~?dI?8iߨ?W_?beG?Mݿ-?Z ?a?cw$?05gyy ?%8?Ï?Q~?U?H>?qÆq?゠T? 5v8I? z?Fwh?t?7c?Df?.`Z?]q s?@R?dqJ ?s?1Ɇ/?"!?lF8?ڃbu?/RhF?!I}?R$_?@=4~?+?fU9;?KLEz?#e 'Nտ`9CAz˿NK?g%e?oAhR3n[eJۯTi5Ɇ-<|Ԏ*<ѩU<8#T-'=[J=UćS=$n=?D_=ML=Heo6Ϟ=h'=%t}=_>W/>Gx=w76Q=(sf=Jr=>M*=bq>''>5!0>rFaK*=>@m]yR>/N)>(A4f>ͺ8>cr˭]>>(y@>yF>>xg,$>i >pakG=7|-=T,6M=8=KM=$=b==r=k=. LS={j=%Nc=J3=H8IIW=@s=&;_Α=19Ԁ=V|R=&!9= =c֧Vh~i=pK1=j=!=􎁿9='PvhX=SG#{e+L|16sg]րzmjxAP=J0#SQ=BI=q=$|= g+SusGh=o@g=V"v=0=(6z~=`:=b=tC=^vy? 2=}T>+h/q=jõ=jB7 n֯= -Ir=L= q-! x=I6PF.! u݃*#q,  }Ƚ^.Ľ?}gmxҽ~olν] '}! Uw,|Wݼ?V6uC^6>(ڇ](9C齡axRQRԫh/3Wc~ MKyZ#.zHps4C5?A0Zop[G3~b()Yw+cj֠j.a5yw4uEPhO#'q|塨;Yglx͠4% +\?aQ$ OY`$-gj(MxJ>wAUƜDC?ȄD aunf FcZٺl~.vKc(G_o6_վf$_w%y nHl+7J£%?A\!CfOs¾-6b܆+\Ǿ.徐!a[ L +־E<C] I0K0~PZ@O #DU/$Kf%uBEgy,)IlƾLcWQ6#fVvȜV)`c *]Ծ$,Šh<>ƶjl>n>H\]H{>.m>E9u>V!kHvi̹: K%y46_+V/k=޷!K>훒g$>*kFX>Ytkg>KgD>FZ>.-qi'>B~Q!>L_=C>P ">J-<>9A>xg`>>]Y>Sdn>ݦ9w~>lǥ>!t2v.>斬>aS^>* w/>K5>,Usy>Ea>Jq>nkÒV> "3]e>#>Ɔ>V >.t>&Wy>`|ɦ>\>fhS>0>USU|>^?q>8j>iţf>]OaK>`e?ްUņ">OnD ?ɒ=?)?sl5W?NWMe?v.%:?RH0?:^r3?Dd>?[D?-|Me?>>DZ ?a-\>h;S>4JS>\>݉N>I(>aW r>e 8Wp>z>)[>\ B?p{ ?E ?nQU ?'/$?$yK4?8?dW??yf*?:t0?>?,+ =?~6?-X%? ?jz3?m t%?+)?q؉o??km ;?9_C?z;J(?J8? Ih%? uRX)'?5?3?QbO ?PBQ?7hs??^2G>HUe5>굉:>F7;@p>FW]w>"ܒ>,KbA\? S?RK>{<3F(> 9q6 u5+z@+لJHS-I[(㮳mtWw2?D` *}8>{aNsN C^a~h|GdaV9U:^H9]詤Up|M^'.q/sa0v6 tsJ3SU5^^[HDu(tgg|'c*VЫ}LZ#fD[ BN ;$gͥ U5ZHme=pLZ[hs" ]4.2Y2U[c'IjIlQWHKdIbǍ2 mxl.yyht U˾qT*X`zD>5O臿ҿn,5ƘBC衿R;⏿j_wv6_OM 7u7OT듿A] }Y(vxpo%}"@)}zGpzk>ltnTyD;'r]*BΆΥY ީ3 g/ϝ<菢|Bu]yEE᱿"^:8O4L:W<-¿}}ÿC'Ŀ6x&̿j Dp>aZ8Q> wQ>ru>[W^>LC->Uʈ>u>v>Lrl>-8>Z>71}>u(>4Vn~>jD>թ^>=j>F.W"><]9>wC>N>"#b>o{z>U-k>k d%> TKῄ>Ȧ>Fv>P NhN>8%Xg>$!~>Y0|>jHn>)KnfN3>TgB>z- ,>Nyd=AJ 9b=^x==Lc=ZǸ3=>}[;B>\u^K> s|>*Lv>/XL>S,iS]T>+ST>6f>[Xh9>8Í5>? >!T=OG=z*ܒ=|~={@=ܾS>=J'|=8T*0E=a=PBφ=5=*Pd a=`۬q=#z$ޮ=$9Mm=Z=Z:5-X=P%u D=m c=iy]=-n^z=xf0Q= E4=tfئN=&w¢<0.z#A= o,=oeVK5=S?p7=Ɏ x=H(zN=TO#=G\KsD=|FI=S:p=oQO=˲=b l ={A=%Cd>{_!>8dCg">VQ=lY@=.+}=PnJ=sz=f{E͓=-*2=H#E=O=.͋ >wDM >vRm=Fek>}6۲>2>Éu|>y'Iu>+R1 >؏In>T{8G>yNWf>KV>Y< 2>]l>xco*> fۻ0>^,R>C > zpO>j>Չ>7[>mlk>-KR>]V3>o=ͷ?h?B*ݎ>\"<>Ղ!>B-"3.>kcs@]>r_~>*>73jJ>kH#4>ck>C֫h*>oi>٨^>,> \q`>_6ȏ>}D2*>o>dMc?+>iZe>lY-'>VϝUN=\:>3ۯ=5=ҧ=;Zλ= wN=O1>= U=J:={G =Dc =#  =:®=qcf=o=*S)E=N=fu `l=u=Bbߵ.={Y=m=vGk{;=%K8Z=5jg\lq=v U="HdpW)9= 29A=A"5/=jֈ=,ymT= 6FJ5=Nj][=hvޝ$=lk=R֗;3 AEb}F F<6Hy8p:2ÁX=|KyN=JlԆ=VTb'$p=Fƈ=*K=`=s=O=rc=<ȕ=LGڙ|cv=E߫=Cy=1L,ԥ=xތPe=V` n==)=Z7=<>6Q*>>kXŏfR><;|1%>X`F=>EY>J,=#6 >B4ሾ/@>,$2>CTF>z>a;u{QQ>o(-2>9>ٶ+ʝ>EWed̞>w89_>`@h>‡ʞV>؇>nt>B->6>4I%]>2>w>v\9½>Cr>߱߮>FNA<ؾ|s;d`i^w>|0&u>V>`ed>(aEC>mxP>o9eIڽg2Fr1F3[{G&L@6+]vEh@>A^/!>jv >O@F=A=}9>9k#>n_>B8!8vK>blw >` >ց(=Z(=DӴw|=a~)~=E~>3(T=Ɩ'=.ag=ׇQ=,M]==X_'=mĉ=Hi=q=i4[=!=*,o=}U=TfC=^˟:~="9= ,n=(.\Ρ==PAQ=ZY=hy=iA$Ľ3D%[C/xpTȌB9Ȓ=iuP=GɈ=JXw!$sP0GArQ,GZ'@ZBxeDMoOcn2KNKČl$.&Q-+#6ъ:i6{#&xO۽6uYTA)= d=1Dy=t#}!JIӽ-uIMjtt{áNg=|Y&ڽ=Ziu07:RmG>t_] _IU4ܒz˘K?KԊ;fvﲺqb!OkaKBDc%hk)/xVKYƵM`оQpP.0eʈ6 ' u1i6q@N lPٹd&vg W8^w5~qrV2T`HUFmmEk$yH/%B龔6A9QO8 ݙigA i~<oN00)4E,yI%B)؅ٓ5WѾF#dD+ )"J & 唟'd帺!&H9jv.<-{0߻%'G2U:SRtY\t#}dU̢2_RyY6ir'f[7 `yTDavd]6qܗ`ՉN[/LՠD9.XPcnM=v]lʖ,k_B;_7`4^X#傓UQORquA*"c7Z5yx:w:yqrm CQr>Fxdn䟣wgWj>5Ğ 煿O'ky y5?॓rhzř\w)PLT}Uc x_ qA0BZf̖EM(w.bʡ(vܼ'E~Ivrɚ ԡi|NO:lij ,)@qK'" {3ǿL檲yaJ;40Tg[c4Do2T5!:mKvZpA <:-W7!9w l(8\e*.vx 7+B>)fKnrYO*[FwYJnƸfxyF!xu^[45/r5낿fl TEux{HeRp2Bk@3LRgD{zWVI@H@,SO+f}#!CsW6ҳIZkԜ1$cUhC| $ߞDit0C9hk;cx B?5#D3|t~5// 7C2߻>'4j  EQ*@/"ھ@r;>!N>~~ >kE1?wH ?oo? ?1U ?+?v?|'t?qVC,>E{"d?5FY*?[|?_(?Q`2?1+ H)? I?=&?z*?'b7?o0?U;?{CQ 8?޴KG(?%?D?CH>|d>2\ ?ъ ?0{?[] k?56 ?x11>8$\&?NPk>Po>J?>ף=>d U>򌡉>vF>H~V>J.>?ÿ븤?;zj>7+>)x>DIt> u!>"8>"< z>+'>]ŧ>|>jg1Ξ>@xs>ؓ>pJ`׹>1&$V>kR>d>z>r7#<>/w>RvX>><'x]L>p?>M>5}>Ȕ¹>*@o>rU]>Ow>WƘ?Y ?L"?y ?91?;<^H?T!>4?M!F ?Rv?=?2Ya?= &A?ab[&?-:>?Tt0?&f?CK3!?' *?W ?jCr>蠙f?΁?'&?}?HJ}!?*M}?:ks$޿Z{qQC7ۿ8ҿin\u/ۿe8ο 6ч ӿql忬ݠ࿴p]kuK'ݰ志 8:B;} H&ssNn/kd 3uֿH%߿MȐEտJUƿz&ÿVUѿ}1wԿ+-ݿUiK$Qs$ֿGkԿn;aпU ƿ䀦Ԙʿ%1ÿ;v(¿ ѣ y> uٲ'Z_`庿͏;0LE(Q󽾿;=D&󜲿^^Q!~ꕿ\:[˧eS<,+ˋwtԶAſw`Yz*ꭦʿ3CἿ|V9r^Rҁ=TĿUu2KhںC4*|F¿o&Y`˿rk6 ҿOTڻ<ؿ-ѿ䤉ʿ\Ϳ οEPLOٿa %0Xe3bwK#W}_ؿpMX|Ƞݘ/p8qeٽw)@sb7*=4LJ7$o!濿d\oۿL{TfM¶eapϋU sim $fb@mJKMm{P߿r茑ҿ i52ѿ߬5/vۿ+JtϿ!ۉSĿ5+eUǿ 4Qο44.&ȿǀسa>¨ˢpS3`gh]aVz|ȈxR/w&*wȌob,X&0^ e%z )zbYZӯ4^m{B9 Q8Lwm/S#۟USy><K B+Fq5|^)3D9Y Z;'KLZ,Jc  W] l-\+@-K ֥[.=Fߒ |0 ӸOAZY.zS>łt='ju:w]1? Tӱ :/W"ɫ"7IUG\ h~,#A27$H5]==;'EJ*%5|aI<*BG6-C;ÍBÍ$DKH'eKhCXOl]{K&uDDG/,I!TA>bψqaneL lW X\]Ngh]˫f %qw*j^zEnknO 0f[PVgp';N[^iE0w`R T@9gW'F_aV:桾.RiK2PUwQRϊP;TW5`E ;diEyeekr)/eEJEj~Qi:7\{YW}]]#~ѹq@>}knvq\j*h~!"wiϒ@&Sc-8ޛxskW..z*(o07ja(eaLXK=/:¹C)rʚ%*(Žg֕YlM[\ Z`+htZj꨿;;)Tg¿9c|1A_쬿ګhtx:hV׻q?U (U1M(+! ] ukda R[O8r2v'oz0R߹<.?AwF0Nվ`gj h%YD& C\$ ټSǾbU5ӾFϯ\ᾟs{˾LƩ S˹TWը t9d?(5r3Qѫ25R믾'aʾyƾH¾X4+K`gЎv}+ y[ˢJ6^y~g@Ѽb1TdGZ-BPaGT}q*79ͶqĨǙr'<< W>%=v1c:!զ&f?pPUE !Rm[8#H!7RF+{.uw+{qEB&}C66eSy00>|s}h7s.joPxjM*LQ05iL1޵b 3WHV0=@ )hV ,hxR Rl $}t!@].O"5azIF>P8&0:!qrmE4/ *"G7z˒MCLcǭ\L6ݤU [(KREsUG+}3 nxPZ.QmI6|czV捾TXpǤ(*+5Y|u]^ F{ռNEbeԤ nQӆAA>VªVyќ%FA پHEž&;-ľ ھ"GӨW//XIZ_?c ĒRjv9BO=\=4ѼRKؾ+ FeȾQ$0ʾیk˾i&;ܾA;4zɾ8 k' P3 .;(EןmԐI)^ )`@派icPB y8:UM1{lբbT-RǘGuS N)>_Mm2>qcѷ6>Gy)F>4E{&A>n8>‡*jV> O>2ϔR>:K>FYC9>`F>u\x,5>P> 4D;'RQH:cOf`Y?<ꉸ&<#0܏I>L>>IwyIO>-at(Se?Vq]o:=>!S>T![5BV>6X>}UT>+GR>~>A4W>M6IfQZ>]>ۀ0]>@4hc>ts^>̤ =_>_mD8b>t%BX|f>0+i>ⲷh>"ڄwa>tU;R>rIK>=ܮ^> 7cW>0WU>m +J>^K=:iɗd_}2oPqn/~,pw|FvWlf 7w\fc tp!}v\7֘#l\Ldn&S4 cUoTnC ze}ɦ䀾Z_mrriS"(YI.,>^yƄ$QwDWJ66f &;S&30=PВA<$Bh3ٙ8LS 4+虾"P5B9gMs.Y:.9B\]gᗘG'na}kuL^=?򑪾P4]E}mʾ讚URҊB6KWw" hMkrc¾ѹEsʾ'yݖξ 'kѾ@.nnþAy-W 0ž)Oqpd9"BQ qØ( l6ڂ@P茶 ^&{ 1Y[%:-ihWi-\lLbaN-n?;ոR<33о?:m¾$K.־]r!־sץKžF[BPBþ"\оӓ ־e/^O֬,*e%P+-ZCjr 5'Ϗu`~Ӑ ;jL2"󾎲׌g ^{smx+{nqh̫׾is پHL}ԾagKQnrξӷ{о$;'-iԾam.ᾄ-f`ᾩ9gԾ2-\_Ҿx_`ܾ.ͿӾhѾKuʾg^ƾ$ľL'þK ƾHξYгmƾGx*[nƾ_`XUž3¾BL.ž=h֭þ{Dfƾ"i˖ƾ6WȾM ˗˾ bȾ?Jɾct'W˾ɾ[,ǾT .+ɾXgɾ?2̾%W˾^qlY̾FѾ4ỵվX$s&ӟn@2mVj+⾌Wt{꾐9س׾M+ξCkCHؾ*+;ft&{̾56; EӾ5D־ѾM(ԾBѾssɾ6aA/žj )8ʾFnSoľ,JþYִkwþDxžʾ<Ⱦ+~ǾeN&AXFm·~cx?°n}&JNpȯD>Wvh쯉ɩgH-t#@󣾨d QeFGa{RD@ L%Z혫Yr1,Rv;RϟE Mže-YV۱$>׿}cڿ)\ֿ+bWc( F٭'vtK͊$߿Յ,99d޿YP1׿5+ԳKҿ.ٿmҿ jɿ˪b^vÿkؔYſHPƿu%S-ſd&岿$rHS.c&x]ךvd¿E)45п\̿ѿه }5^ؿ#=H>&1^Kqyܿ_ b&ڿTB:Կ/}HԿy 6Ŀ'Կ+ ^ӿ8VFĿwBPQDŲnVX˿ZNЗKr i+wÿKJ˱0&P;$}ۧ{zX [Ti.#]McG&FjرT &*鰁g{;t줄`Wc3mTQ*톗FĐ\'쏿%ۻG?! fX4Q\b5\ Y(GFOtT-/h Xa[؊-BaV/qHvcH8ဿ:_H|FOTҏ imX-(òtVezmhwz\j_>{ :⤚^ >򆒿٥32⓯,hzP$̔ioSM|ʖiYH-;xjc0*m벿ֹJ7Wѿ\ qʿ OME= * \}Q+4 xƿW(\̿hg9aĿWԿ=qLֿ8ۿZluտѿp^POZ@~-Mſln̚˿-sl?~ UOx *jw=92G7/5⿿~]ɿ;4\j΍d!aӐ<Ģu$[_jr:x蓿1l y|V t5Vs< PW\ @0f󙖿XaqJϚ#y!]w2P]efxdY& u|pAbÏg;tAGD}gmqwwrQ=7+L}z2oyCE1z/ Hq7Y`ooYV۔h9p|ܣ_j} af-FT'WL~d62Ftq0Q?l!aCa[Qz"]X֡S7@M:wWD T;N=7GeKθBQGqi~KWV~ۍKd:%Cux0`DglaIHiVxbX:`$`kTnj\שG*2*TT]cם&QMd{2;n?pX47JV5NRSKUOaJzi= k8# L95t֗V4Q'P\);W!Cy9 4´VmcIm@51*&bjA&:Z4E'6xA(~23OeܛFЖWq;$nMhrb.)xIc)'BV8ZSa#4G{L^)_N5NFvRKݪ=R|IW!e"2o{"[I3GQZA|RF"G _W <;jO [FW@|XV7ux[^W.GEN Ȭ뾎LþkjgVaA6 _ѾT6оoo Nwo> %d奾 uϑΐo: u'kTK\z ONpb˾r򫻱[ak׾jk٧؇ܜYNWMLN墾l{RٚL3QD>;#@s#˾@5ξ/{x6NY0b}ts_ݻ+ܾg_#jS3k/z$':rCxI GDX侣-\-,H/ 5;A+8WC:.-Yb~(X cC45T$C4#`h[K$Mynq qe뾍ئ`Vk+^TK$7Ѿh{ѾCp|0?sܾ GӾiz[3A呻Y{ҠՈpDӰ$c_6CEk쓶Ոþ"j0ھݕMǾ3"k׾'j,wGPqOId|v[wg×2ۢwe#֓xtd3a[ո5glXs. c_7WHmn\Pp Rf# J`9[U8@b#T0p(<0CYBY<%32[G"{"of$/Nn g3q͏BcHMb3HPE޽:Ѝ7ۣmmdN._R2wDVX/ipnU}ӻܕ_.cwۭ{h*;LSlGJy2SaCIPR0]C0{N TfnnFbp#^`u#uywd/~:cN p/~L enxKj_24[ ړƫ7OZ-7..B<)x,2Q-*8&+5Ynf+\6V$z>đ㽻]*d8X%P%9>^]gr >e$*><{1>>f)V>>D>S෌C>-+iT>VZ,"X>i$ѪM> Y4G>>t9NQ>O:T>OF0K>lD>5TM5>%>@m;SO> O2>MQI~L>)(WP>I`C:><?>1۠S5"W.##{GSecuRvrh">c?W2a O@;l|J;I)4WQ7;aWnj!1]G|ӎ;ځ25pJkz&er6. V*%yCXi6i_FȘ ḾC=8 suy$s[\׾{Kɾj-ǾT5nݵN{I:˸3DzϙKAX$5R3T8$٦M}l hH[ʦYD݆\LvK,vAx\ّz 9K:k 7rzaNs2D^Ks~3Srh~+{AmԿbQ_Ba]Fi7},V{<h6u1$7umzdHb(HeӖsYّJ~^M'&񛾾#mL28^ЁU!%X>qaQN>z'Q>pꪉjZ>.k͟LT?>e!-8ӁDW>+ /P>OܭROT>^Z>'ý\>W8 b>s*S`>w'H\>t}[+U>G]>< `> c:Fe>xݻ`g>p =b>=uld>f&Qgc[>T8j5?NJe9?"t@?@D?&%{,E?,?T?}Xm%\?[|BP?ccTO? 2N \?^?EHd?s2r?˗li?\ZH]n?{b?2ITk?xfX?sw?9= ?Ӎ6't?0_?s6?_>p9?IKQ?Ni ? ձ?D>=?R?z?m+?~-As?G 7?/"^? ?v6?PQD?i?<%??`p,?I=v?tN# :!>??<Ƣ?qMѡ?(>?E.8?N˜?AVoJ?U1n?$??y?7?C7!?S~E?:g7h{g?X;?="?Fk?Lb{o??.&~?xsw?Ȋ?2=ǽ?l ?7S?ڙV?YT~?ƮR ?d?8 ?0y?[?6u?c t?}3?]=A?+?,,uq? /+?-C4?t׽?FHUb}?\b Ԕb?L5i{ȿ7ӈ**ؿ'i/ĿӕpӠ?@ph?| s.$? +?eWlc?R\|,?oQK`?e3?,/ ǭ?cg?z))i?1|\A?]e?6R^??Ս8o?Cy?!?}˕?<Ы?]v8Q?d[TL?a?N?M~Z? Yo4?vV?&?Y#?NA!?6L;D?PG?Å'a?Ґ3ځ?x} z?93\?'.?o5w?'?wi6?K֠?py?>eޠ?b?2 ͪ?/u?ISn?(?n}?QR&?6ԗ?K^ ?Ynn?p/=$?WO[?Oz?ӫ?ky? )?c?)? ^7?.^?kLܪ?/̳?]ށ}3? "=?zJϑ?e<?l$?ɶ?s w4?g?,`?b*k?wz?-M퐢?FNR?:d?=.?Q ?,b?AY۽?yyg?1?po`3?:] '?9!k? =Ja?V?i15L?x7??# >?1ɿ:?$PT?q\?\|u?\Aj|?Sl-?*g\?ϣ?%S/?/p?}??bU?[-޶?uN?J~?<^?Z6^?*p?}?[?@,'?7љ?ݒ?кMy?p1?S2"?,%u?p? ?y?@V?Hإ?:ؚc?|`6֫?)%r?*d?2q'm?*4}k ?{O׏?8E?Ҩպ?兩4?Ԁ!,?̹?%Y?(&uk?RetB? ߣ?lW+?`5?]eՆ?7z?͹?2-8?&`Q?g^b?ϗ.?>?:JPq?6&:ó?PA:?}G/? `?,4 ʯ?R?)Q?[%@?:?K!÷?~ J?BD|?5/F?QD?Q8N ?. ?ї X?q Z(?:c1ྨ?~(??@9n?{z?4;?#\<+̓?KU䯋?xh=?eSOÁ?#O?tɬ?zb ?lK?ocl4?W??ɠ?ZϬ? >?Ϙ?A?h`Lx?6v+?]v?x+y?&k?7qc?I 3 k?sk?Dcy?i!VXy?nzZ?gG x?OG# q~?y ym?Ty=L?o)sE?x?&|6jy?pp>bh?ۜY3r?VOp?gd?..Xa?rvߠ`?Ig? Hi? [qX?H9H?tcU?j$jYPY?4ιLK??AHdC? p=>? b_5?Lh=?w7?aeB\K? cY?)b?8G.L?tS?zQ$[?7D?%!>|>6>tn >9>>9P\sL>n8c>z> ߩ>![>.8>10?^]( 1?4;2?ވx=z2^=N>?"9,>9`>㣊:+@>=F=?ϡ=^B?3=1*=&NHm=Hd_= @3KV= =m_ee=DO''=}1j=12~4=t%Cߞ= ࢲ=b٬Ʈ=#TD=H0ML=${S?>,ݙ'>D=k>H=>>)r9>I8$O=>q?zi>4i 1>P!Yu>0(c>nYo>u'>[>:n>W,.>>mc/>&sI >ݽZ=?YGJ>2T?X2?5DY$?"#?\H1?McI@?9L]1?+3jt>?EH@> E[?a㌨g?y//?\T#.?/˜t@?]A̝#?ꄨ&f?2MgN'?4T߿qnEʿ45W˿Aÿ<=ḿH$7Z HŢ a?'?]9?J?uA?8I?&JX?%?/?M:?/?xJ~j?@YR?+?"q?{*?IRJ?8cb?^Z 4?,$J?zݬmQ?aGM?ou`?H\U?L Vf?٥2f)U?/2^)5J?-NXST?uS?xݲZ? ^?4d?VӞxk?R#n?h?'ҩc?zavo?Bq? 8F{?ՒoZ0?.?^1߿?YS䶌?BRW?PssN=?aiB? ?/\ԃ?9?n|?+p{?>#;?j?fc?ix??'u?~{?RF?6x )??֘&?u|L?%̉?c)\?`ӻ?{I?*P?@t?TѮ*?N?b?4?H?Sˊ*?kJ#?N᭣?/W?N뺯?ߌɱ?zâӶ?b;?.F]^ ?w?+ N?Nry8?$< b?wv?[[?sZ*ι?|B0W?-@ú?.?Vmz??OY?(Vx?6K؇Z?TV6;?YXa?69).?pr?&]4?j5tآ? `ϕ?ഄr?N6 ??5?8k?/^Y!?;{ ?s?? r[?S?a?+w$?l?CL~?o?I?)WL?pRFӕ? ˔? ?$]?uwZ?$|?!f^Ɓ?ܼu?~rLle?3Lq?R;s?#?֢ s?Dx?6XPb? KEi?I y[?0*aa?c?J׭^?9\V|QR?*}[?)X?&-\2D?{Vq!:?m&@ 8?5,=G?]% ;R3?WU?`?W?ƴ]?^`͆R?ّG^G? N6?@gS? QiDG?6^K7?我KP?Q?v`?'i.d?hj*Zo?ߞug?ǒSm?_c?z~d? !i?% zph?1r?S=}?[es?ݠ  x?oh.?2q/ ?Gʉ?Ju|?'}t*J?cWz??,?7>O8?|6Bw?+zR?vzg䗟?ӾQ?8N?SO ?[/n~?mp"t?P4hp?sj?UFp?J^`q?if?PZDԔa?TEM-.]?mW b?@?h LG?Jq90B?RXM?RvM?5gG?aO?|Z?.A׀VW?x.yۮj?'QJd?(Br?{?D'r?8 7 w?M=xv? vر?USJ?_|.|? o?zwC?NV5?ӷ2m}?5B[}?h>*#?Vu?8-?_acώo?Q Vm?vY? "?1Bw?`0?sU"gq7?ҋ?/?~8?JX?8Ĝ?9DO?3L6?? =?G|??è?.)*?}>?˺?^(Ț?mT?17?JM c?K]?+?5?%A?L]_3?g?sL?~)[?f{?W} ?>H?;~?֋pϻ?9 ?_}l?'%?tBn9?0??H7T(?;V?KBdz? mz?S,?ȠT?Jk?lV17?eA?yEL? Oo?' /?v,1?49^?qU+춗?W=?_RS穾?-Ϻ?Qf?3?걚M?n?X@ƿ?eܶw?qT!g?F؞b?c@O?j?!Q?xUA=?qe ?Nz9?Xq]h? ne?-<ɾ??BV.?ئ9r?}ҟ? q4?Uހ?G:ۀ?O;V?bP?h^?,W)@?Wf?r˜ZZ?Y*8=8?A>?4?F?OS.?$l?Ra(?<{?UR@?'AvS?ͅ? /? a??$=B?/;%?;?%;?ƿgR3?Iut?9^.=2?Yn V?{Kt??v%?\4j1W?ŷtm?l"Kc?ޖ9?( ?I8̕?Sp ??~??7iP?e?K?} ?9/+>?/p?=& ?S"?{?Yu?Ve?Y&?Ɏ[-ō?L5b?g]1???js +?$'zE?L 4bj8?fɯxͪqçٿ-7ǿeu'_?< ?YQwoq?w6?1k)?f(?da?+vM?dX{?E?~?h?z# -?0)A?=?.3?0[?]y?ϐ}t?`Iܖ?0y֫?K@g ?b?v_?Sy&m?܄?vg?rRw?CYK?n23M?~?Ffx?zD?DM?n4?x~L?i=?#{?c'zg?;??y?HpKp?)m}?!j$?EcH~??}&Fc?mk-A뿚]l?i#)['q}˙-{74TW9jBYjٿ-{(Z翙ԃۓݞ=Q׿'Zjִg?DحØ?#MKQ?]Vt+ǿ™?A?Ƭ:{?B)rֿr }߿3->}0袳,Vտ忐>Az?|czRϿgG+޿ݷƿֿ JuÿVI+$zŁE/SiCsOzkBc:? kJ?kb?#Ė?`wfEͿQBy*]G\Ղt\:=7"]5~>D@R ;=", { j远6Pڿ)Bm?vhпFLU`RUĿSWMBݤ;⿹]fqԿ5ؗj}߿JQ°E??gZ <ګwE2<`w0L= O= =@R[>'.t=򨽸=dRAL?HYU 00ϩ&*N>Zl1>5G.>}ฯk>[>!A >Jq;%>LW ?TWh-?tifc>mRo?Lfၰ>͞ 3?H?8 df'Mc4?yŔ?=<"?]S) ?>`D>MT4>lL:^Vk6\o?kM\g1~B`.a!FE; ionKj9Nxv7"^}u|8tf+ LYM'{>S|= =@{"=|YӖ=|9.l>E1*>)?0W#>#/fU>woV=w¼'$߹<e ;\0=7ͣ>Y>}t{I>ŀS%>P&%uDOH > 0KT=W;L 7JkcE#á)> fRx `KEe@4_[V8E]EO@ [cO0[RwsN)(Př Є@w;촿 *P=覿}뒅!(>br8$t';iN߸crLK]\I^zT(ym,]¼& ?F>)?.g[JtR$?7 ?sgڎ$>?޼b>;:\>ñ>:}?$`ÅQ> >D__> ?bLQcMW>W|?U=ң1bοKXѿuI>^ݠH&Ͽ#~BͿF!}I|ǿ9W㶿qȰ"a ϒU"(񷬿ñȵ?ҿgDЏWf\еv6q&ϿݝAܿa']1\brؿcοዛ}[5TTfPzJ2Gj t0 J2^/R|.G7/#Z<;UP̹j5:9 l7jtZPY5v**8TۍI%Zg>t[fETU mo1 5{| <пɍT3ϯSvSO,s~;ndC gII :*hRQVWߙJ )ٷ !PľÂӍ̾TG=#vZlmLzg0BSv,$1?*~8KM疳{Q^,1+CVgm3 }W>q̾2*b+Mi SqHed^Gþ&+Ⱦ ¾iSx1ܾ' oC;OR 2w˾)ʧ>T ӿ@k.ſZkWĿU %> t"{l49:GY> CN'^T>쬺^>yB?E0c?9rS;q?T/?-)Ug_?E?$~ķ4?KqUY:e)Q?oE?- .?Pyi8? 8i𶌦?Cⴰʰ?\K?i͹?Mmi?cq? ~dz?B?^Wƍ?r .?]os?A`?yf? raB?@e4?M6?l$?oF)?:?/pE?IX? >٧?l?@o#) >vkO>,Lt>F'n4?41=?"h ?%2?oZ`?AB5й?8 ?p/?TC?ٵ A? ?tb?ҳSfX?kQt?) ʓNr?sZ?M`}^?]&D?q\j.r?f~j? G9 ??^?ڸO?7]D?Q)﬛?h;9˝?ƴX?6=B?`e?u3!JK?v5LX?D?: CY?0v?`d?#o?"x?҉D?M'?u *?(?Ɲ?g;4 O?ɂP?wI!o?IPΡO?#?o? /?c?īX?)N?Q/Yv?a?ci ?_/?d?(Bk?hV-MFh|-P*<{’ C=nGI=,F\E=Y=sՇvᏥ.k>~_(*^>Ȕ3Q>LSB&6>w>Myȳr=4{=צN(=.Z|=A K=!4:i=}Bt=D"d=Xj=+ad|=`ɵ.G=HgdZ=_K+=dd>4d=}΅:=oh=omþ32nTV׾F= :} $B$R܍ᆬ^*D>z4IEX(RC"Gj@;:(DK>tXJܾ+ hQZK|-v쾯cb 4A&>&FL>yKtPl>>{Q'o>]?]I%`jbbC_.xmc=5:>1><4}>3j\2>F>&e>4p=zR.=nyR>O S>)0>WP>nw>R8d>ϸnz>vWyVX>Wv>:F+>1'n>ŒѢ>ibhZ>ùS>ȫ>J +">`%\1>~f٠ v?w㪗6?v((?ɍa%g?>36~>JKZ2>]"Od?͹?l '*?O?USZ\?V#`5?" ? F??e2ZG?]h?|_Ba?&x>n*ej?b;?{T9!u ǜ%?kf^򩩁yG&ظ`vyl\)OM?2Evacc0VvW$|wuN ZW- * qQnY~|^`DCi{Ss57C@o0jJ cIĿW& ӿ ,FRO9g#>DTniF>~([>$SE>k4>d?-ġ>6%>5>xʖ>;4>)l>k5> SQdǦ>3n}>sho2>&`>~Q`>B甔>UN9P>CT>Uܳ)>-F6o=Lc\=r~- e;=`RY>{:>#>oGI+> T0>Xu> Wp>CDR>glm'>QS>r">=BcY J=hEI=VDK=vn=\=A<=dg/A#)=zQZ<\=c$~\=d &5=bCH = [=k_=)#$h=oD|yt=0p31=#c8==iV==ò2=0>Ba1 >|XVO3=7$]=1y=Tdo=m K$k1=*yȡ=Kx.>{>>ԛ>5ɡ>U5[w>UG]>9Nb>;'>yT(>{H1>Hs:>,VKCv>{6r o>}b>65>->幂 >ϰUm>嘹*>? 3dj>o\3q>z>77>a`W>t _,z>yܧ(g>_gp`>C#m+>Fv;+ >`F>>`4Zb=WuK=45C==!,7T==j?.\=kxe='p:=^w=W/SJ_=^w=r8,=C_=q қm=-I="i=c 7=6=DEP<,:3+>x4=ܦ=OV =yGR=aC(=όT=Bb=yo=Ee=.܁={vz=$~G =+=gO=~=7^ ~=)j0>N=;f!>CjvR`>?Ol>E8A>͈>}Q>auqk>7BS֡>f{i)>EL(>l>j ,;3,>>p R> S>QPADrH8pds>=G22PnaC?Ff'>BjJ6 >Vɋ=$^V2>?7>uܽJ;>En>o2> {=tO=a=5|Q=)F~=Wǎ=`wX=y3l=D.I=q=TV =g1=p7ΐ^.=Oc=b"5=zbc ؽTRDOE*۽s=۽ŖҢc=d,~=39D%gX2'm|474<9M7h4q]KC;@pEf-0Q2|=7f#0[ (eqϽZ;=+B/=E!j=X}DD.V*=I@F"NáBxEϑfZ/nUblK"m?'r+ߔAZƷU3aྋA΀l E̷Cl{ JJU|phtYג}mؗ~Tݕd"'=ʾ7- վ6*N͖׾i`e?kyCm9 0FAa.Ƒ{侘wc \\ ̘xD 1cEнo\VhmbC@)FRZU3Xep?[wA\~n({[{?6WՌ"r'q;p%KepYB{`<6P-uvDѿYP^㺿cٗv2Ŧ$⼙TE !Aǹ }[ԍ0WfST"s Ul?bba`l4L?7v>S)}L LvξֆWr>8?LW>$NoM< EZ& L"?ё"ű:?a ?rz>r1>B \>v΁B>o6>9>>}wyN>Ǔ:^>'2,>%E > ,l>QBf?(?DN>4u?d6?" _5?[ a?&H ?uM!?2]Ȋ+?u7\KĨ1⿒th ҿwDDݿbKvnyb=2&5;k:P/tf9տ˓9^T?`ȿ'VUDiX巿Y`6'ĿPV'ĢIQvրRlcȿ(Ptt4۱6 Ŀe*ؿS~ѶڿZ-鿵w`Hi3t 8R:]ܩVE3dؿQ@ֿ 䊧tʿM'];¿zǪi%o-MR5$@wZlsxmnu󡸝|[a}IC&z[zy"FпP8S[\b_d~>&""b+§h `= "I[hF0d?A~4s]@L6T)D6#݅jZryD^7Q~Q6qG^Ԇii90.eOH_(fΪW,)؄>_zTKٕeWO"63Ra|R1uH!ё#8-y֛$;KjG/8Pf=<#LaȲhC[jeg 9O[ (@`9IP$i32da27NIhO֒7;cK.jE_S«KC=· \v8af]s/4B[ j6 Y;P0 N#ZJm hߚ$vzW|xeɓ ߂N!̹;pa-ࢿz6c˰ƕAyϤ)!IFQ=([ NzSvGգYpVtrzhV~Qʿ&bNÿ3PRٿO:cI  ©*WZNֱSyMD5.:2v}qc˥pȦ>Bxݎۇď]@xk:wư(&rN#c1'ԎWòw.REeh .2S'>I+!Z@[`M8%)5T>'hAHmTv뾿j\~>G O&X)FɆ t37]゙- rrO6$ɾւ Nվ+Mh _sV%z8 -'ؗ+3\wDD,ۑrXrҤcn ľۓѾ1ăOܾl˴obh;̈*6ě9`]Ob7< f(@|2@Ua|@=A7o1 W-d# 8"!o AFJX+ah#)l.6_1wpPyuul)n~N:stL_6)a1BJ[gRلhAueL $[}Y'>Hْ>cqf4B5 aSD\kF9PSN,Pͺ>=,6dV\2-#>L%la8>~L!SK> eU>>y:Q>%+R>u&FP>?S7D>+\.%>= ٕS0cFB&r0>dMd[<>z[1>bG=E>%~M>ͣU>(vGmR\V>pS!Y>c>A󨕰^>t^>¼qd>̷|h>vXVhd>|3aS]>:N>"lK6>梞 KVNrzuxyY~ +PzkvpDԇ󘈑|M6ȾJZL;S۾u|-KmϾ{ž!l|`3⾳t/Ϲu.%𾙯OV1x׾'1⾏Y/5- 0P 2m6BH!E=NlxexN^1Pbw>`Ӿאs<Ⱦ|5ҾW6ھae(߾qc[پ[+lR`܍[(U'!-/$ۇl@ =(~*TcՎ~#-8?t<.p tKX1ltto}3L%o9c B<ʯ,'?s朂i?29NHV@))ۗaݾdʶn ׾]Ѿo^S̾^NӾ[Z:1ԾI6 ־YHо˾wľk-cþfzɾrHо)&1bȾfiþ6Ǿ;s!ʾ}._ɾq\,ʾ]/3sӂ˾+teʾQȾo5˾,3ξ85ӾEiKK=|N>vYL?Ѿ8=y GҾLr.о` *k ӾvTo;DMس6׾LȾp7Oƾ B/¾^WH%&þdf:vľYުƾ OܿCR븾RwXzN*8%Tp={I?,evҿ'k%x`΍٩Btث?(eդDছʳq!:^ൻQ;ߦ¾!:ƾs* @ 1 ľt;d-ھ ubax:j_վ`@C,Ѧ˾m?7ƾjEY޴ơ.<2[-䌁k+VUVp̾2Ծ^@g(\a)ΧԾyQT $Ҿcם꾘sn?t0=EͷlE_o󾺢MN "s A,Vz5; b:W<`', 34?e3g1d' -5 k!3W%5 ~u[YIk㾇ܝ$E:::~ [ͭUiKoRHW0cd!Te?uM,sʌ-cy13}qZrVԘPLZ鿁F) Ȑ>oxId.J?,濮No'R) ޿Ч &޿vUױ_Buuҿxпjej_XC8JR6$^׷6ÿ³eҿmiÿȤv Ў< D%Ɩ8Q K’㋿sudNz؛Ot3IcxÚi%r`mnD\Ǡ|9";i z|f¿G пmgп9f7SY_#2iѯ<G~~V&v]/dZ>WcadҲďoe,iƚPje$ij;J]/B&0u&YIEZ2bG_}p)kY_qI]+B*},?$' CHxe:">$ym)zx^w2E:'K@r'>MRw@j{v ހ,0Y={Nf׃Jc )@zٔFEk*/+Bl/1^LD7PLhXTlClv W0P8Tvb+TBcUξpqlRؾNMA%ƾg)6־x4春Os&h@nzW';HzM/Ⱦb/:~ FrU \r {Sm|&O} E+оGF:v~iWQt_Ruv WCjx9A%@1Z^2״-: :U⾑#*C-qa_@l8þjྪ_TK$ӏ왾/,- ]r%Ƃ о&ɾMGB5wJȾWAWy;FY¤p1MC)AV7|:Z4LyZj\qqT>ZBq! Y:K.WB" a˳$ ȃ3s0eo6IBD?<~QS_.$ v1HKdh2p8twG w,Д[;rŏOwne Q0nKޜlgۘHt)+NoTtEqS"}#x)@<" w1']90>}W?RHa5HԀ,>VbA>* ?Q>\[U>ڔTWL>遵J>LwS{:>Ir`?>pE4h -$>1b+LJG> & )>LdL=٪z0`t`ilaOX: XĢ[P<^Wt){1}%mtHE)f!o>Dcm_.D[tZ R:?$fcFN]E~[ qUK8k!muN~bzƢrX=SOs9o_xmgXh ~r`~r В-.,p“2nTb'yiWL~K  nbԤl jÙj5 xJŊzPni%1p@iKҐ}xXrs+V̅9>)$S>ƝEJ,ӦJ>_n>|"U>K>&orV>:&S>.a>Ha^c>00&jZ>'Og]>.W2I[>3a=c>Hog>#?5`>fh}bf>yJqwk4?5=?^;KM?Y 'U?ןhy?Cqjn?vAJc?s?؛?ՙ: ?>.ׯ?mbt(?;?tRS?Ibls?hxrlu?-@Ѕ?r,}jɿ{Gu?p҆5?SR ?UAĴ?7Zt?k}ZT?c ِ?8&?K$i?a,?u?N?B"\?H+?^$?f*H?AL}N_? m >?˙$?K/ NJ?*0?e ?*?ET'G?,ɱ?\G?X1'd?7pU?9_?Bk׿8t?(???Nb{J?x+$?G?EI@?a:U?`.?Dc?51?dN?iҼܾ?Un?緵[A?r?~?d?Q#?ySH?ᄐ?fF?%][E?8 ?w3?I7[?/_W?PO?:r ?R'? 2Ahm?y*Tn[?^Do>??Q)ݾ?5 mE?×c?w~?/\?אc?{ዡ?h7 ?^բl?Ē'D?w;1)k?\A!?J4g?vͪ?/?pBk?~?33?0ə?¹GM?aװas?Γ)?['?!(Q?Yԕ8?.x? mn1?e&k?|uy?xC s?ʢ|?/l?h?F?.z]Q?Y<=Ke2?uB?(@0Z?J([?0@?v*I?sZN?Mj?9S'c?gD,q?RF?:{?͐=7 ~?^Nςl?GCw?Xn fS?,_;j?v5 b?@f^A?:|+?9 ?VgeF?"\|c> 1a5>|lh>%̺[>l>ZNq\>S >}>Ի7>V7-%? ItZ =f.=0H=#]JI?۶=2_ߐ=ˏy=9.ޣO=,߮=)T=US =NĞI=x|=;=wo >T1JC>yG5U1S>CYe>PR>ȸ>j|>sH>;# I>:,~?$qB# ?伵B,?v B%.?˽YC?4K)?zPR<? ?h?ݧfj:?İп"?bɿsrSV}o0z]?4L ?G?6z?|!?t?͋?aٓrA?<5%=? PP?)?=i$?BU?zxLA?8OgG?>d]X?“K?Cj0y?{R?p`?wLV?yZ' A?taT?]Pk?`v?l4?6L? >ȑ?TG?r ?}?zؚ?VRbnR?ߺ?7F&?ECc?Ճ[?ՙ?Kٲ-f?+?WK?G렝? ۾?tW?9 9?ʥy?rv?Wك??Hz1?N^U^?4$|?9??"Ui?c? R7r?Aå?G}?[yuc?M*/?|UnQ?'?w'?` ?Զ??sŁ?I? ?ֹh{5?b/?M@9rͿ㈇ڵ?P?(e?' 9p?Q3GV?d\EV?B1!?r3RtԖ?BUO?m[޹?8quJ?np}{?Ls?5a?K":?O?JC˯?q2]xE7y??F`J?&^ m?2ʋ|"\5l~$a_ ɚ1N.x@kۿm:J?kmi?(# %пh>V8H)PI,92#?z ^HZˬ' ٣J.ex=3#_=rAM>B- &>;I>j5.>T׻=yΰ={M=cFgt=ý<`E,=Z<ĪJ<㨚7*_p>q*na^zR8C>i-8d>+>y>TF5>M3>6y>Q>%>zSC'x>8qZ>,H*Q?,ce&>J? G?[&?p֧ԛ"?7}?><>;qr>t-?Yw?]?hX(?^/T!)?_䆬U>??j ?;I8h2t940T㞥nwUc2@5i0OAy+4R[6=ۛimbfl'a2&y嗿,JmCpjXiwg縝$W?a'/ 7p<ϝjy#/w>׆Φ>>:{q3t>,ca>* spB> zO >Y>U~D=8;GB=2٦p="{=\K == Y=]s$b=2(( =v>=]]G=Gn=}">W>6zRGE>iEvj>>,&@>Ő~A>bN>e>Ȉ>v>j9H>˭>M =Jp;g='hY=Mm=8Pvz_{>23<K7=rZ*{=k1=5}11>0+[b> BrV>.a=3y>qXf>>E >2:0~>}m9v'd"B@)>&#l=$`=)= q=dzΡI=Ka`=x贽Jw79U⽥>{ `@[MF՝ O=K!QZ /(ʅS[I&jܾ#51о^W䆡ǦҊ%Ƀ]о3HV3Ҁf D5z,2!Da B'X> /B"Rnjj5*f-3K8Fa4*0$XUI*m@/3,Sn gPۖ >?<:q"J F>(>Fe>{#>ȱǚy[>ygx4{>Պ>fL>7~>ف>׳ ?*/=fs3?F'?hW? %?‡il ?|NPp?翭9}ƣֿL#|ٿ#x񿣇UE uKA`>ѿ%H*οhʿ3Fʿ5!ɿ-Z@DlQ}&2"nYkd&H*7Kȓtǿ ԿҚˮӿ+,@F*vSW$쿙Пݿ"3_Smӿ~WLƿQ4Gkj=9nnzYF5 >&ǫYN?s[KF -pQq;,/y H  _E3{tLZANw$C0C6&w--/\'G@Q{(*&1gP@. Sl%+ bɄ>q͘f(q}᝿k:mfu$ƿgh7Eǿ_e]FpֿM:GKZ(MfGX񕿅4dAh&!k|8lm8z~bSt_DCCb<ڹwyBm Pc"?1^ IQdcr$k'3/hV8%־%yA&KЅG[AWj]Q(7jjPӁ\+x;ȵ<#F ac!9æ:YH"⑾!:VqtEvލe.Fy%\G7vIO.z T{|5`&ǝ8X!im-ƾ'Aվ, .<!0F..QRK}DʾѾiž! =ЇA17Xڈok~Ζꇂ> jIZhxfCm$t5Y˘>AeJM~OOY+>@ @>oqAC>B%m =>ocKDilG>-\CHQ+yZ>F X> m쮘a>bB+He>{[>E:N>*@%3{^5~a8N$ia|햜'@p[9#ե'+|dJޘܟβ )}ek*BsLq,˾aӾXJȾM\S50'ͨ"lܾWH nPW)gS*GJR*,_* }h'!YTҾ d1оaC;T(ξ[z-پ&k=bѾj=پgt85̾]) W ɾjLľ\"ΉǾ6]c7ʾ$Y˾)Kʾ[/˾nɾl۾t`UdSپG8jӾ:cFɾa5ƾTþ"ƾT"MMm$C}nzЦF,ů qzG¾7hsӾmv4B ݾfٍF}ߺR(cȾ|ؾ޽w2{hcpya>3]4.!0>.[%HxQ\(pc'$i2)9(qutkmVCٿJ_Ϳwοbh\-񿘦kܿ!=x‰f/\濞CXmg^߿}C̿kοJk5rvſG˿Q e){m̿.r߭Y.2ÿL)챿p ܨ60룿hV1Qnp7<8se]Nja~kbkZ(7cGO}F+$VD1F+P)XEn`#YnisX1W)m6gG#{D8 EmNӾMF$Nl'Х;OþIн3].zuyyy ޾0ABI d 9GC' kk`侒wK)¾;H80qT<ͪL$ͪl$w$׾z .^-gS #1u phwV!RTEYҺ%T~39<]_1EԺxL-)uGnP{as47sDeK[^~C!rS|p&-KGzc9i30>|2}jI R>2Y?>bQ6>8`Żux-V"1wnɾ-#Ӯ* ?kr8gJ*9z Қ*TOWR78fr;Yr[k]qq)Hl9<\ `\>wo"`c>0P TT=?؏#pJ?]? ݪu?,?n?I^ENn?iZ䖷y?q| 劓?ea?F?Hj?C>,9?-{?t"?^~`,k?t)?<~>5@?HJa?};Kzh?3Ew?$5u?7b9?ڹxCW?:3y ?+/pw?<(&c?(ܜZ?]KKD?ewI7?ݡ>^>> pê>I'z6$>沙LD>wjф>1s=h{=@Բ>¼E#>>clή8?xY?[>(? l=տ`Uo?2e;ߍɑ?TtH?LJA?Uӕ??_J?SPcߵ?e?=~y?L>? [?HJݬP?S>`?Zv?#j?W2+I^x?(ϐD?%.?^ ۋ?Lͩ$?qphs?i- o?ۺ'ǵ`p>#^cb1>ˊ3&>1s> E>fUjs>⨪#Wi>6*a>wI>IRd0>?ֵI[=@=rSU =^ف>1dW=5I<=i,=<u=}LO=5G9B=mۃY=FM=@";=sDŽn=, =f%<ӊ2@'=ba=蔛j=Al3{F=|=:R=_C=wz=:ʒî=~,=f=Zr>)y=c>+m#>+X=A4>0 ZF*>OŻ-d>Jɿ>@.nɪ1>"-\jh>ĹP's=E==Zm=&6=B>\>K/O>qߒP%>WZzK>,&>;EiI>HMFH>ewEx>[o>[ۨ> Cc{>B/1>xBl>D;}y>G;>A;B>pDp>ɿf>ZhA>O >W >Ȭ>v?>1>jV|R>zb҂>l8v>>WEiMl>v>M?9o?P[t>t>J9?o8?iӝ?s?Z$?e,Z ?c>Gq+>Ћ^>)`?yk>uV>+c >Oa~>@8z7<>&|>}gI>&t3a>|@>&.T0>D->|>c>kw>,K0 ̀>8DV>cU6 >\sh>m1`>g>5<"(>;3?o!jW?NS>E[]l?P# ?CW0?/?gE>I$?.)>8MJ>+Hs>Eh?'jBy?KNN_?Pla?,4#yw?uH?'頃?F?w?N L`?3i?H"?Gn.~?S,\?2?"l.)?35;z?W?^?T 7ݕ?G {? _q?Xf;{?2˼?[)?}:~?Enq>h#{T@>5Ci>>hSqڣ>"ߖO>#>eo>IhӴʾ>$>78K>Tͺ>V>9D,GM>"C>c> 6E>2g*>G]=3[b=O>UOYR>9(?`y;>(7>">du >M+4ID~=ף4=sꫫj=7= =%=lVj=q2=AquH=T<0,=ؔ=: >IŢ`=h2o=cD=ae}@> ǫw=>/>y>pp> F`>­;>cv[y>"m:>n/nyQ>Cð^>NԔ>Vd*->f+2>EI[ш>bDw(>t{j>itf>˽( Hq>V>7~g>Vά`d>a;GQ>Ѥ|>>- "8>ScJ>nU>ue=H^é=(Y=f&o=DK0=iu=KwS@P=*N*:W=!&=my =RR=^=KıR=!Fz.=BS4=6U1Z< ܨ =>VVu=ELʧ<%^fkڮ<=^l#bt=Is=ZGTxR=$Iz=nW\j>=F5<-v=],=rbKe=P =V8=u _=ϦH=XKG=J# =Ty7*=m罯=c =-A?@>֚>Ń+>w܁=O&F.="矷=#] /=m柀=Ah=Zw=,;ksd=Ct= am=m@o=IhL=m6 >Ph|wee>_P >.:=s[S>iH$N>!;/> Z> K յ>7f*>DW>5ٳbv>P3 >t gv>`>DW^?k݀> o?VFN?~ .h>y>,`>UG>}vVt>L!^>mD>4rhV>-g> mT>*=b>?]">?v7>š<>>\ >ԝ$=!e=Fz}I=?`1 =iLH"=WȚ=ih dԀ=o=Aq{ܓ>.J=xz= \> Z;>Msiw>#I+>+%5?;>Tw$c$>H0\>;~E8d`>q&O?Ɣ>cnMnY>p+:>eb;> D`mQ>zlԾz=>M&y> 1޻4I>И>*!>;w_M>+r>8 q>!@w>-%>l/>xӴ>lTh>%!>$>SP?Zk>?O7D >b7q>}ݛ{>(G ]>ny>g,a>]dܚ?f"[y>N;p# ?])3?O1:?GW?9ge%X?Ĩ%v'?e _4?s )?)WU ?Lb>)lu=S?%ݬ6?&F?&MVE`?vdP7d?́'y?y s?v(bh?.Uw?]hh?W3?~2D??Qc?٥?h.?`s5n?ރ?U?-?+|N;?D}?bnE??ɷ⁓? ?:8X?@w|?oe1l?QE[?ЫUl?|е$wt?oؿ?&5?X_zܟ>[#IL?o7>ۙuj>u)^>J^+B>M[>:gB?j[m/?:tB$?Y!%g?P<?qx9?#."?ƜF?#?ׄHB?D+?Z2^|?qgȟ?,=_?h?OْÙ?-?F:?fB?^+=?d?>?cX/w?m?s%K?5W[Ej?0xU?ȉZl?k8ڳA?\g)??@?Kd?N%^?-?mT?;4??sɫv?E\?Ո2?o ?*1?i o?d)?A-?.@?9cL?oRٝ?h?O}[?΄9t?-NOF8qa?KtG?2y>Οa?9#9U?0׸V?ߴ^d?V>iY{?A?}?t_??P?:C?/Ia>?\P?-AWh?I(\?Utu??IH|?*"b i?̪j?#0N`?6VssO?LnK? &?^qR?OFh6?׿/@?1!K0?2ܠ*?ͻL~?  :&?B? X?)@:?vy3>?K )>- ?32>N5B2?i4 iD?|)3?E;%?hB5?`PUV?mi#?Vao )?8͚W?ѦdέP?2_P?qpb34 ?mO4?) ?cXI>{;&>|J > 5L?-%^?M\>M>/'@>T8>D>._>֨%$>'>Vm>8~TX>trN>"Ol>P;>Ʌٸ>x>Xxk>mg>i>doI>q d>J3G>?jW>\Ptz/>;rW> ܏*5R>I [Cdq>rI]>j${a>6z>(< $>>>7ei>DZ3>^K͐>k䷛>bvP>;Yr>p[~D>x{[XQ>‡cj>O7j\>q%me>yܑk>f<w>R>/dQn>d;v>z>,ܨ82.>)óyΖ>r">N`Y$I>-"8v>Z;H>V B>[s>(>,. >ʝ1> "8>:WWT> d|>s>u9.>1tz?I'P?кU >jf~ˌ^>>M>⽗ {>xO3W> `>79>A$> ,8>(c>d>?O3h>:T$SG>wh>A5 >Yh> 4$>ľ>᧰>$Te>Pǿ"X>M>&0ْ>\T> ])`>0q>,zw>z8iɏ>)L)>y|>9^}>Yϟ;Ƀ>n40r>==ct>(ۯ~>s#+rg>:>D?>ƘO|>Î9> 8>ՖL>>r>.IT>=f>ɩLH>W9y>Ei‚>JH x>~pz>@Vjy>YaHf>q>!$7~>ZhV[>iqf>V2>f>jz> B7>$ўߜ>Q;>hC>PD>OP>{[y>: ^>#j >f >ư>^o*>ϖB>'>7>>Rs>{ >&B>6]4i>[l >y'?>Tb>{>ЩU:>䃿u>>?P>">Hj>u>XDs>4qdR>O>> a>ˀ>yk\>ԛqd>'[ L>S>KO?Ѭl9?tTC ? N?S ?P? .?E9Hi?dХ>q h ??=>ӨK?ZE?#ņ$?w;?_1C#3?ؗ}#(?i"+2?yD?\^5> ?| ė8?U1 {4?D]=?N`K'?i&>'?-`!?_PZ?u؏?f?U ?*{s?Di?O>nv#>MOq>D a>:WpN>τE>'>WzIu>iq >08Cs> ` >Q c>|>(Btg>$QA2>[j>Pҭ>e>8^>@;c%>R6ci/>UN^>B%&>&C>Z)9sX?K?Q>n>jd>+x>x=}>vEhH>s >8*M!>qE>myzˇ>o>XLa>> O_> K 1>߄.ܰ>>p B>Wl>43 f>0K>CS>s{>J>iӻ>R>;Յo=>==j>>>И>)T>`>7`?c>>5Ie@>t? >ȶ[ >z>}>6|>5|>pN>A`6?x3:">Ã>O>!?Ya/ ?˅?m?v10?+} K?Bc?5ױH9 ?_s?ud%?A8'?VA?ᕥ9?Av6?Zߵ&?"4 ?T*?'9Կ?wy?K ? ~?MfP$?e?$?RGB ?+򊾛?Mm[X-?9?hEfI? P?brIN?Ь4a?; Es?ShdITq?emo*y?'59d'X? -|9?IQ{c?cuL?]ܿ?x `?bIgw?ol?V+h?dl?i]Q?&&?a?D'qLW3?N?#?;_ z?F@?g"?~'7?ゥc?V AI?; ;?Q 3E?o?L?'q@:G O?ÄF\t?LR&?o??3_sV?i?Li?SXS?6?(?ɮan?su?e?l?V:j?-?/Y Z?IK?q:{J?0??? )[v?Fp'џ? DT?lwRQ?}k?ZU҉?]hs?ٝrDg?s?hAр? ,Bk?xC֙?yRd3}?IݷaӍ?aW1?~ӣ?{?;e?{v?@Ka?=? !?V?FXܷ?9?[pʕ״?!?!)?ZTB?[t,Ҡ?8F?ț?\]>h?3Hx.f?Xp?u?=q/s?Lk<4c?;?G:[K?69a?`Whd?Z3INq?\[W?c`?Bj6=?|/%I?דp)?Z@*eB?yp!!?=A{?!? k O~>! R ?׿ b>݁Lg>ϗǰ> ˧Ҕ>;Sם >b&!x>_(5>kg>Z>1e[>3g>>9>Bs>s0Ų>c>wXKյ>>S>;B#c>'c>2lBr>H"P?.Oɮ?E9d?j!>"eU?O1?26՜1?a_3L?I> >|<>qs>w>N@}>J)>Pk> >^utѤ>1Ԟ>m>0S>u/?e*>>L]=>HJ>US[>F@ؔ>{/kw>U[>hL穂>Sr>cQ]c>xg>4hv>I7&O>-f,>Xl=>'`d><8qf>D vga>Jt>̙D>Mw>WN.>oe>q>X{>Af'Bd>(9> Jh>T6Ԕ>_ $>@ܕ>@>G!e>,t0B{i>/5W>u'@Xi>R'X_>;2j>͑G _d>w cp>"M+(Du>Ķav>)>%%t>@l_>YPw>7W׍>6k>ĔTė>@>pNc~v>:9p>"{>4r>iњé>O>>8%gS2>F[_˶>&8OU> "G>q1<>nȉa2>;K>k>->r0q>Q~4>:Y>@–> PZ|>0>o)Ŧ>7,>ْ>#1C>Z> ΢>@Z"Ҕ>Cqڜ>m*>rhD><]J>])>4Ӷ>3z*;> f0B>Ah>̨> Wܝ>urÒ>%h^Uw>I˽>7]g>H{Ҕ>g>"6Հ>,]>_r>xTK >w>]_a T?+Wd?<s?hib?q0 ?LZׅ?㣫\?j#?j1?"2?W'SJ?%=-? V8L;?pt8L?Nbڪ?:)U_?K^w?z?"vfs?ut2? @&?%~ ?r?f?)t,'%a?0\Z>?9$?D@6?6b?5S\?/Sr?9['%?\˾?y[nLj?N?d?mb?л3?y&"?%u6?]qV@_B@AP1@ ;t??u@c@!JX?}Uy?ԈF!?9yX?~8) @@z @Buc @d! @ 4b@>@D@9ub@a[z,@UN@v"@#vUY@aIc@{L@F5E@9-1@PU:@!ř@cF @$]i#@E|+#@;V;@^@e@h-D @7ŃG%@q`!@D$'@gP|E@:@K 9@pȭ@w7@ε@?Po/? #Y@U1?7%Kz@{:?`\cX?nSod?S 5?PmQC?87|?u?P?'̪w3?t?ɔ? +?w?6`C?Z̷4?%v?hζ?'?g₠?R=?1c{??[Z?Xf uӮ?n8ߤ?,y?/4d?AD?\s9g?LQ4J೦?Bw?& %0?=E?t/?hwuA?Xqp?Qb q?^8w?/qMx?- ?E/?e j}?HLl?BhWo?c|uK? v膒P? {4a?5M?Dbu>W6_>Ğ2>xȬ>w'H>yV%>l=xu*>e>d9D=:=VPX==_'7A=ǹF@=2C:>e'T+>Q >>nZ?mwԲO?<5y0?19V?8.54G?N>/+. ?d4F[W?r2?}ډŃ?nW?UC?j?ԋB??|]?q.?v[?GɁ[?y^?+?[|p??VNh?GhU͗?Ɯ6,(r?(Z?gba?39e?ِj?9vdy?4Jv?`;q?#Sp.?j8'?F?08o?j^f?}.z?Wy񚓛?>M?Q?\<r?fNZl?7lH?G(S_?}c?VAcd@p?X3fP?G>r?l>D:{?W`T̅?8pB?0\?Dw?x?9bP?N?]@B?FHJ?"xt?V\ǘPS?4N_?yzi? M"Wp?.g?Eq?;a)?R1 ڒ?K?ׁ1K?9*i? ]HP?-?J^?jB?{+?%?َ ?) ? ,,?c?] {? |k5? w[v?VWz?!õ?2eT? T\A?Ӥm?iQ~9?O0ji@ee&L@1'K@˦?J'?1 @H]p @{@p:#?dF?k٪?~ :?(5I?4e<>? ziS?V&×?^=?Oׯ?%M?=k??w! ?ݿ`?~UA-?4;l@ Ǖ@.4[(@P\g@ @7,? #Ktr@|v@Z? 4= @&?\fW@MӾ?e_. @F@k@ @bx@V/a!@ΤW]$@@r-Lӿ@fcfZ@2d@귁o@~[1@LJH6 @Z+T@4~ @~(@sl=j &@sie&@Ͻ#@[{v!@`9"@?j0 @|P@!R@P$4"@i5ذ&@僚>&@AK%@x#@n?9 @8F1!@!01"@H@qC q@uĎ@\n⇴;/V}Zꑼ<٠1<  $ qb= , x=Ŵ=x'/SKr=GA=k U+=-V5="l ?=c&Qf={Nj=$C=M =g(=hA >d\e >[+&Ѳ>ZK=ֱ7=$=& =-V#>7RS >߰r 07> =D>"E2\>UU4>plc r>YB>uJ>$P>e= X>FL3 >f&#ZO-:>D?K>uَa=s=;OJ=D|)=;1=\ Ƈ>O9y=q!m=Np=1ބ=Xoz=\4b!F=#8аi=70==a=S=04a=!:֥&I=+=#- =䧜=rvc==LX5p=}s=|Qc=Ҭ=M0٤=&"+=& == =|H _=cjx>;ͩt&>ZnU2>y4M=N=Z+ĕ1>)="C#>jA>) -0>C)8i^>bA >%10B>{;ˎT>-8>Yޞj=$gu= z$>=Q^\\5=ۭ[=ە-=BiKCe=4 \P=JG= й=J֚=GOT>5>c \=O>>_(Y%>u0 d>/q]D=z"j0>JԾ0>2ۖT>'Ր+H> h ~s>JM%I>qf:q>#S%e#{>I!@8p>U-|U>UNN>Yg),>|̆qԈ>Jڙ> E>m Z>6)1>AhaI>Ix'> ʬ.>؝Ia>K@y1`>x˩k> zɎ7s>'c=>]NLcͩ>0c#z>ڒ^a>>!5_>F>M(>8Y>I}t> J>lyo>ڟ1>~ɚy>^#,M>*€>8ζ>|. ʢ>#W>I>J֌ ?Ik>T3|>A*?Jڱ#?L A?v1 .?I3M?մ.?qRA?r>?``!?@gWP?A?=8>H&@>G]a>5q?ڈ+?/++?śO?vj>ݮa>*!>ެ> >iU1:>so>Pů>w O>O2>.y4j>$3u>δ3>+T#S>wc> aѭ> (>A!b>+wTi>jUiP>Yz G>MI5hC=>f'}>Х:>XەU>cAV> }Jq>} >p>y(;o>GlF>N}6ͻ>o>-C>;[l>3':>0u4ɪ>>3>^,>m9>r YX>~uu>L-Ղ;>к[> }>t> p1>1$>=m,Pc>= ?3 ?2?U=C?^X>q~ڹG!>pE>a3G$?n ?GU?=.L?+NQЫ?NԚ%?$?VJ(?A?h@?ρ{ ?Rw ?yKT()?]y?F?a >K@>D>HYr>娂>'e©>P>t>/+\>ŀP>KӮgC? r<?gH!?{@oN(?(+.?O t?@?dޟ/?x) 4?U :?F0&J?xŁWc?T-?wi?Ng?)Z?%Y?BQoXyS?ȸG?dO_?BA^E?sɲ{??9|ln(?Cz6?(^T=?aBWJ?/"E?}̧0?flF8?uO?K^T??f?EW? R?Q?v5N=b?9?dr?sS'z?w?ߎu?`ʥS?/Ay?3,ooz?cj?C7]s?jӺHw?FB1? ې݇?lm?/*??Ae`?Syn?|]4J?a!X|?PA v?|j?ߐq-pr?%r`?|e?4^A??fM?շ/R?Bl?"x?vat}Dl? d?KW?Xݳd?ǣ=r?'JZYq? 8ij?+Q?r,?7ި}?6b}'7?͟+?RyO%?S0Y?A0? Tu?@K0M!U?\ۚ?ydH?J?OVZD?ܫ6f?@JK?VKI?L[Ń?؍:g?ˌ?&vj9?j U~?jfxh?;;N??3͘?!8f?8h?!ռBɟ?ȥ- 鏡I-V>dd\SU>eJ>y>!V{>f >v >sS>L \q>_G>xii>NEY>;?w;>t蛿>&NY>R&>yK|>Ui>gH?"|>;-.r8>㪜>`->rwۛ>>N̛> N >ܦe$>Uf4>? ݀>SOT>Ʀp>9|4>eĀ>r>gi87>RmH>cK2>ڲ%'>_{M=i=޽&g=3=3&CK>IDF>{nP>HKaHF>V=3{>m/>gGlFX>(2S>?Wj>}x$1=>Ii99>B>yR1њ=8=uLj==e@===t;Ke='=TJs=c [̼=j0x=;=&=V0}Q=d 0q=͍4=O@ E]=$&SG= g=3a=!:A=ɕ'=?=dQ=)lҦ<0~*C=#Hc0== ۄ[;=fugC=;hRR=&߇={I=E P=fBx=c\=BRX\=M=h~={HH>%>JJ&>2F"Y=pc E=Msń==Kُ=^.=6='G3x=M=oBA>_l >!>!; p>(y>>܋>s녹>o>]#7r>]#L>:3j>7LZ>էoUC6>mDvÃp>o~f>u6Z>taɎK4>7NU>6\>ЦO>8HS>'̂>8$a#`>ʗE>N+>F&K>.3?` ?8$l>!>484>gQݽ>ȂaL?">&rWc>s>A{ >+>22vM>x%g>`V>c>ew>*'>o|^>`>)f>mCJa>1>Ÿ >ToÒ&1>lbhk>o~,>-v[=EeX>3>bʟ>@BI=]^@lx==2`8=Rm*6zB=}Y=WR?=uL=<= [=m=y1<@=tЧD=.^=n=u=ymn=Ú$na=#Ŗ=1=&Se="]^=9Lft=YRZ=)t,>=Ʀ5v=E 4*2= {=i'=a08=Ph!=U#P4(=l |=q NQR=4ÃM=#>=b@.B}K=L[Y-=ϖ=/}W씤<؊m=[:<{U=,DԢ =ZǔE=M>=uy(K=& 6z$q92=FLBW='ir~=ŷNk =lk œ=nF=FUal=͉նd'=#}E^:=Y1B9N=w= {B=i LE=/hr>pc>V= ;H >ͪ=cq=xj6 f=fZ鹳=Z7ԯC= )=/HF=v=,P=l ޏܙ=/_O=u*8=)ۛ=x2=F=?Ƅ=tY|V=Gߋ=wϖ=1!,F='g=.βCw=B=[=__H>INKV >hVL>`i-Z>"&01>D E><>O7={Zn>=\qS>V 4?f@>pA!gU>ݿ?>-Ï[[>`h>>þV>,YV>7!p>~z~>Ot> C>5(\>sk>*D̟>Kh&>~ ܭ>~ >Ӂt>>$2b ?S>- )?t>u=>A ?>R&>2'N>&m>x_Kk>֢WƝ>T-r>%"ܻ>VNj>uBʃ>#HcT>'>e̐v>: YiP>cuH>>+&(>^,%>;m9>38\zJ>'Rh8>A!Hs`i/%>?.F4 > >f(2]=h==$K]=Ir!_>̟=|=\&T2=vJ$=.P=1|ެ=E\=[?=u1}x=WeS=ele3=M4=M?W=E9Z^=7!=b3l'==/>id=723=Uv=(K&=L*%_>d3TO >u3>n4¤S>c5T=9{3>g.X/>**5>Y >+<>F`ª"L>*1H>x>QAU>h?>vf>O!8e>RU>@0auj>זlkh>2)_N>I>tF-l:>X(>]7>lEF>9Mx  >ӓ=>x{|=u<=S >.>lܶ*>E R>B!h+8>+>LOs >fжK>hH?(j>4TLW>ٞ]3$1>ܩQ>9e>kU>Hlډ>RK\>'UAz>4{WH>з>>ڛR@>|k>QG>Um;vS>,7 s>W>ƙ>{o>! >fg>,%v>O(">8q?N>:Q6> [4>D1>8v >Cpe>Fj֏ ?$ ?]!K?&w5?e:7?N=_?{$ ? b!I?:BF?؅5?=Xa8#?Ѥ ?$z\>d4l?4kN?Q-g>3p(?CQ]h5)?$M\C5?j3-? =?-@?/B ?U?VUJ:I?} a?)%*f?IƘ b?E~Sk?)u?OZ|s?z!5սm?Lr?w9?U:'io?~]?nwOS?;@a?b4>9a?@>p? n~?p?-sXn?))Qԑe?Ka?ȹ? ?{?{?-O?m,?yHV|?6?L?D@e?4]?RІ\?F+c?W8T?2R/?= }(?Bp?73ʖ??Rdr?lj?Lc?F%`?h?it?8 q?=œz?w1ʍ?:x?Q??(?x5~?*0b?g-K?U?B?94j?-R&R\u?M>!g?-e@e?"({?: 9X?8f`?Ҭ+E?tUk]?.ػ3A?;Q=?'+&A?zoY?}g^?p]h? rL?D0R?42Z? 7FhS?֒:?Q@?D6>?#Ci0?Ѿc´B?(=&?~?;+?…ը%?Q2?u2?;N?[ O?A F?CoιA? D?OˈDDQ?堟fzV?e2vb?f5m`?gyry?Kf]?s&{UR?)@? K?@0eC?`nY?*AJ?KQ?9R7rL?.;?o^v;?-&-?]?3 ?Bv%$?5wc8"? X1?&qc`E?jp9 ?Ӻz!?yt>'>|_?8? ,?S׭[ ?B>v $>21 >2< ?ᶽ?)#X>ׄf>W0C>Mn#d>=ĸ{>}&N>!>n>!⿜>JXL>lB>>{ x>]]4A>9P>)+S>``)>gm>x[g>mPoy#>>$"S?An>Û& ?˝G!?$V, 0?(?N?~V?UH]3?yxX}?W"? CPEL?K5܂߿$?ie=Z/1?ʥS:$?jk95?SWAT.J?Hn$:?F),)?Q)?Y 4?Skv?n3m/?=xZ0!H?Cm?"? R?l>}T(?^%QG?gݖ?r?s{&8Ҫ?E??){E?>zrCJ?_8d?EkĖ?3Y//?ט~?ITK?,Z?Ҿ?<Ə?>!@"@֡?Q=??vH?? *ô}?Q C1b? h[?I??!m?ܧ0@??XeJi?/{?D7tF(?=ջh?҇ӟ?YlGB9%?*?Ȩ?C8$ ?{͛?A?ɸa?RCD˛?u pl ?$!-p?rߣ~?Mu7?+H? ?l?EA]?N?@8AѴ?4Ћɜ?k? ??)IB?Gl#jg3?ta?2E*?b ?5ˏ'/?m>Wnb?d' ?hH}=?2EHr-?-7?|I?3Ma? ObH?8|,?-$-?xـ/?A 3:$2?bO?"3V?Ï&JJ?Rl$I6?* C?%Յ5I?δ)P?OK䰅OD?u:?EH?%P?4W?|X? Sz[?S^ X?[esR?阕+V?do?Dq n?MĆd? qh?mVh?[% |?觞?)R\Φy?Mdy?<_s?훦$%t?gNj?ɫl?ʗ`x&b?nA޳d?-#c?: _?K\?vE6^?ҩ]?Xb?Wl?PIq?o1еr?/b}?, s?hv?v?8x? uJx?Ӊ??#OE?~rO.?6ϙ~? ^/:u?Jtu?c’?A-Sv?t?%?M9-?dBȢ??^GK?UƗ??kq?蹆Bj?/?Q泥?(GIH?$iX?9m2[?Pm?>ŷs?es??.Xz?|C?ݕ?N?h6?/`-?/RҊ?϶/!)?/ 4??eo k?2C&?̡@?B٢??&IWH.|h|w?_P@x?Y(?xX$?6L?~?~ק1?Z5ը?qIh ?P ?s;v?nۘ瓟?֩.?L祯?G!?F?:Q ?'y¾?aUA ?.T?1)?J/i?FQbl?"L$`4?t#?[?DY?^B?1?eH?%2[?VU/?D~?a?nˬY?&,[?kn`o?lbFje?@[*?v3,?\??_%? gf?hR~4r?f婢?/w8ȧ?L~!?\Q^?6C֞?NS?7BY-ڒy?(f q?Z֏?]| u? _~?=[Wt?Fbr5{?jܮ??\̓?ы?֟4 ?Gi?kR"v?,ꭜ?ݪa?X+ĉ?.?Gu?؝gc|?3R {?z+aus?]GEfgq? vQ}?mv?Zn?DC=t?f:c?%Udb?jXJ2Y?鈥h?YNm?<};`?# E?SyH?3Nk2L?BO%aY?t!N?)L?~֛n1S?aG=Y?I7t`?֯e?&im?~ۏpm?E s(b?z!f?Z:n?'q?@b9%\?Ca?&`>xU?|;S?P7WN?jA?Ҏ-G 0>?R,^>Z2u!?J1 ?̿1E?) p>bͤޮ?ꆽz7?Gi89B?W5@,?dGw~?Fql*?Mt;?ac2/?).^"?ԩQ??oo}c?^mu>B`>IZ ?7?Õ?˥O?}:;><$wY>qQ>Ц&>٫>l*>:]/h>Mk >6>>#>2.H}>漭>">>;>VB>>|]>CKg]>xR > ✕J>73e>_px>p>1eX>06qk>O E>lR\R>q.>ܩ!>194>{&$>Lyr,>/)H>^,9>[D#T>^lR\>Ecw4>ῡyP>ċ>>OiuU>&bDH>>kF>Q2Y>T.h>RRb>a{y>m޾[>>HWjo>)d>x>4>,>z#>61>v'U>ƭ|*>Zl ox>]Pd>kE2Ƭ>mr1(> |,>fUO҆>cIԅ>'>jo>\8j>  Y|>3 _Vic>#g*d]> qDN>3+gB>S@>0D>ߏyVJ>{:)R>QR6X>!Clf>yAM\>` (a>WZ>}P>NGl> r>y6>p>dt>+{>.gG>9>`2V>{=a!>^0n>z 3`>]6>24 3ݽ> MI>eRh8>fc>^>˒A.h>%A€> j%>)r8i>#۪Je>4!|>q'y>ȕt|>m6i>=&Z>f "o>G}j+>U >pa>>G&n>=1> {!>;6J;m?ik>Yr?`?-B ?Wx ?fg ?_ E>"^>sc>[`>WU>^4>2+ E>de>ZM@B>U9r>\>u.>a<>r>HR>r%J>^j>)D>6|;>ݎI:>n>}n>F`L>xRxP >{qb>7*ĺ>O ~6>'xnr*̼>͘ >.F>̼T>gȶ>>YB9> X>iLR>ru$>`j>iA:>i7MC>w>d>Q?>Cq`>PW>jd>2G> @*># ҧs>--O>sK>}SR{ >lp,M>+>̶?&>LՄ>2gz>o>Dy*t>%>#r> b>&b:e>~kRj>iY{l>qts>Uǭ'x>pXpck>aA\5f>qO{u>psـs>/z>p:$> V^?>ۥkZ`}>`6x>y*>hzW҆>MҶ;>jZ>}>ʟ|>x`1v>43&j8>:zG>q2[ي>W̅>{Sؽ>Gyס>C>>hmAN%>m>1ž~>Zft"hy>1;W ~>8C}H4y>{v>u>[N.|>9L\}>½dv>屁won>Z%$ `>ћW>zEm>p+p>M. w>i6Hns>yMϷ€> dZaz>3$6{>|dҗ>`;\>N-ډ>v eË>WܠC> v65>+T>6 \9># >C>Zأ>Mn>N|>U;ڠ>2A*n>ʠ>tW ->և*ر>hb3>T>58:>;j{>Nv5>[>>Wż>$4>9Y>D4H>!>;8o>GX>mD>Oɯ>LP>f=>p_/'Л>kQŴ>Р >ec@>vi.;>h>U{>>>d>>@6:>rc>pG>P!O>t~f@>ޒ3J>'YN>&K1[>B> ϾXx>UT|>sg>D'>e>C>|g>+,>('[>.Sf>904>hbKA>/$l>C*>=72>zU>Q%P>)E>3>P&->c&"$>a4b>n]H>q0O %>;"q>  >e>h_>1V>OzP1ѵ>l7'8>3%Z?ڈ܎?'G ?5?R+>J[mk><W?!\ ?P]L?i8?jRsߚ(?Q ?yu45?{>$ ?$̿D"? AD?wn3? wK ?]a? ?"0CV>էk>a3>pQ >ꀢ>K@5>'>?? ҴK?n-$?Cz>1 ?ilV?J-<?Lv?wIj?HK?*3;j?U7t?/Iz_!?i/?3S 2?:t8?8uw;?2%\D?~ ,?֘,?I=/$?9U3p1?#5??F?wt(>?MDE? c8?-Hc$.?Ff#?uB3$?왜? FE#?dV5i?0?]XGs?Zɪ?/oQLQ?wz?<ػ>-\ʚ>RUP>?fߒ> AA>w>d>xn?4K?q>= w>ȣ[>m-> "6K>)P>>7ұ> >cm>'>*s>͆r4>&}> >V`>Lf>x1K>$h/>QSi4>Pٺ>C>9(>gDH>p~>"Ч>d>-ɏ>ӕM>hAY> jʨ>vV>=>1g>͓m>F@z>c`EK>3~?7Aۼ?7I$?o<i?ayi?z}>DA>p/黈Y>Iz>h+h^>y>L3sE>HV>p>/Q*>׶Tp>!T>o5i>^>#5> & =Z>y˾M>Ǜ>\G>)L>8Y"j>>4>&V`_> >tT>>٧-ܴ>Ĥl`>D$iܞ>5j> &tZ>>>>el>QwGam>w9>CM>^(0y>1\>  >aO>D՜8m>1>$gvD>Nk>R\Eh>cg>hjD>O>}*FJ>Bֲ>۩Hq>Ig>>{2>?Ed#]G? h>?q>;>q7/>t8>1C{q(>,>owXƼ>qnHs>(^>h%D>`^>B>}_۾ >ɏÀW?7-@?=H><1>M'>F+0>u6>7"Lq?FA໱?æmS?q+?#~Y ?޴U ?O]?ŬN ?Mgy k?/ ?-(?Q>&?v,/0?d1E:?,(,?,6?>bEG?,l?*C?>8? q2?hq(?F-?Z65("?O[$?bO>"?sY?,rJ?F ?_>Drb!?I+g@>Mc@? Ĕ?b ?C9?&>?Б4e?#$i?2)W ?I;8Q ?7Z'?3S|}Y?®G?U ?"3y&?{*?s3?7ǰX%?&EA?OcHM?7o0a?g AlV?:fv?Kyul? u?d9z W? ,h? @T? /TO?<g\?ec':M?wWB?CF?讙G#^?f(`dR?eb^?:+{?r)4L b?7 xg?{?B> ?aL?yU?t?\$zLxv?߭:͍?>o*?DDݭ?5??:?Gj0?݉ ?Ƚ'|hr?ԧ( C?.?$J?^?U ?9k:Q?r(}?pFu?.k8?)NKD?S-?7{N?#Yd8 ?M G_?Vjk&?r?q$Fi?'hV?㶶,? ?&P?|Cb?VH@8 S ?e:"\?C\ @sUΕ@PX@ꢤ?/&69)@?$ k D?ꋙ?lٯF?Hvy?ovJ?eUc5#6?RUE ?T ?OW81?^YX?Eo(?ݓ?J%$?3"?~D?8v?t?N???f?IJ?X1o?LT? ޥ?#$Nu0?MN?8m?4 8?ai?&<4?;H?\N?t?sff?=A?ش8 ?*&?}/W>?5R?`#T?ҪM"@g޷? ?e?G?+gި?HǮ?a|?[g?xP?#yK?;e:?K?W:L@?S3Ň?bi?M'kb?A l?^ ? 2?AzN?SsaA?Ж *7?L?ng}?=??J^?rWNk?CR?F~aH?/v?+Sx?ݢ?+ʺ!8?:V??;J @?s;?`ɷY?y8]?k"s?J҈("?;,X^?-M?]?,l5ڭ? I?eK^?`e5:?A={̡?(D%?բ?gZ? ?a?)G7?O_˱?'r?Yq?y2V?5jgwno?{i?]:kڇ?Yk? mߒ?~ɯ?`BÞ?V,I+kN'k?o^+c?'ST{?S!k?)@nr?b?T8X?\1wD?W#S?L`9^?.3m?;03og?z"ۺd?82nVa?]Y?lnEQ?t G?pYJ?CBRT?xEX?s8}P_?@W?ڿ1b?j q?G&4?0hV*a?Vĭs?`8x?Qƍu?z*po?\~k?{y?x;dh?k8qxT?>va?$Y?Ukպy?ӊe?Iđ)Ժc?L-@|Z`?E2L\?QPũiW?UJ?|F?Sc8C?O-B?գ8?=7h 1?VF?jɱG?L<?MGaD?Qsd6?sתXlP?U5I?D),>D?Tc>FP?XvA*\?[zS\T?6e?&)u1?>{?7q?X(d e?*.p?MElV?W)ؘZ?{x\?%"2`?1RktL?],2?/B?h"$4?c~SD?1a?)[Q?Nj&4?qQ1?B4!?@M"?K<3?}y7#?3&=?F %?&V~?%k̀>?-·.?F&c>Hۄ>1Bzj>Z9>22>|켿>/=>FEv>?c>HO=xC>>#\fs/>k8ڜ>9>kY>@>dq> M>ueԩ>R@v>?RńB>mf.>A>t>ߑ쮰>u0>rW#>f9x> >lY>}7I6m?Wwt$>fvn>o`4$>+uC?AMu!??A+?9]3?cE>U ?/k"?B'X>>+Yz O>;~iȖ?u)V ?T$ ?bg9?e0%?9-{ :?VМ6?Z=b+?"*YDC?T1?ߑl2?r(A?YL?'Ì>Nҝ>]>(/?V8AU>T\z>yWp>.tf>ʼ>(,>2M>&~>΋>V!5>8iC>Kq?>D& >HG>X_J>j>cq>'J6>+㳕>4$i>{>_m>-j>lm> -3~>jVauP>l>TՂ>~)>;Ϡ>9[@>h䢾`>܍jt>GUV_>eT5de>e|>#&yt>6r>W94U>| B>l6µF4>6BX> )Q> D>sA#>YDYW,>e>㲗H>#e{[>r8}B>W80T>&@gD>bhG<>\Z>̷שk>-,aU>7b>&gMgs>c׵!>hi >X ߗ+>hM>>Ç'4>L Қ> >h|>1q>p´e>K/[p>6NA>L+M>E,i*>s`>Hq(ф>Ç~>Ehm>/>FzH>?jm^t>SYFC6i>?`>m.ƥZ>0xW>3ml$d>O>Y>ygXQ>oT>!a'_>[W>| m>#jf>n1e>=ςi>T k>wDo>Ӱ2g>E b>'~Ki>yfAc>p;uBp>h§s> ׶o>Mۄq>՚vs>-Uv>u>#tԄz>-P^Fq>UkEUσ>[T>ᕈ݂>lRР8 >@qo > @h>CZ>ѳ>phʕ>4< > e>В>\>#;h|t>ԑaz>؆Eu>gt=>^;O}>.I>٨͌;>>3Vԥ>Bq~>ٳ>~>nS>?>u8I >j>'KI>M:>|:>>@6K>*>\>>@ >\/> 8Q>Sd>'EL >)ܱ0>*f!C> a<> p>_I>`G>zg>G>-q->^胬>S)Ӻ[>k3ȧ>>\G>,PΦ>2T5>UǸ> ¢>M4Kc>Vx)>!}q>sjo6>'0>,b>Wz}'>7t8P>Xm>!R>~I ״>p>hGVZ>=z> >D 6>0j$7g>X/Jh!>7~>>H>> >c4Ƕ>},b>Eӻ%>W>jά@0N>8> >xf>jC.>\a>Oy>>Z@/ h>He\>?".q>;m(sw>t#`|>D>%7~NP>CW(\>.>>`;*>S>C$>r>:6 >fi>|? >@e>%~>g5`w>Rt8y>B~>*Mz>[{> :u>Y2r>('bj>_s:t>jzXso>$~r>lA?%A*D?F~ݎ>K?K#Q?PQ?~]b? tcNj?0%\?K!v[?$4xi?§^&˸l?ks?m=(?4$ux?z<}?4Eq?UN ;{?Z½f?sGY? ?l @n:s @ @e @f,@{@Q@qo?@Iu2@3(@|@:}< @77W.@.xM@{e@7K@O:G@/_q@jJZ@u,@m t@rB @Z @zO; @A@JP@]@ȁ@N @@JoQ@줕 @s,7 @DSC@SɲLCA@qT {@]r(@S"Nz?@No_I@ƙǮ @Rwq:@),e@Ab@b'P0@aWx@w@OHFAP@⮜, @FJy%@e@ @L@nD @F::"@={#@QhM"@ b @M+?@}Y@@@@ͤ O @ %m@Ї6@o,"@:p"@쿛y#@fSP%@p2v1#@Ivru&@2A[#@^*@#@D1(!@}(@ 9.@O P@&@2^@j Y@NK@KVyx@OL番@_Ee-@gQ@+@ @vƒ@PvPè@Pu(@Nm@rΓ@u?>QR?GMfj@rG~?DH6?z7M+͛?|ӫ`@SJ@_ϛ @r]Ҧ @?e @f_1@k fz @tz/@H(@J8??;_@]Cr;?,Yȱ?:@Bw?+Ô'1)?is4??dǹ~?x *V),?6 ?>t#h? Ұ?H?X ?q$?A6Ip?'Oƅf?Oя?Z-n??K?ܞ4?3W?.?9͒?"?elU?=ܬ?c{?@y/.0?º?ӡy(?hra?N+E ?#>?H>|?`ڌo?V]_??@Pc?L? I8??ޛ?O $?9PH-?Ð?Z?;ґ?s[SZ?|?(??8?Bk !a?/M?q7?U?&e1?g@7P?65?2l;? d?%*9?Gi'W?ҵ?B !s?Dꕸ?׹T?QT!?z?_J?!M?nXS ?gdI ?tO?v@?uHU?P'h? m?X0f?\[$l?_Km4?VڴL?M@+?. ?55B?V?]?'?9Cʐ?^עi?^l6?;"7? ?FIQq?yT2?\{ʶۼ?6?]?&8a?{$IV|F?ե?8~x?d6?`O?}f ?H5z?Ks?(vZ?Ạ?S 7T?:0,K?|>?W?aĝf?Ǵbp?wW?) a?.LI)h?W?|FvrO?)ytS?!__?pka?̆wbM?iG?S?%\H#]?bD`c?E2Fa?g>y?bci?i>wi?4f?"jg?2@p?!QJ{w?eau?s,N?p?Q?'b?Aj?!R=?W'W?*S?05?DYO{?1Zs??IQw?6d7i?Jۆ?Ygaz?;z?<1?4?Tp3SӖ?Keav?n6i?JvKʒ?Y'mŃ??)8P?q7?- ?@@х&w?$ 2{i?j9nh?'>zi?"Bzw?0Lu?b'iod?e;Y?|cKwO? R?Q D?K+-U?qZ9? €?N?9(??_tO?4*Q0?eb1?γJ3?[Qۤ?o]U`*?z`m0>'׶ >d>R:~>Sվ>:ix]> U[>BZ$ہ>iU>VWt>LT>.f9?|I;\";?䠅K=?7GQ=뾆)>lj4J>IjY(>^Dߪh>켑9E>c⺯=j:=n_}$=d=]=qD~=n6r=nG:=(X\=K=p=\?d=s Pĥ=W-Ž=#`=V=V==]zİD>o螌1>h=>Sk=(>l+.:@>L^C>/Dvr>r^7>Ht~>o5i>97v>Inm>GO>rMz>Mci>_>㏝`>؅lV>Hws"?+P̋?3ɚ>$?>? !Ψ/?Kh&?Ĥk'?/ǜ>U G?Iqw$?q%8?|1o8?&|5K?@xH/? l"#?!Nd1?;&F{?*L?LE`?/ZW?VA?\ŽF?fN?&?-mD ?^QD?-?IU,?H<:hɏ?mwtn?5dj`?ɼh?ORe?V/$?M}#j?$L?ZX?T?("?Ch?߸j?\>?|-i?Z?&?=43?6C"?E+Y?(??@Qִ?H"I?k4?좪6?ua h?VtZh?[sN?Sк?ϔ]Z?[ d?k ?6?/ mt ?yPr?(̓?BՐl?p$#? g} ?wnS?EV-?%#r?#?J??]?7 ?-dQں?emz]?ѷE?^0:lo?=W?Vgj?#϶?A;?QHJ?/eD'3?jt 4S?H>?{t?[Rm ?5r??$_?t}yG?S?C]nƎ?Bٸ?cV?v't"?sO??$2`N?ɽɐ?0k?h=?l_/?ﭏܙ?x?"lǂ?מ8?m*Q?XyV}??vZw?20F|?n~C~?">s?ؼwn?㖹i?8,CaHp?$O:bL?ckYS?Lf@N?wX?,X?Kia)WS?2^Z?58݁Kf?P\Nd?șSg^w?2Ìxr?]QQs?CI;p]x?mgk?{JmG?8`lS?GP[?S?,%]? m?.lq?̯ ?Q7As?1/x?*D}?c??梎?;Ύ?276?xZj?߶?"O;?OId? :?8d!?? ~s?Ac3F?)VT?4gmҰ?gg,ũ?Z?Ň?Pf~`?Q?5Z?j!!,=?b?'?T3?_dR?i^|C&?oX??bKů?pv?,;?eu}1?*2,??"{v?}?~Ӯk?:ی?WU??IJr?``\N?1?y?ooU?oւ%l?(ehb?Dtbڥ?ݔۄ?T?)? Qʇ? wD0t?G"לE??R7?J?M?t?Ag>(?NR +?! )?/56@ƞ@Tݨ 7 @ I @71@ZU2 @qx @_ 3@ן ?W@yf?Ck?Jn;?yQ?;c7?pE@H@?H3??iދ?{(/r?lU?wf\%?}-?l~k? C?k??vf?y@ :?C]X?5V ad?OREa?7: ?.?2?I?iO?e[{?z?iAW?iTG?@?ޑ!00@' ƶ@ħ݄ ?A?k?Un?$ 8:?@xYz\?Z@?;MgH@:_!ͭ@" @:B @rmfS@sUq@=\ |@ KXd@D m@h>@$f(@J-mk"@@XB?M(P?iKS?j)x?_?)b p?5@p?vHSq@>f@'bV@@3q @K<3 @Z@sD @+JF@S޾ ?^P?Aه~@*m@C@+@@XD^@I@j:>iS @"x7@|Z𙟱@q@'//@A@ @r@ +Ȅ@l@*r'oG@nq@)f@wu@+ȒPc!@4 @0SV*#@ #@\-yA@Ad_e@B@9w"@.A@J@w@k@ @BN@o @u@;@s@/^@ҹɌ#@e @x@?߀5@ @P8+@xUzJ+@DF@!A@< U@o|=Z|@V:[@9[Fg @h!  @*@'qZ @_,k!@3)8@H^!@,@u D @H@ @͈$@&;}$@hFy4u%@b"@hy@&@/ &@"V~T%@p,ɰ &@N%&@¤^%@Ӈ%@"'@U|O$@f:!@Y=#"@j@U#@ 1T @@6ٓ@!P("@A @z-J"@R#@A`iě+$@gfz"@ y @(HfF@xz @f\R@ܲn@Ҙ@P@mGa@ݑx@08@mq[@=n @F=t@]Ky~@s|_ @?1@mU> @l/D€!@ģH @ (w$@5<հ#@S{8!"@ ?%@tf&@*M'@ F4el&@X<{2<Q=Yr91=.tGZ?d>A8o(=脇> vMoV>)xM3=`K%>p´GR>ϗN>qKd>Pc_>ظ h>dC!>+u>*b ?g`1?O/S!9?bޑ?9?r"*#>d"l"?^H?L[ȇKtp?_lS?1tjG?s0?9{Wz&?ɕʵ@? l;Q?3_?$5d?J i)?v?ѦRjt?\?)w?[|?}ȳv?a?!2?(s?U-.?@?7(?d>crsX=5I=!vP=9Bq>>{! ?4۶\>|󙫺>c?orA=GXe0kE >d=f>l>>,p"?9bgF|Q=>i=&>m~c>n`3? UK?["5a?[RQRm?\?Cr?p9{+j?r_X?S8?U?^NÛ?6T;?G? "~?vFf?B ?e5? ㏉i?oed?Lִ?2t? 0Rys?qި/?R{f>wP{>L)K>Vo?wd[?:D $?Ť?{яF?fSa?:4p*?r$?y45?߽?c fIJ?d U/?@^D?A_?4HlE٦?<,7ӷ?? ?ȣM?$?L?Q@]#X?iXn? H\??ی[?Cטb@?-b?WjX?,˖d?7;?r[?fįB?˅@8%?5E?vcDT?ǀB?>)9?a?k?)g?/"dm]?wx?./R?ʳu c?]0@w?x?/S?8Ǝ?>V?oY\?3)?ew?X$?ܳʘ?7H?S?񻯢?J?T?xy3?v<?!-{?\Wq?V?t6:V?p2G?/Mb?PKvW? ֠?|y>~>-Z@>b>R2b>}·,>r;>Wb>%=->]3 `>&oL> *Tr>Q`Nv> -A,>Eΐ>~gd>*{?Uczq ?x$q>W>w]>Źrʟ$>)p/>> L>3? n!L?D:/?} ?;?!=y??@G>-??n}9`@kmbB?u^?uM2?;&?b0?z? pQ?# -?+0?XB˲?xbOd?u?yӱ?樏]?/*x?V Ņ?;M ?P+7SP?ܠ?%#? ?G?f??)"S?wb?Ʋ{?4x?i)^v?c?rND$b?qwN? yZM#tD?;IW?0pQ?'#ꖙ\?nSv?!|-k?h W?R3mQ?U@Ff?lTd'?TCȡ(?$V{>˜r>yMd>_?>C+>,A^>ȑ&l>iHxj>o>Y3C>V_Ҕ|>4SevN?»xq?DžUFE?WT俉?ż1\?[G?IU?El@J?N;0@u ?Mw??h ?[T[*>?QR:?hמ]nC?B:?Tm;kr?{W?l)-?u=q?h/?B!G?Ќ,@/ ?d~c?@?Gw@!@aC@'/@Z}@Zw:@bEH@GO@c6 @@!ѻd@7@@MЕO!@ѡݰ!@[˱#@Bc[%@Μ$@Qj@|K @) @ht??~Ki/ @"W@XZmQ@ 74?hA|?ׅfZK? hT=R?OߍG?tK;?i.?4Hs?MU?{*?wcP?ح$?e8ǎ?,>pA˕?n݆?=/C׾?[?ǖk?sAK?=@ ?zj?Pܭy?ݵ)?7)wL?'0_?F߼?2^\?U'~?J _?Z=Y?`?;yM?4Q?"}E?'Gop??-7y?qu?E=q?sa?"h?z꒱q?%]?YdO1H?:c>IR>o7>߭޶m{>N2@?FthG?`Hv)?C>?͜?/X?qv|?H#j?Ւ?Z77M?j{q? If?t?A.?H?2Ѧ?Hȭ?HkF?3M5?Ϥ^? U? oiX?@,^(??YU?&Ԯ;?8P?@d?ʦ`?=`>aΤW?AQB`e?WkrQ?8 Xf?w?Iq?(w|?r]x-݆?GՂ?$ ?~w9dz?̯_?z ZX?+zL?f-?yԀH?e"%;?1I_?unC? -?-K$?oA?ߔ?:KZ?@u5@\@@ѥ#%?O)fbg?lDV=??-f`?a>?!dV?$i X?ы|?$n?yj?LP ?\㙧 @j0o@*h@ 4@K?U't@ߴ*@WM@p?}@a@8@ /T @=HcC["@ϱVG6@@h@AXx?#@F\%@X햫<$@L&e#@`@ju@O%@c]\!@`Z -@ۤ@9@ dT<*!=\擦x h#<,hj-<,(=T =p jU=r12=1+x=7Z>q=H>}D=[v >鴸*> i!>JHe>ӊ\>iN6D>19%->)2mD>wJ>Lq=iJJK=yzZ=L@g=ɀT=xY6=U p=uOR==;b\=f |n=1l=spt=̖F=Z_0W =!L.=i#=>T> =s E>gqL>ֱK>V>ǧ3Y>yd==n\=3 =n@f=`{=Sh >9Vɗ7>S|=G =Mm2>[ M >`>0E]>D:;_>m' >D5ă>;O[S>-ija>q`1?>S*> hXW>_Ao>y F>D> >>> ,>Yn>5T*>Qt>VqG:>ܙr>->^n>aد>Mh>f1r=_>>Y?xC?Nk>i?W6'?ptT&?]p"T?oVS?PPf5?ʄsL?gs*?VT ?öqQ??X>>`Һo݇ ?[j( @?H="?D3~(?8 (Z1>/<>qӶT>|`<>zԛ$> >C>>N\ r>P}F> Dx>̳a즖>U>-Io>3D6>.sSh>pNv>F.>FD Wo>oF>zb>fz>Vb ]>P>Q>(U>+I">J >GQd>6tަ>K>]6>6l?>:x| ?+ %?%nE?rOs4? z?;2?ſ>ja>cw ?Y ?)<ڔ2?Ә7kA%?Ut ?Nfu@?SB?Zά.p?e?c?;7Nh^6?]6!?n?J X8?&3BP?Di5?G0^? ~}?jF?"l 9o?z*{?"}F?iX.'?Fya?Ӱgq?uݛU=?C|C?'dH?Z=?(t?Q|at?_{?uIY ?'}/?;F?]j`?' .| k?0S?ݡ?Ȉ]>sYRLK>iXQ`>&5>B ?!B>2">ҴE>v}> )u2X>}e >`Ƥ>=q>~>4>>RP>':H9>H YRf>wXloe>cȟ>"TT>-S!>W/>;Enc=D '=&aA=!>w >b >>;0>T3>̪fz>i4Z s>c1U>{ټJ >\m >tH>Ǫ=NY=ң= |~=Mb&=q/*=Mm=vh-=\7`=ä`= o68=8+ =s7f_=w4PDb=ך~l=;x=e*5=T@=<xE`=Q='to;=:<3>]je>X8={xQb=k|0'=`tMw=ǰb"=I)N=2k2>/+>%AJ> zʥ>]sg{>bfab>=Dhe>bGx>+>L*M->>Q5>]f*C@>h5hz> s>$rj>zL |>Ld+>PX!>eq>Z}>|>Ώ>5n(Q>#>݃>p>ma_df>0֫!2>G[s$>ML>Mʽ>L J=S@X =R՚F=W= Xu=i=V_i̘= vJ)=$Ua=GR'=|oo="߫\=(ѩ==M=Q[3m=t9=Ξ:=9й< B9$<5×<|3=|~~%&="56=&ð=6zf=ؓ =땄~l==bil5=i]=z^yWME>>_=Y==gigӗ=]G^=Q_q3=1q=7]=f n=r>=<5%= Ӆ* =+a>7a=ٻ*=zx= =.JU>e8>5'>45L->'!n>ՀXDw>l p>/<>_8;f>dɊ>ֲm>bV>l>?g>`yp>h2>dKJ>[WgF>H1Р:G> ӽԔ>#dp>5w+<l>Cm> ȼ5m>d%K Y>[LE>1n&8U>lIU>RrFT>30>)!>su=% 7=3EL>=y[+X=1~|+=R=}O=OPtn=Hja=/`=Opz=*K@ ==;=KA?B=6/ =R9 >qȐL>T1Mr>Q1; >#HB3>tyQ:>{bB>{zX>$$ X>\c_7Ms>9ίx>iE \>fg#L>{8;#>K^#>fn[3>;)}>A=(IM==/:p#>|e{#3>s}"> 6>tZT`>5B>5Ѩ/]>^s>6=>H>RYI>>31{!>|>7R]>cՋm>QQek*>Ek6> Gk'N>H1 ->8>[g\>{Qć>q '>AU~>vZ>$)>a>ڛ%!$?xW>?d߮#>+?(|5!?a3^fE?rR$@?ܢ-?tҮ>?ˉ?ض~?82#/ ?rM#S? vh?''{?#Z;K%P?l X?skh?GQu? Pez ?G4?5?0 j8Ƀ?+rM*v?=؏@?!J?H.U?/p?2rJ?k*j?FQ?+8:?єH?I ݡ?jfb?GsS q?q?(ă?x'ܾ?7)Mq?% IOu?mTP?.g>&T?S%U?W;WUB?< 5?S!?V+*9?&U;?_pR?Ysev?2*gC?rU?84k7?Sb?`' j ?ݨ?O+?q>›$mE>i*U>޿>-@<>kv> (j >:} P>O|?}ѓew4?yF*?he) %?CҧE?ߏru@?\"YR ?i]?m!'?3?k%LBm@~n ?&?qvN?Ǯ|w?xI?>x(?qiv?aI?qjC?eh?ZK^q.?bc|?E7? ?wȗD?щK?ތ?ˑ?vbٽ??L?>^'e?U?#496?O?VTnå?sH?Y1M,k@Q% ?O5;j?I# ?DK?8'?gmi?+?B_1?e?χa ڳj?BT"GAT?J=)j?i%V?\³&c?Ӧ$An?Bbq?7_Fn?=y&Y?~TA?dGR&VP?j E?ʀ[?N.Hd?Jnkx?JNH\?w5:?On?P%¥?[N?TB1v?t,!3s?e>s?`sD!re?v"M?50Z?{Zs?GL^?p7C?ȶF-B?3 V83?{5#?Tw4?-?oʧЌ$?I=? &?Q ]e ?'G?oއ?-rK.??Yo ?6Pɱ4?y'A?H?)f'ʂp?d?V%R?C<+`?y7f?SIJZ? JoTC?-)|Dn5?[H ` ?/Af?$f>ض%?d`.?o(7?l+?sO)'?\>zUr?Po?*ēD>(&>1KW֧ >Op5a>7%IJ>%2"1>JT>>RpAԤ>4{b>M"t>=E> $u>}T/>曊) >e>ݜ>Z)Y>tdx>y{>I)W>T-Y>TgxZ4>S'1.'>l뷍8>^V>5}:L>osgtH>y߄"T>'>Rwr> YKmm>܅AUg>>>#(n k> .ձͪ>o:q>g>Q;$x>'\k&)r>+Ce>P$T>ǿnfK>k:RT2G>[Tw^>D`^>Yݶ}ˎS>zni>XZc>Z*y> L셄>rr>jB>bg>z>尒>De > ٟ>?$?>]]A>tT>V+)߱>٢L>bFO>e( Y>;ey>=V٭8>t>v_>c?ʛRN??X >>3R>P!>_)>T>z'>DY>ke/>#pێ>N|B>7E >z>r=f[>{TŜ>=>h&+!>Rg0>{#0>OH>l>>ilF8> $>6> ̜>@ف>"j>^p؊>ZB%>>Ե>f}>sĕ>&O>gôL֓>lq2>8 }>(Q{> pNƒ>IgԊf>r۝=k>؜u>(dm>2.0q>EL%>o=>Eۂ>V>gm]׎>%Yb>+cPڍ>+8 >ɕ> >)>}$>NC϶2>~>Sv>'/Lu>,"~>~p{>+%mr>\0If>ж ?f>ѓiJmw>EL>>&2GI~>s¹>`"i>`a׬>eCԗ>MK̡>OR>^ŽF >K6[>>>uק->Gwv>Y׺>H!>GS>S-b\*>kى>Y/>w70q>>>c1> Ef>gqeϵ>n~6>l1v>&Qk>gEjf>#G>'>[^>B}>"Q>e_>~Nm&>8:>7>9~>:֒>xw>M~|>{>,>uy=>b> >1&>J.6>׺>%3Z>@;> Or. ?\{=?ڲ|>HWC>|bvu>D 7?W6?o ?_tH1!?f?}3?'5z>?yTJ|?>S?k ?|{Շ>\%^q>v>&*2>qB(>-+y>-/F?-q7P??ӹ?ߟ ?t P?hEG'?`ka3?)8#;?əxi(?CLG^,?n[6?siPfN? FA?k@"C?so2?H'?CQæ?'#I?*^>B%8?䕽>B ?uѬp ??5 ?|K_;C?=m?m>~>>p-z>Tf>A$W>aY?Uxq>z{>k!7>F>|h>y8>e7>|P>p>Zb|>r>XXT>^IWA><9K>f(>4HzF>c>;~> Ÿ> \>/"o?b>3??T^O>>1x>۶C^>+$J>𓀘h>8R>cm'Q>n8> a>W]> >Ti Ľ>*]w0>N#>pf`S>貥>I͈&>q>zsoQ>^q>~v>m߱>aΊWV>]mj>=>7>Ĕ>ҀRZ>m4%)y>7.m>9iV >Q(9>l>kb>1/aM>u-3>S>.ewo?'&#?+$>$>!)x>NI>AUK>) r{>CbO>U>&/ >|P>!>K-&3;[?U桸7>&_>=$Z>$ 6?N"33?8,#J?"6?`?P9 ?tX?ҰdI ?KI?ǽn}?g,3?#Wi(?nN??33D?m\Ps9C?7u0?D}S/?1!?vR?Y? ?b <?{[#E? ?#(?+ "?J_ ?e՝?-#=.?u%]4?j(?oSy 0?л@?#S]mC?}Yjrj?`ā?V`?˦5WGX?s]R?:T>? cW??= 4gf?XvA r?|{)j?eϼvt?'YX?v?nCv?G݉o?Z?!' ?™?AUl?^UC?@u$9?Y?0?<:b/?`?8zX?ud3g?V4!R?n!YE?s?*?ѣ4@kL='4 @Ib?HS?4s @G6n@N?QFc7?cW?V-?M7>D?qh?'?.S ?E)$O`?%%?и?g8?=?'Z0?7Uʊ? b޽?FG?e..?H'[j?˩,?#+@vb?9g?Np?z#H:v?mG? ?Inft?Լ?Z7?tfC>{،?_Su>^(0>bI!>_T>)~>C>ӄSs">=.A>ܴ>q]>Z>؄>130>6N>V6߱><Q>.>X0>fI>&>P y\>|U'ޮ?EZ?)> ?v5,*?T(?h_l?èB#Y?fqi3?0 @?6'%?l;?,(?Z9>09?me>V˽B6>e!>-sJe>ǭ>vՏ>u5>sg&o>'>">G>zn>4`>S\泡> w>*`>3Sn>t_5>*'C>=k`>H'~j>EDW>ӇSp>PJSha>knE>> n'>EOWx ;>&bM>dOJP>e?X> "c>x8m>,GxR>ۀgS>$}>' 쉋>' >֎J>W2x>η/r>`p>*7>ٺ=l>4,]>x,CҖ>ojs> 7Ba>,uF8f>~e0sW>})_\>;6R>CI4?`>W$+g>; Vl>dhZn>5Ҙ,s>Q'r>Ŀ^R{>sR|!{>[%p>eO&|>O&~>oKPk@>0k>J' /c >z>Q_>pGa>O&,y>PX>ayr>Ԟ3>>.$ɥ>)@>T>bC>ljx>jeT>>+4Dz>>$(Vx>f,>Ծ2L> J>a 6s>F{>!C,)>< ȧ> >34i>}V!>幽Ġ>+[L>m۟Ơ>t={C>IK>,sɵ>u A>8>懁Nx/>}t>Vs->'uel>\]>gک3>R/4>D4.>32\ש>'@Ud>ެ>)j>a]ߎ>)4>L;|>>>4>'l&>ZQ>>9#>`>Ɛ8>7օ>Cpx>kv>Oz>2%Hv>یpIs> dʋo!t>eӁ[n>4p>B'Pa>B<@?wWG?t|H*Z?/3c?@^ܑ.?_?Es?Xk?Ś0[?bT[?{P?$?;W.W5?= +? n5?^Jfȑ?[-DNg?HKD?rF/?:ê?Ǣ;?R)?f7T?‡eS?P mP?OK?P ?P1?1'?q N,?ۮI? n)?0{W?W?d2?_$_??&d?j?yj?Ū?6@]:8 ?\?:xW?h5 m?_ǣ^?26??<qoN?5 Qzg?_-*h?63xK?{Z?T?إ;Y?7zPw?nKƒp?-8xv~?R?d~?\W?){?J 6?؉wG`? ꡑVw?Q3\cn?UvȗoL?Xk[#6?f!3J?~ R#? Nwq>Xǥ>h>ʄ>O`>>an>=[>KW1: >F!ۆs 1?zFX=bݭA>Q=P=cƳN=f9$\J= (2=SBeI9=39=`(e=[t<=Bv=:aa=jZ>;4J>y.X>X)un> W >>(>>lx>sn ?h6:?sUw6?ף 8?bznP?q 4?#/ ? ?QwDnO ?zPF$E?E&3?n?-00?10*?({?zU)x?7 E#?'2 P?Pet?Jht?:}?g24)?~l?$`^?a /?Ht1d?$hL?pnrD/T?Ve?YW?,pq?F_e?W~{?6X2??>?a6w?ٮ^T?5]U?Y%?^Sr?L?K9?Ӥ?=2>?V?;E?5N?Dx??@#8F?t$?(~Ѧ?gLPĸ?4Fͱ?/?/Br?1q?ޤx?ACKc|?ے,ėY}?c t?I :b?4K?M?\f{W?1wj?ӡ(W?ZW[k?dtd}?cs@ |?3X?<,C?{M?'>!?ؾ)p?m+N?(U_?bVP m?20}]c?{: BoL?#a?k:Pw?F#5O?E?Q5?䠠?\r?zݱ?G?Be42?ρ?Idg?=fPo?4J?z? `f?`7z?b?,S?R?,?T?xp]@["?u,>_?lm@^Ko.R?VuM?Ѕ.?B?I?YM?g]C?y?$?I~@?AL Kd?( ?wv .?'Q?e}~O?ձ?7ȐK?  @|zt @rZ@ݼ? O @{m@w@8f@]H@qgv @F_Ӭ@:J@Q{@b[Q~"@1I{+@?@@)@3P@5@ @U@ZZ@n'!@N"@%bm%@J.'@\v[@35!@)}!@h #@N6!@6d@@ү{>9@fod@Uї@ށ@*:խC@%@2#J԰N&@h(&@L#@cQ"@CWj @=_ @%ѣ@7 1@~͸@n@\$ɠn@gS @@rڧ`jV1>Q?\R> @>ܽ&=;= uZ=eF3=B1a<(ad==Uisj)Mh>ghD>Ѡ`>=>>a^=4=qwzh7>g> \>lH7>SɆ[>n*ȗ>1r>RE>[>Fv>t%> \ ?vܒ0A?TJ^T?4T>JM)m>?H>:?[Wn>x쀽v>?Mn>)>m<>٪ȱ>Yt?>lF>tlՍ>\8[>0R1>k??whY?/1? s75?Sq 0? 6 ?hfyǭ)>N>{:?i!)&?*u ?}O&wr?8 N?+/1X?¥+?is]"D?J#W? b??Q)[j?c4W?uy?)%ʃ?ga"?WEh?`5QV?cy?Y X'z?N} ?P]أ?Y?le.??SY ?"v? "箪?rwŵT?W?¼ ?Bf1|>tBt~>Iϫ>쭘:Xq> f>y#fF>_Vs<#>$PԊ>ט>=O/=W:EcO=J$-= /+ =:J]=4g=᧹=pMާ^=bM=CNs"J=ĹP%> >*>klq> >J.D>dTD>L>9 k>3DB>9OtB~>O78AP>UZ } >_O=3^l=ߝd^=vpBͽ=]ڊ=#BO=t.<{ =VNP9>dYK9A>"&mo>A(>^`E>R'I9n>8>$ɾ/;>X"m>b>>M p ^B>ʬ=tΰ=$p>w=o&Y=?pNb=5vu==uk>F(I>#=ma>rfz}> aj>^yH#>cIښXh> p>[}>> y}>5ZU>d>8@>Wnn?]A>m7-?M7?H|?ry.DA?BiR?J\8vf?$RĚsp?p5e?O5v?<:xOa?A6nz?)Jˈ?6? wd?WѠ?nmӺ銔?+fɜ؈?+{?mzO?\7~E ?*1sdD?d? 6=?^_?$ra?!@l?-h?]:? Wx?%en?ll"K?Ly3Z?M0I?TRض3?=KlA?a5\cYJ?̩5z,j?U!l?03G?h]a?. W?^(A?hD4?̛?D׵nM?A.q?kS1>N,M ?/ {>mSo.>})'>{_П>>i~4>Pqb>8? Bl@?l0*i?WMv%?:a/?M]/Y?Է?VωM?`C]?_,|@?6s"?@F/W?9I "?(G3?9^?2,\i^(?'҅A?y?(-6?B?M9=w?U?śסn?~?Y}z?~?8]l G?`?|r?kH`??f@'tw@_iK`?20O?B@x"?X?y=?Vϡ&j?U"_?<|?سW? ]P?J^?]u[? @?eH?G(?7zV?>3C?P?f[?Ri0KFa?͟aX?4hb?.p?RR?$ͼf?zw? B }}?{ ?2y?~#?ť|?ڣi蘧?(y2?5?M?aeF5?zy?teAv?8~?n:>9>(tg>HL8>b˾>G)/>*e>:LlD>| !1>:f 9>({>2>x;\|>B8 ><)>F(>쵢h>0RM`T>o- d>)ez1t>h)*,ї>H>g>!$_>qpf >yT%>P\>1$ ?%,L{6 >5o6>ER{>>RYT> Ń>R>"'f>Klt>}ik>'hI+>W:o >B>'o闺>Bw>wYg |>tu`>€v> POrp>m#O܇>q.M>Hۢzݍ>ԭ4Ε>(ԁ>wQr>3 3x>7 }fl>@fp>B4Lv>=>Bk >I>Knv>o>`/>7ۊ>T>%"c>v>_9s>̓>D'>]kS>bP >,r>;. [>]B)T9>jz؊>GB?ڝ})?OMoG?Oel>@? "?M?h ]1k>C6xN>o Ub>'1>`Lt1>I>j͏i> pb>  v>|/Mk>Ad>T2G>2j>-6>I0>B尜>j-?*g鎍x>}X>t>T>H #>>*>½cSV>\j>Pe6>N>ؿoY">g>I>q>!Y)?02&>· >J>ƫ3>~>O32?^)#X?߷?_"0?cL@pF%?=B?H?<+?6f8H?\/5N?Q`?7)M?tʵrV?]iݦ#y?9ԗ?d? ip?Q5X /[?v2?-4!?ZBn;?[8T?`m?L?96f?.b^F?Sy3?;?q&<0>v.>T>BXAQ>0E>6k>hAZ>cR8j?Fme?Woʋ?ӻ&?1`~4?&WQ[ ? >|0[>YS>\T=>&HW>(G^U>n“FB>s>V)-1n>\I>_\> rpPm>v A*/[>?^z}1>E>07֕> M>DD~G>a6-QN>ՈP?n>ɞ{>M:>NXM~> ͑>"=>$$t>;a>b>"$q>?xϓ{>K&}u>Z~>7HS>mY>=//IU>!>^?Rs>Ў>[˶>?j`>.l>9]jc> 0>"n>e3j>.> ,ݱ>~7a>[e 8>U5uŐ>+3t>$iHt>QSH?jW?.~&@k?WNF?lB? ]?VR;?>z 7 ? ?CU?ͅN?~b?EX`?!|9<ǃ?;?"$M?d|?~'>d?%b?I ŧ?B?RlB?Ѭ{?ۀ%a?ﰦ^?"W?ߡ?5A9?k=?8GE?S~X?7apT?n?,;&? {$?/Wɑ@ L?as?s?4C\|@$k(@Gr ^@YC9ۑ@9D@ V@t:VO@OE@KiB@^`@xYi@\q@P k @RĬ@4zT@ @87@ژ)@FcH!@V?!@ŚOE@r+"@ Қ$@1'%@M1vJ@>_ST@a;#@O5\ @^^ o @gh@fןW?i1@hz@1,V$?.}mO?=*(0?&o(?|/|?&ᷡ?bەU?#g? R? `?%Դם?}N/c?+?pj?a_,?gFj?[?)?:?A.?Y?d /?3_?U,&?MH~?U0&?eѶ?VsU?(ƴ? ;ΐ?n1?R(Y)w?Չ??')ـ?dG?P??~3 ?$(t?Ȅp\?8 T? %`?8Mh?\_oV? wV?C%#>K?Ai4n?@uz2Lu?QE^_~?L$+X?&Ls?k ?#?8Y"U?m(q?=f?e767Q?}A~C?L}|>0 ]c>@\>#p>I>F 8!>r G>i>W8= >>)Kk>LD?f%F?YS3?UQwm?~c-?cNGc?].?'Z?*LK?тYsc? rr?Y?U96? kS?i*?OLI? |h?&v]?xMp?@Բ '?oLx?:ʻ? mؕm?5ڤa?FGX2U?ѯQ4J??I Ā?eJ?_?携+o?B{?Q]¼?ksZ??B@?w 99?Aڞ?Hv?bi?cd#?'}Ǧ?Xy??&耂?ȅT z?Sld#?w WS?F1;$wI[?Ϫqs[?k?AnF?Rb?h F%u F%u? F%u F%u? F%u?h㈵> F%u????? BezierCurveh㈵> F%u? F%u? F%u? BezierCurve F%u? F%u? F%u? F%u?? BezierCurve F%u? F%u??h㈵> F%u?? BezierCurveh㈵> F%u??h㈵> F%u? AssocAttrib VectorInt AssocAttrib VectorInt AssocAttrib VectorInt AssocAttrib VectorInt AssocAttrib VectorIntxwxwtcorneruq~j>hu%F uq~lsq~nwt1.0E-5w?xsq~nwt-0.0127w?xwsq~nwt0w?FR9xxw ?6sq~nwt0.01269w?xw?u%F sq~nwt0.0254w?xxsq~_wq~cw@uq~R@Geom2|=-C6?Jov?{X?Jov?l.n?Pw?{X?Pw?l.n????? BezierCurveJov?{X??Jov?l.n?? BezierCurveJov?{X??Pw?{X?? BezierCurveJov?l.n??Pw?l.n?? BezierCurvePw?{X??Pw?l.n?? AssocAttrib VectorInt AssocAttrib VectorInt/Ixwxsrcom.femlab.api.client.MFileInfo3$$LfemNameq~[historyq~[ storedNamesq~Lversionq~xpwuq~ tfem0tfem1uq~ 5t`% COMSOL Multiphysics Model M-file % Generated by COMSOL 3.2 (COMSOL 3.2.0.224, $Date: 2005/10/24 07:30:19 $) % Some geometry objects are stored in a separate file. % The name of this file is given by the variable 'flbinaryfile'. flclear fem % COMSOL version clear vrsn vrsn.name = 'COMSOL 3.2'; vrsn.ext = ''; vrsn.major = 0; vrsn.build = 224; vrsn.rcs = '$Name: $'; vrsn.date = '$Date: 2005/10/24 07:30:19 $'; fem.version = vrsn; flbinaryfile=''; % Geometry g1=flbinary('g1','draw',flbinaryfile); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','2', ... 'M','9', ... 'eperp0','1.00', ... 'epara0','1.00', ... 'eperp1','9.407', ... 'epara1','11.62', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','2', ... 'epara4','9', ... 'eperp5','9.407', ... 'epara5','11.62', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.00', ... 'M','9', ... 'eperp0','1.00', ... 'epara0','1.00', ... 'eperp1','9.407', ... 'epara1','11.62', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','2', ... 'epara4','9', ... 'eperp5','9.407', ... 'epara5','11.62', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.00', ... 'M','9', ... 'eperp0','1.00', ... 'epara0','1.00', ... 'eperp1','9.407', ... 'epara1','11.62', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','2', ... 'epara4','9', ... 'eperp5','9.407', ... 'epara5','11.62', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Geometry clear s s.objs={g1}; s.name={'R1'}; s.tags={'g1'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgelem',{1,[40],2,[20]}); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgelem',{1,[40],2,[20]}); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.00', ... 'M','0', ... 'eperp0','1.00', ... 'epara0','1.00', ... 'eperp1','9.407', ... 'epara1','11.62', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','2', ... 'epara4','9', ... 'eperp5','9.407', ... 'epara5','11.62', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.00', ... 'M','0', ... 'eperp0','1.00', ... 'epara0','1.00', ... 'eperp1','9.407', ... 'epara1','11.62', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','2', ... 'epara4','9', ... 'eperp5','9.407', ... 'epara5','11.62', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; prop.frame='xy'; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'}}; bnd.name = {'tangential_H'}; bnd.ind = [1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1}; equ.constr = {{'0';'0';'0'}}; equ.cporder = {{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'}}; equ.name = {'dielectric0:vacuum'}; equ.ind = [1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {}; % Functions clear fcns fem.functions = {}; % Descriptions clear descr descr.const= {'eperp2','eperp for the 2nd dielectric','eperp_293K_sapph','nominal room temperature values for same','c','speed of light (exact!)','epara0','ditto but now parallel to cylindrical axis','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','epara1','ditto but parallel to cylindrical axis','eperp3','etc.','epara2','epara for the 2nd dielectric','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of 1st dielectric perpendicular to cylindrical axis','eperp0','relative permittivity of vacuum perpendicular to cylindrical axis','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Hrad','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=2.701017e10 Surface: Hrad', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.010881225026045,0.0235912252615741,-0.0139699998311698,0.0139699998311698,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Hrad','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=5.901426e9 Surface: Hrad', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00233658994443658,0.0157563611263049,-0.0141301144424153,0.0139699998311698,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Hazi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=5.901426e9 Surface: Hazi', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00233658994443658,0.0157563611263049,-0.0149179681136374,0.0147578535023919,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Haxi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=5.901426e9 Surface: Haxi', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00233658994443658,0.0157563611263049,-0.0149179681136374,0.0147578535023919,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.00', ... 'M','5', ... 'eperp0','1.00', ... 'epara0','1.00', ... 'eperp1','9.407', ... 'epara1','11.62', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','2', ... 'epara4','9', ... 'eperp5','9.407', ... 'epara5','11.62', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.00', ... 'M','5', ... 'eperp0','1.00', ... 'epara0','1.00', ... 'eperp1','9.407', ... 'epara1','11.62', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','2', ... 'epara4','9', ... 'eperp5','9.407', ... 'epara5','11.62', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; prop.frame='xy'; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'}}; bnd.name = {'tangential_H'}; bnd.ind = [1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1}; equ.constr = {{'0';'0';'0'}}; equ.cporder = {{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'}}; equ.name = {'dielectric0:vacuum'}; equ.ind = [1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {}; % Functions clear fcns fem.functions = {}; % Descriptions clear descr descr.const= {'eperp2','eperp for the 2nd dielectric','eperp_293K_sapph','nominal room temperature values for same','c','speed of light (exact!)','epara0','ditto but now parallel to cylindrical axis','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','epara1','ditto but parallel to cylindrical axis','eperp3','etc.','epara2','epara for the 2nd dielectric','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of 1st dielectric perpendicular to cylindrical axis','eperp0','relative permittivity of vacuum perpendicular to cylindrical axis','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Haxi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=4.124785e10 Surface: Haxi', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00233658994443658,0.0157563611263049,-0.0149179681136374,0.0147578535023919,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; prop.frame='xy'; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'}}; bnd.name = {'tangential_H'}; bnd.ind = [1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x'}; % Functions clear fcns fem.functions = {}; % Descriptions clear descr descr.const= {'eperp2','eperp for the 2nd dielectric','eperp_293K_sapph','nominal room temperature values for same','c','speed of light (exact!)','epara0','ditto but now parallel to cylindrical axis','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','epara1','ditto but parallel to cylindrical axis','eperp3','etc.','epara2','epara for the 2nd dielectric','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of 1st dielectric perpendicular to cylindrical axis','eperp0','relative permittivity of vacuum perpendicular to cylindrical axis','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.2 (COMSOL 3.2.0.224, $Date: 2005/10/24 07:30:19 $) % Some geometry objects are stored in a separate file. % The name of this file is given by the variable 'flbinaryfile'. flbinaryfile=''; % Geometry [g2]=geomcopy({g1}); clear g1 g3=flbinary('g3','draw',flbinaryfile); g4=flbinary('g4','draw',flbinaryfile); g5=flbinary('g5','draw',flbinaryfile); g6=flbinary('g6','draw',flbinaryfile); g7=flbinary('g7','draw',flbinaryfile); g8=flbinary('g8','draw',flbinaryfile); clear s s.objs={g3,g4,g5,g6,g7,g8}; s.name={'R1','R2','R3','R4','R5','R6'}; s.tags={'g3','g4','g5','g6','g7','g8'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgelem',{8,[15],12,[15],13,[20],16,[30],17,[20],18,[20],19,[20]}); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgelem',{8,[15],12,[15],13,[24],16,[30],17,[20],18,[20],19,[20]}); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgelem',{8,[20],12,[15],13,[24],16,[30],17,[20],18,[20],19,[20]}); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgelem',{8,[18],12,[15],13,[24],16,[30],17,[20],18,[20],19,[20]}); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgelem',{8,[18],12,[15],13,[24],16,[30],17,[20],18,[20],19,[20]}); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.00', ... 'M','5', ... 'eperp1','9.407', ... 'epara1','11.62', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','2', ... 'epara4','9', ... 'eperp5','9.407', ... 'epara5','11.62', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.00', ... 'M','5', ... 'eperp1','9.407', ... 'epara1','11.62', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,2,1,2,1,2,2,2,2,2,2,2,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,2,1,1,2,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x'}; % Functions clear fcns fem.functions = {}; % Descriptions clear descr descr.const= {'epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','fc','constant used internally --do not modify','c','speed of light (exact!)','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Haxi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=2.272202e11 Surface: Haxi', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00233658994443658,0.0399897487140879,-0.0179127983008426,0.0403164999692663,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.00', ... 'M','9', ... 'eperp1','9.407', ... 'epara1','11.62', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.00', ... 'M','9', ... 'eperp1','9.407', ... 'epara1','11.62', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,2,1,2,1,2,2,2,2,2,2,2,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,2,1,1,2,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x'}; % Functions clear fcns fem.functions = {}; % Descriptions clear descr descr.const= {'epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','fc','constant used internally --do not modify','c','speed of light (exact!)','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Haxi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.686226e10 Surface: Haxi', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00233658994443658,0.0399897487140879,-0.0218126933194372,0.044216394987861,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Haxi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: Haxi', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00233658994443658,0.0399897487140879,-0.0218126933194372,0.044216394987861,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Haxi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: Haxi', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00233658994443658,0.0399897487140879,-0.0218126933194372,0.044216394987861,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Hrad*Hrad+Hazi*Hazi+Haxi*Haxi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: Hrad*Hrad+Hazi*Hazi+Haxi*Haxi', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00233658994443658,0.0399897487140879,-0.0218126933194372,0.044216394987861,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Hrad*Hrad+Hazi*Hazi+Haxi*Haxi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: Hrad*Hrad+Hazi*Hazi+Haxi*Haxi', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00233658994443658,0.0399897487140879,-0.0231882993258393,0.045592000994263,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi)', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00233658994443658,0.0399897487140879,-0.0231882993258393,0.045592000994263,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.00', ... 'M','9', ... 'eperp1','9.407', ... 'epara1','11.62', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'spf','1e-6'}; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+0.00001)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+0.00001)', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00233658994443658,0.0399897487140879,-0.0225630238683838,0.0449667255368076,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+0.0001)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+0.0001)', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00233658994443658,0.0399897487140879,-0.0221087878858377,0.0445124895542614,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+0.000001)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+0.000001)', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00233658994443658,0.0399897487140879,-0.0221087878858377,0.0445124895542614,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00233658994443658,0.0399897487140879,-0.0221087878858377,0.0445124895542614,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00233658994443658,0.0399897487140879,-0.0221087878858377,0.0445124895542614,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00233658994443658,0.0399897487140879,-0.0221087878858377,0.0445124895542614,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00233658994443658,0.0399897487140879,-0.0221087878858377,0.0445124895542614,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00233658994443658,0.0399897487140879,-0.0274195297985001,0.0498232314669239,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1, ... 'arrowtype','arrow', ... 'arrowstyle','normalized', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00179499985679286,0.0398949969370733,-0.00785416306104278,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00179499985679286,0.0398949969370733,-0.00785416306104278,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',0.5, ... 'arrowtype','arrow', ... 'arrowstyle','normalized', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00179499985679286,t`0.0398949969370733,-0.00785416306104278,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00179499985679286,0.0398949969370733,-0.00785416306104278,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00179499985679286,0.0398949969370733,-0.00785416306104278,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00179499985679286,0.0398949969370733,-0.00785416306104278,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00179499985679286,0.0398949969370733,-0.00785416306104278,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',19, ... 'phase',(0)*pi/180, ... 'title','lambda(19)=1.02501e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00179499985679286,0.0440877290624526,-0.00856613644082418,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',18, ... 'phase',(0)*pi/180, ... 'title','lambda(18)=1.140409e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00179499985679286,0.0440877290624526,-0.00856613644082418,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',17, ... 'phase',(0)*pi/180, ... 'title','lambda(17)=1.233746e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00179499985679286,0.0440877290624526,-0.00856613644082418,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',16, ... 'phase',(0)*pi/180, ... 'title','lambda(16)=1.239518e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00179499985679286,0.0440877290624526,-0.00856613644082418,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0018741080101019,0.0441668372157617,-0.00856613644082418,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0018741080101019,0.0441668372157617,-0.00856613644082418,0.0428541632100544,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.00', ... 'M','9', ... 'eperp1','9.407', ... 'epara1','11.62', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'spf','1e-6'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.00', ... 'M','9', ... 'eperp1','9.407', ... 'epara1','11.62', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'spf','1e-6'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10.0', ... 'M','9', ... 'eperp1','9.407', ... 'epara1','11.62', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'spf','1e-6'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10.0', ... 'M','9', ... 'eperp1','9.407', ... 'epara1','11.62', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'spf','1e-6'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,2,1,2,1,2,2,2,2,2,2,2,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,2,1,1,2,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','spf','small postivie finite number (to avoid close-to-zero values)','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.759825e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00229999844552669,0.0445927276511865,-0.00856613644082418,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.759825e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00229999844552669,0.0445927276511865,-0.00856613644082418,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',8, ... 'phase',(0)*pi/180, ... 'title','lambda(8)=1.593191e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00229999844552669,0.0445927276511865,-0.00856613644082418,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294742e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00229999844552669,0.0445927276511865,-0.00856613644082418,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294742e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00229999844552669,0.0445927276511865,-0.00856613644082418,0.0428541632100544,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','9', ... 'eperp1','9.407', ... 'epara1','11.62', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'spf','1e-6'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','9', ... 'eperp1','9.407', ... 'epara1','11.62', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'spf','1e-6'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,2,1,2,1,2,2,2,2,2,2,2,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,2,1,1,2,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','spf','small postivie finite number (to avoid close-to-zero values)','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.686226e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00229999844552669,0.0445927276511865,-0.00856613644082418,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.344946e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00229999844552669,0.0445927276511865,-0.00856613644082418,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=1.366096e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00229999844552669,0.0445927276511865,-0.00856613644082418,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00238084797327964,0.0446735771789394,-0.00856613644082418,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',19, ... 'phase',(0)*pi/180, ... 'title','lambda(19)=1.02501e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00238084797327964,0.0446735771789394,-0.00856613644082418,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',18, ... 'phase',(0)*pi/180, ... 'title','lambda(18)=1.140409e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00238084797327964,0.0446735771789394,-0.00856613644082418,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',16, ... 'phase',(0)*pi/180, ... 'title','lambda(16)=1.239518e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00238084797327964,0.0446735771789394,-0.00856613644082418,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',18, ... 'phase',(0)*pi/180, ... 'title','lambda(18)=1.140409e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00238084797327964,0.0446735771789394,-0.00856613644082418,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',19, ... 'phase',(0)*pi/180, ... 'title','lambda(19)=1.02501e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00238084797327964,0.0446735771789394,-0.00856613644082418,0.0428541632100544,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.294123e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00238084797327964,0.0446735771789394,-0.00856613644082419,0.0428541632100544,-1,1]); % Geometry [g9,g10,g11,g12,g13,g14]=geomcopy({g3,g4,g5,g6,g7,g8}); clear g3 g4 g5 g6 g7 g8 g15=flbinary('g15','draw',flbinaryfile); g16=flbinary('g16','draw',flbinaryfile); g17=flbinary('g17','draw',flbinaryfile); g18=flbinary('g18','draw',flbinaryfile); g19=flbinary('g19','draw',flbinaryfile); g20=flbinary('g20','draw',flbinaryfile); g21=flbinary('g21','draw',flbinaryfile); g22=flbinary('g22','draw',flbinaryfile); g23=flbinary('g23','draw',flbinaryfile); g24=flbinary('g24','draw',flbinaryfile); g25=flbinary('g25','draw',flbinaryfile); g26=flbinary('g26','draw',flbinaryfile); g27=flbinary('g27','draw',flbinaryfile); g28=flbinary('g28','draw',flbinaryfile); g29=flbinary('g29','draw',flbinaryfile); g30=flbinary('g30','draw',flbinaryfile); g31=flbinary('g31','draw',flbinaryfile); g32=flbinary('g32','draw',flbinaryfile); g33=flbinary('g33','draw',flbinaryfile); g34=flbinary('g34','draw',flbinaryfile); g35=flbinary('g35','draw',flbinaryfile); g36=flbinary('g36','draw',flbinaryfile); g37=flbinary('g37','draw',flbinaryfile); g38=flbinary('g38','draw',flbinaryfile); g39=flbinary('g39','draw',flbinaryfile); g40=flbinary('g40','draw',flbinaryfile); g41=flbinary('g41','draw',flbinaryfile); clear s s.objs={g15,g16,g17,g18,g19,g20,g21,g22,g23,g24,g25,g26,g27,g28,g29, ... g30,g31,g32,g33,g34,g35,g36,g37,g38,g39,g40,g41}; s.name={'s1a1','s1b1','s1','s2','s3','s4','s5','v1','v8a1','v8b1', ... 'v9a1','v9b1','v10a1','v10b1','v10c1','v11a1','v11b1','v11c1','v2','v3', ... 'v4','v5','v6','v7','v8','v9','v10'}; s.tags={'g15','g16','g17','g18','g19','g20','g21','g22','g23','g24', ... 'g25','g26','g27','g28','g29','g30','g31','g32','g33','g34','g35','g36', ... 'g37','g38','g39','g40','g41'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgelem',{2,[7],5,[4],6,[10],10,[4],13,[2],20,[6],27,[8],34,[10],38,[16],40,[7],41,[16],51,[26],59,[40],67,[26],68,[3],69,[7],71,[7],72,[3],73,[26]}); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgelem',{2,[7],5,[4],6,[10],10,[4],13,[2],20,[6],27,[7],34,[10],38,[16],40,[7],41,[16],51,[26],59,[40],67,[26],68,[3],69,[7],71,[7],72,[3],73,[26]}); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgelem',{2,[7],5,[4],6,[10],10,[4],13,[2],20,[6],27,[8],34,[10],38,[16],40,[7],41,[16],51,[26],59,[40],67,[26],68,[3],69,[7],71,[7],72,[3],73,[26]}); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dit`electric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','spf','small postivie finite number (to avoid close-to-zero values)','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.2 (COMSOL 3.2.0.224, $Date: 2005/10/24 07:30:19 $) % Some geometry objects are stored in a separate file. % The name of this file is given by the variable 'flbinaryfile'. flbinaryfile=''; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','9', ... 'eperp1','9.407', ... 'epara1','11.62', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'spf','1e-6'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','spf','small postivie finite number (to avoid close-to-zero values)','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.274361e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0291797175750504,0.0291899732992421,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',18, ... 'phase',(0)*pi/180, ... 'title','lambda(18)=9.144314e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.035498760448906,0.0355090161730977,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','9', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','9', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','9', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.287051e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0356203491075053,0.035630604831697,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=7.801924e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0356203491075053,0.035630604831697,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',19, ... 'phase',(0)*pi/180, ... 'title','lambda(19)=8.643685e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0356203491075053,0.035630604831697,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',18, ... 'phase',(0)*pi/180, ... 'title','lambda(18)=9.208728e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0356203491075053,0.035630604831697,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=7.801924e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0356203491075053,0.035630604831697,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10.0', ... 'M','9', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10.0', ... 'M','9', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.326233e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=7.80211e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','9', ... 'delta_eperp1','1*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','9', ... 'delta_eperp1','1*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','9', ... 'delta_eperp1','1*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','9', ... 'delta_eperp1','1*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.326497e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=7.801554e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','9', ... 'delta_eperp1','1*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','9', ... 'delta_eperp1','1*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','29979245t`8', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','9', ... 'delta_eperp1','1*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','9', ... 'delta_eperp1','1*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=2.202673e11 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=2.202673e11 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0351068437078331,0.0351170994320248,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=7.801184e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0351068437078331,0.0351170994320248,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','9', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','1*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','9', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','1*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.286256e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=7.794991e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','6', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','6', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','6', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','6', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','6', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','6', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.055352e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=5.762968e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10.0', ... 'M','6', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10.0', ... 'M','6', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.146114e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=5.763133e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','7', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*t`test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.120027e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',8, ... 'phase',(0)*pi/180, ... 'title','lambda(8)=1.01791e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=6.443297e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','8', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.220922e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=7.123376e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','10', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.354009e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=8.47851e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.376963e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=8.47851e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','12', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','12', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','12', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.54642e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.825549e9 t` Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','13', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','13', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.616243e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=1.049614e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','14', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','14', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.678853e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=1.116492e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','15', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','15', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.741669e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=1.1832e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','16', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=2.367326e11 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=1.249751e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0351068437078331,0.0351170994320248,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','6', ... 'delta_eperp1','1*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','6', ... 'delta_eperp1','1*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)t`+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.054965e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=5.76203e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','7', ... 'delta_eperp1','1*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.11972e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=6.442435e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','8', ... 'delta_eperp1','1*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.221754e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=7.122579e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','9', ... 'delta_eperp1','1*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.326513e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=7.801184e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','10', ... 'delta_eperp1','1*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.375851e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=8.477818e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','11', ... 'delta_eperp1','1*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','11', ... 'delta_eperp1','1*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-et`perp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=3.254938e11 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.152388e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0351068437078331,0.0351170994320248,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','12', ... 'delta_eperp1','1*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.54642e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.824937e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','13', ... 'delta_eperp1','1*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=2.206405e11 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=1.049556e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0351068437078331,0.0351170994320248,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','14', ... 'delta_eperp1','1*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.735268e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=1.116437e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','15', ... 'delta_eperp1','1*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=3.290388e11 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=1.183148e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0351068437078331,0.0351170994320248,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','16', ... 'delta_eperp1','1*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','16', ... 'delta_eperp1','1*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... t` 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','15', ... 'delta_eperp1','1*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','16', ... 'delta_eperp1','1*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.849894e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=1.249701e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','6', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','1*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','6', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','1*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','6', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','1*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.054726e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=5.7583e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','7', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','1*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=2.108758e11 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=6.43786e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','8', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','1*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.252493e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=7.117184e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','10', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','1*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.framt`e = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.353087e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=8.470846e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','11', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','1*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.471293e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.144653e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','12', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','1*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.54642e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=9.816451e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','13', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','1*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','13', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','1*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','12', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','1*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','13', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','1*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','13', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','1*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.655171e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=1.048633e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0348655243155999,0.0348757800397916,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','14', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','1*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.678244e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=1.115441e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','15', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','1*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazit`x)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=3.374604e11 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=1.18208e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0351068437078331,0.0351170994320248,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','16', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','1*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.80451e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=1.248562e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10.0', ... 'M','16', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.80561e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=1.249818e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10.0', ... 'M','9', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10.0', ... 'M','9', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10.0', ... 'M','9', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10.0', ... 'M','9', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10.0', ... 'M','9', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.326233e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=7.80211e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0104489449066157,0.0533709279469029,-0.0349857679437989,0.0349960236679905,-1,1]); % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.2 (COMSOL 3.2.0.224, $Date: 2005/10/24 07:30:19 $) % Some geometry objects are stored in a separate file. % The name of this file is given by the variable 'flbinaryfile'. flbinaryfile=''; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','11', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','11', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','11', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','11', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','t`relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.472172e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0153345923215852,0.0582565753618724,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','9', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','9', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.287051e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',16, ... 'phase',(0)*pi/180, ... 'title','lambda(16)=9.83803e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(20)=7.801924e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',19, ... 'phase',(0)*pi/180, ... 'title','lambda(19)=8.643685e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',18, ... 'phase',(0)*pi/180, ... 'title','lambda(18)=9.208728e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',17, ... 'phase',(0)*pi/180, ... 'title','lambda(17)=9.74777e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',16, ... 'phase',(0)*pi/180, ... 'title','lambda(16)=9.83803e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','11', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','11', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',16, ... 'phase',(0)*pi/180, ... 'title','lambda(16)=9.83803e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0349857679437989,0.0349960236679905,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.458182e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',19, ... 'phase',(0)*pi/180, ... 'title','lambda(19)=9.909482e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',19, ... 'phase',(0)*pi/180, ... 'title','lambda(19)=9.909482e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',19, ... 'phase',(0)*pi/180, ... 'title','lambda(19)=9.909482e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','11', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','11', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2738*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3501*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2738', ... 'epara_4K_sapph_NPL','11.3501'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','11', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2738*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3501*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2738', ... 'epara_4K_sapph_NPL','11.3501'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','8', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2738*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3501*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2738', ... 'epara_4K_sapph_NPL','11.3501'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','8', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2738*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3501*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2738', ... 'epara_4K_sapph_NPL','11.3501'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.221787e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','8', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2738*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3501*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2738', ... 'epara_4K_sapph_NPL','11.3501'}; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.221787e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','8', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2738*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3501*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.221787e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0349857679437989,0.0349960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','8', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','8', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','8', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','8', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','8', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','t`shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',20, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.251868e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.251868e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0349857679437989,0.0349960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',18, ... 'phase',(0)*pi/180, ... 'title','lambda(18)=8.44837e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',17, ... 'phase',(0)*pi/180, ... 'title','lambda(17)=9.037046e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=9.422262e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=9.800158e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=9.422262e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',16, ... 'phase',(0)*pi/180, ... 'title','lambda(16)=9.225876e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=9.422262e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=9.800158e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=9.422262e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',16, ... 'phase',(0)*pi/180, ... 'title','lambda(16)=9.225876e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',17, ... 'phase',(0)*pi/180, ... 'title','lambda(17)=9.037046e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=9.800158e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=1.027374e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','6', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','8', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','8', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.143696e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','6', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.016726e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','7', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axt`is','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.338821e11 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','9', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','9', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.228098e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','10', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.228098e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.31608e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','11', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.399235e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','12', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.472839e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','13', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','13', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielect`tric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.565884e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','14', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','14', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.633227e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','15', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.702893e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','16', ... 'delta_eperp1','0*2e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.749051e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','6', ... 'delta_eperp1','1*2e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*2e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','6', ... 'delta_eperp1','1*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','6', ... 'delta_eperp1','1*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','6', ... 'delta_eperp1','1*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','6', ... 'delta_eperp1','1*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.016726e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','7', ... 'delta_eperp1','1*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_st`apph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.083872e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','8', ... 'delta_eperp1','1*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.143252e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','9', ... 'delta_eperp1','1*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.228098e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','10', ... 'delta_eperp1','1*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.315602e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','11', ... 'delta_eperp1','1*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','11', ... 'delta_eperp1','1*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.398693e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','12', ... 'delta_eperp1','1*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.472231e10 Surface: log10(Hrad*Hradt`+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','13', ... 'delta_eperp1','1*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','13', ... 'delta_eperp1','1*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.559638e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','14', ... 'delta_eperp1','1*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.624103e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','15', ... 'delta_eperp1','1*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','15', ... 'delta_eperp1','1*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.686176e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','14', ... 'delta_eperp1','1*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.624103e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','16', ... 'delta_eperp1','1*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.748442e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','6', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','1*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','6', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','1*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407't`, ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.182392e11 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','7', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','1*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.35825e11 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','8', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','1*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.143582e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','9', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','1*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.228098e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','10', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','1*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.315915e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','11', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','1*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*t`test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.399101e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','12', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','1*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.472733e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','13', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','1*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.547421e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','14', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','1*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.624299e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','15', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','1*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.686511e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','16', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','1*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)t`*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.748789e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1.0', ... 'M','6', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10.0', ... 'M','6', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.049303e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10.0', ... 'M','11', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.399505e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10.0', ... 'M','16', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10.0', ... 'M','16', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.749286e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','6', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','6', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','6', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','6', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','6', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','6', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','6', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','6', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','6', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','6', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.018311e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=8.358121e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',7, ... 'phase',(0)*pi/180, ... 'title','lambda(7)=8.845164e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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,2t`7]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','6', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','7', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','7', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.084299e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=6.438555e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=7.389506e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=7.695231e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=8.312546e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',12, ... 'phase',(0)*pi/180, ... 'title','lambda(12)=8.623541e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=8.751501e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=9.112091e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=9.557666e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',8, ... 'phase',(0)*pi/180, ... 'title','lambda(8)=9.632117e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',7, ... 'phase',(0)*pi/180, ... 'title','lambda(7)=9.917532e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',6, ... 'phase',(0)*pi/180, ... 'title','lambda(6)=9.986376e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',5, ... 'phase',(0)*pi/180, ... 'title','lambda(5)=1.016923e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',4, ... 'phase',(0)*pi/180, ... 'title','lambda(4)=1.017251e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',3, ... 'phase',(0)*pi/180, ... 'title','lambda(3)=1.031561e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',2, ... 'phase',(0)*pi/180, ... 'title','lambda(2)=1.066226e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',6, ... 'phase',(0)*pi/180, ... 'title','lambda(6)=9.986376e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',7, ... 'phase',(0)*pi/180, ... 'title','lambda(7)=9.917532e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.084299e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','7', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.084299e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=9.557666e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',7, ... 'phase',(0)*pi/180, ... 'title','lambda(7)=9.917532e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',6, ... 'phase',(0)*pi/180, ... 'title','lambda(6)=9.986376e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10', ... 'M','8', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10', ... 'M','8', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3t`', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10', ... 'M','8', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.182787e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','8', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.182787e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.143696e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10', ... 'M','9', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.435251e11 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','9', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.228098e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',2, ... 'phase',(0)*pi/180, ... 'title','lambda(2)=1.22783e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',3, ... 'phase',(0)*pi/180, ... 'title','lambda(3)=1.214784e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',4, ... 'phase',(0)*pi/180, ... 'title','lambda(4)=1.204933e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',5, ... 'phase',(0)*pi/180, ... 'title','lambda(5)=1.193498e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',2, ... 'phase',(0)*pi/180, ... 'title','lambda(2)=1.22783e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',3, ... 'phase',(0)*pi/180, ... 'title','lambda(3)=1.214784e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',4, ... 'phase',(0)*pi/180, ... 'title','lambda(4)=1.204933e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10', ... 'M','7', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10', ... 'M','7', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10', ... 'M','7', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxt`i*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.118128e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10', ... 'M','10', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10', ... 'M','10', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10', ... 'M','10', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10', ... 'M','10', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10', ... 'M','10', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10', ... 'M','10', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10', ... 'M','10', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10', ... 'M','10', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.34275e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','10', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.31608e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',2, ... 'phase',(0)*pi/180, ... 'title','lambda(2)=1.312683e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',3, ... 'phase',(0)*pi/180, ... 'title','lambda(3)=1.311544e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','12', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','12', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','12', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.472839e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','13', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','13', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','13', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'t`0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.559863e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10', ... 'M','12', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10', ... 'M','12', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.473139e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10', ... 'M','13', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.547829e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10', ... 'M','14', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.622899e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','10', ... 'M','15', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.686999e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','16', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','16', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.686999e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.686999e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=1.182362e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=1.245863e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.338786e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=1.368061e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.015992606629861,0.0589145896701482,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',12, ... 'phase',(0)*pi/180, ... 'title','lambda(12)=1.413811e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlet`vels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=1.439452e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=1.442533e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=1.476622e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',8, ... 'phase',(0)*pi/180, ... 'title','lambda(8)=1.512414e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',7, ... 'phase',(0)*pi/180, ... 'title','lambda(7)=1.534592e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',8, ... 'phase',(0)*pi/180, ... 'title','lambda(8)=1.512414e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=1.476622e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',8, ... 'phase',(0)*pi/180, ... 'title','lambda(8)=1.512414e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=1.476622e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=1.442533e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=1.439452e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',12, ... 'phase',(0)*pi/180, ... 'title','lambda(12)=1.413811e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=1.439452e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=1.368061e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.338786e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=1.245863e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=1.182362e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=1.245863e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0590172022678194,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.338786e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=1.368061e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',12, ... 'phase',(0)*pi/180, ... 'title','lambda(12)=1.413811e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=1.439452e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=1.182362e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=1.245863e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.338786e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=1.368061e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',12, ... 'phase',(0)*pi/180, ... 'title','lambda(12)=1.413811e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=1.439452e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=1.442533e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=1.439452e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=1.442533e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=1.439452e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=1.442533e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=1.476622e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',8, ... 'phase',(0)*pi/180, ... 'title','lambda(8)=1.512414e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',7, ... 'phase',(0)*pi/180, ... 'title','lambda(7)=1.534592e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',8, ... 'phase',(0)*pi/180, ... 'title','lambda(8)=1.512414e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=1.476622e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=1.442533e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=1.442533e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=1.442533e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=1.439452e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',12, ... 'phase',(0)*pi/180, ... 'title','lambda(12)=1.413811e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=1.368061e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.338786e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=1.245863e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=1.182362e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.338786e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',7, ... 'phase',(0)*pi/180, ... 'title','lambda(7)=1.534592e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',8, ... 'phase',(0)*pi/180, ... 'title','lambda(8)=1.512414e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)t`','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',7, ... 'phase',(0)*pi/180, ... 'title','lambda(7)=1.534592e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=1.476622e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=1.442533e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=1.439452e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=1.442533e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=1.439452e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',12, ... 'phase',(0)*pi/180, ... 'title','lambda(12)=1.413811e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=1.368061e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=1.368061e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=1.368061e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.338786e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=1.245863e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=1.182362e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=1.439452e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=1.182362e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=1.245863e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.338786e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=1.368061e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=1.439452e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=1.442533e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=1.476622e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',7, ... 'phase',(0)*pi/180, ... 'title','lambda(7)=1.534592e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',8, ... 'phase',(0)*pi/180, ... 'title','lambda(8)=1.512414e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=1.476622e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=1.442533e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=1.439452e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',12, ... 'phase',(0)*pi/180, ... 'title','lambda(12)=1.413811e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=1.368061e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.338786e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=1.245863e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=1.182362e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','16', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.749051e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0160952192275322,0.0580936888887782,-0.0324857679437989,0.0374960236679905,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=1.248806e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00245200780154536,0.0395464618597006,-0.0149903200408515,0.0200005757650432,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=1.309936e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00245200780154536,0.0395464618597006,-0.0149903200408515,0.0200005757650432,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.400127e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00245200780154536,0.0395464618597006,-0.0149903200408515,0.0200005757650432,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=1.441772e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00245200780154536,0.0395464618597006,-0.0149903200408515,0.0200005757650432,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',12, ... 'phase',(0)*pi/180, ... 'title','lambda(12)=1.485793e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00245200780154536,0.0395464618597006,-0.0149903200408515,0.0200005757650432,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=1.502893e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00245200780154536,0.0395464618597006,-0.0149903200408515,0.0200005757650432,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=1.509431e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00245200780154536,0.0395464618597006,-0.0149903200408515,0.0200005757650432,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=1.545196e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00245200780154536,0.0395464618597006,-0.0149903200408515,0.0200005757650432,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',8, ... 'phase',(0)*pi/180, ... 'title','lambda(8)=1.579882e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00245200780154536,0.0395464618597006,-0.0149903200408515,0.0200005757650432,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... t` 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',7, ... 'phase',(0)*pi/180, ... 'title','lambda(7)=1.597478e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00245200780154536,0.0395464618597006,-0.0149903200408515,0.0200005757650432,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','6', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=2.009831e11 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00245200780154536,0.0395464618597006,-0.0149903200408515,0.0200005757650432,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=5.758766e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00245200780154536,0.0395464618597006,-0.0149903200408515,0.0200005757650432,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=6.76759e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00245200780154536,0.0327227241145628,-0.0149903200408515,0.0200005757650432,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=6.954213e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00245200780154536,0.0327227241145628,-0.0149903200408515,0.0200005757650432,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=7.586843e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00245200780154536,0.0327227241145628,-0.015049828367052,0.0200600840912437,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',12, ... 'phase',(0)*pi/180, ... 'title','lambda(12)=7.96432e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00245200780154536,0.0327227241145628,-0.015049828367052,0.0200600840912437,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=8.172575e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00245200780154536,0.0327227241145628,-0.015049828367052,0.0200600840912437,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=8.358121e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00245200780154536,0.0327227241145628,-0.015049828367052,0.0200600840912437,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=8.431681e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00245200780154536,0.0327227241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',8, ... 'phase',(0)*pi/180, ... 'title','lambda(8)=8.747063e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00245200780154536,0.0327227241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=8.431681e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00245200780154536,0.0327227241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=8.358121e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00245200780154536,0.0327227241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=8.172575e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00245200780154536,0.0327227241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',12, ... 'phase',(0)*pi/180, ... 'title','lambda(12)=7.96432e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=7.586843e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=6.954213e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=6.76759e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=5.758766e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','7', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.084299e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=6.438555e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=7.389506e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=7.695231e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=8.312546e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',12, ... 'phase',(0)*pi/180, ... 'title','lambda(12)=8.623541e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=8.751501e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=9.112091e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=9.557666e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',8, ... 'phase',(0)*pi/180, ... 'title','lambda(8)=9.632117e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','8', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradxt`)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.143696e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=7.118099e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=7.118099e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=8.011071e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=8.44837e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=9.037046e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',12, ... 'phase',(0)*pi/180, ... 'title','lambda(12)=9.225876e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=9.422262e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=9.800158e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=1.027374e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',8, ... 'phase',(0)*pi/180, ... 'title','lambda(8)=1.069285e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',7, ... 'phase',(0)*pi/180, ... 'title','lambda(7)=1.074943e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',6, ... 'phase',(0)*pi/180, ... 'title','lambda(6)=1.080404e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','9', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.228098e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=7.796116e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=8.637439e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=9.202806e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=9.741057e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',12, ... 'phase',(0)*pi/180, ... 'title','lambda(12)=9.831303e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=1.013015e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=1.049154e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=1.091479e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',8, ... 'phase',(0)*pi/180, ... 'title','lambda(8)=1.124872e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','10', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.31608e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=8.472173e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=9.268148e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=9.955611e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=1.036514e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',12, ... 'phase',(0)*pi/180, ... 'title','lambda(12)=1.052099e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... t` 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=1.084476e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=1.118239e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=1.154596e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',8, ... 'phase',(0)*pi/180, ... 'title','lambda(8)=1.183813e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',7, ... 'phase',(0)*pi/180, ... 'title','lambda(7)=1.210097e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','11', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.399235e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=9.146177e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=9.902224e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.070585e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=1.096324e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',12, ... 'phase',(0)*pi/180, ... 'title','lambda(12)=1.12425e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=1.155943e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=1.186806e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=1.216465e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',8, ... 'phase',(0)*pi/180, ... 'title','lambda(8)=1.246274e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',7, ... 'phase',(0)*pi/180, ... 'title','lambda(7)=1.275527e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','12', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','12', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','12', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.490902e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=9.818166e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=1.053882e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.145331e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=1.15633e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.145331e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=1.15633e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',12, ... 'phase',(0)*pi/180, ... 'title','lambda(12)=1.196701e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=1.227207e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=1.254082e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=1.278379e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',8, ... 'phase',(0)*pi/180, ... 'title','lambda(8)=1.311262e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',7, ... 'phase',(0)*pi/180, ... 'title','lambda(7)=1.340935e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','13', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^t`2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.565884e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=1.048824e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=1.117728e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.216749e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=1.219806e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',12, ... 'phase',(0)*pi/180, ... 'title','lambda(12)=1.269129e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=1.298195e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=1.319017e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=1.342203e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',8, ... 'phase',(0)*pi/180, ... 'title','lambda(8)=1.377635e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',7, ... 'phase',(0)*pi/180, ... 'title','lambda(7)=1.406051e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',6, ... 'phase',(0)*pi/180, ... 'title','lambda(6)=1.491113e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','14', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.633227e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=1.11565e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=1.18171e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.277558e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=1.294027e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',12, ... 'phase',(0)*pi/180, ... 'title','lambda(12)=1.341466e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=1.368889e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=1.381442e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=1.408552e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',8, ... 'phase',(0)*pi/180, ... 'title','lambda(8)=1.444716e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',7, ... 'phase',(0)*pi/180, ... 'title','lambda(7)=1.470626e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',6, ... 'phase',(0)*pi/180, ... 'title','lambda(6)=1.513576e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','15', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.686764e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=1.182307e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=1.245789e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0t`.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.338702e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=1.439296e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=1.442425e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','16', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.749051e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=1.248806e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=1.309936e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.400127e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=1.441772e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',12, ... 'phase',(0)*pi/180, ... 'title','lambda(12)=1.485793e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','9', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2848*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3660*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.228098e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',7, ... 'phase',(0)*pi/180, ... 'title','lambda(7)=1.14494e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',6, ... 'phase',(0)*pi/180, ... 'title','lambda(6)=1.180524e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',5, ... 'phase',(0)*pi/180, ... 'title','lambda(5)=1.193498e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',4, ... 'phase',(0)*pi/180, ... 'title','lambda(4)=1.204933e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.228098e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=9.202806e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.00620200780154536,0.0364727241145628,-0.0151097428934314,0.020119998617623,-1,1]); % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.2 (COMSOL 3.2.0.224, $Date: 2005/10/24 07:30:19 $) % Some geometry objects are stored in a separate file. % The name of this file is given by the variable 'flbinaryfile'. flbinaryfile=''; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'-(Haziy*M*test(Haxi))+Hazix*test(Hazi)+Hazi*test(Hazix)-Hrad*M*test(Hazix)-Haxi*M*test(Haziy)-Hazix*M*test(Hrad)+(Haxi*M^2*test(Haxi)+(Hazi-Hrad*M)*(test(Hazi)-M*test(Hrad)))/x+x*((Haxix-Hrady)*test(Haxix)+Hazix*test(Hazix)+Haziy*test(Haziy)-Haxix*test(Hrady)+Hrady*test(Hrady))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'(-epara1*Haziy*M*test(Haxi)+eperp1*Hazix*test(Hazi)+eperp1*Hazi*test(Hazix)-eperp1*Hrad*M*test(Hazix)-epara1*Haxi*M*test(Haziy)-eperp1*Hazix*M*test(Hrad))/(epara1*eperp1)+(epara1*Haxi*M^2*test(Haxi)+eperp1*Hazi*test(Hazi)-eperp1*Hrad*M*test(Hazi)-eperp1*Hazi*M*test(Hrad)+eperp1*Hrad*M^2*test(Hrad))/(epara1*eperp1*x)+(x*(epara1*(Haxix-Hrady)*test(Haxix)+eperp1*Hazix*test(Hazix)+epara1*Haziy*test(Haziy)-epara1*Haxix*test(Hrady)+epara1*Hrady*test(Hrady)))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.228098e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00893335035496t`334,0.0516080822710715,-0.0327858550315698,0.0377961107557615,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.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,1,1, ... 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2, ... 2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2, ... 2,1,1,1,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_0:vacuum','dielectric_1','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,2,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.228098e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00893335035496334,0.0516080822710715,-0.0327858550315698,0.0377961107557615,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=9.202806e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00893335035496334,0.0516080822710715,-0.0418314245107177,0.0468416802349093,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=9.202806e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00893335035496334,0.0516080822710715,-0.0327858550315698,0.0377961107557615,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=9.202806e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',2, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[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]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00893335035496334,0.0516080822710715,-0.0327858550315698,0.0377961107557615,-1,1]); % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.2 (COMSOL 3.2.0.224, $Date: 2005/10/24 07:30:19 $) % Some geometry objects are stored in a separate file. % The name of this file is given by the variable 'flbinaryfile'. flbinaryfile=''; % Geometry [g2,g9,g10,g11,g12,g13,g14,g42,g43,g44,g45,g46,g47,g48,g49,g50,g51,g52,g53,g54,g55,g56,g57,g58,g59,g60,g61]=geomcopy({g28,g38,g27,g16,g20,g35,g22,g33,g19,g30,g23,g25,g32,g40,g31,g17,g21,g39,g18,g34,g29,g24,g41,g36,g37,g15,g26}); clear g28 g38 g27 g16 g20 g35 g22 g33 g19 g30 g23 g25 g32 g40 g31 g17 g21 g39 g18 g34 g29 g24 g41 g36 g37 g15 g26 g62=flbinary('g62','draw',flbinaryfile); g63=flbinary('g63','draw',flbinaryfile); g64=flbinary('g64','draw',flbinaryfile); g65=flbinary('g65','draw',flbinaryfile); g66=flbinary('g66','draw',flbinaryfile); g67=flbinary('g67','draw',flbinaryfile); g68=flbinary('g68','draw',flbinaryfile); g69=flbinary('g69','draw',flbinaryfile); g70=flbinary('g70','draw',flbinaryfile); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','9', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Geometry clear s s.objs={g62,g63,g64,g65,g66,g67,g68,g69,g70}; s.name={'s1','s2','s3','s4','v1','v2','v3','v4','v5'}; s.tags={'g62','g63','g64','g65','g66','g67','g68','g69','g70'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','14', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','14', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','14', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',1, ... 'hgrad',1.3, ... 'hcurve',0.3, ... 'hcutoff',0.001, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,2,1,2,1,2,2,2,2,1,2,1,2,2,2,2,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_1','dielectric_0:vacuum','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,1,2,1,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.654084e11 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0190790298376714,0.0617537617537796,-0.0227182521147096,0.0715203062267194,-1,1]); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgegroups',{{[2],[8],[4],[1]},{},{},{},{},{},{},{},{}}, ... 'edgelem',{1,[6],3,[30],5,[8],7,[6],14,[20],21,[24]}); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgegroups',{{[2],[8],[4],[1]},{},{},{},{},{},{},{},{}}, ... 'edgelem',{1,[10],3,[30],5,[14],7,[6],14,[20],21,[24]}); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgegroups',{{[2],[8],[4],[1]},{},{},{},{},{},{},{},{}}, ... 'edgelem',{1,[10],3,[30],5,[14],7,[10],14,[20],21,[24]}); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgegroups',{{[2],[8],[4],[1]},{},{},{},{},{},{},{},{}}, ... 'edgelem',{1,[10],3,[30],5,[14],7,[10],14,[20],21,[24]}); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgegroups',{{[2],[8],[4],[1]},{},{},{},{},{},{},{},{}}, ... 'edgelem',{1,[12],3,[30],5,[14],7,[10],14,[20],21,[24]}); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgegroups',{{[2],[8],[4],[1]},{},{},{},{},{},{},{},{}}, ... 'edgelem',{1,[11],3,[30],5,[14],7,[10],14,[20],21,[24]}); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgegroups',{{[2],[8],[4],[1]},{},{},{},{},{},{},{},{}}, ... 'edgelem',{1,[11],3,[30],5,[14],7,[10],14,[20],21,[24]}); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,2,1,2,1,2,2,2,2,1,2,1,2,2,2,2,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_1','dielectric_0:vacuum','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,1,2,1,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi'}; % Descriptions clear descr descr.expr= {'MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.495903e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0190790298376714,0.0617537617537796,-0.0227182521147096,0.0715203062267194,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0190790298376714,0.0617537617537796,-0.0347955783492975,0.0835976324613074,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=1.030399e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6) Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Hazi-Hrad*M+Hazix*x','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Hazi-Hrad*M+Hazix*x Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00112800835940596,0.0507685982271237,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,2,1,2,1,2,2,2,2,1,2,1,2,2,2,2,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_1','dielectric_0:vacuum','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,1,2,1,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,1,1,2,1,2,2,2,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'eperp',{'2.0','1.00'}, ... 'epara',{'2.0','1.00'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','0', ... 'Eazi','0', ... 'Eaxi','0'}; % Descriptions clear descr descr.expr= {'Eaxi','axiall component of electric field strength','MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'init',fem0.sol, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'eperp','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.495903e10 Surface: eperp Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00193862774883241,0.0515792176165501,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'eperp','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.495903e10 Surface: eperp Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00112800835940596,0.0507685982271237,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,2,1,2,1,2,2,2,2,1,2,1,2,2,2,2,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(ept`ara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_1','dielectric_0:vacuum','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,1,2,1,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,1,1,2,1,2,2,2,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'eperp',{'eperp1','1.00'}, ... 'epara',{'epara1','1.00'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','0', ... 'Eazi','0', ... 'Eaxi','0'}; % Descriptions clear descr descr.expr= {'Eaxi','axiall component of electric field strength','MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'init',fem0.sol, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'eperp','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.495903e10 Surface: eperp Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00153471948192387,0.0511753093496416,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'(Hazi-Hrad*M+Hazix*x)/epara','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.495903e10 Surface: (Hazi-Hrad*M+Hazix*x)/epara Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'(Hazi-Hrad*M+Hazix*x)/epara','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: (Hazi-Hrad*M+Hazix*x)/epara Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00163454908198365,0.0512751389497014,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Drad','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Drad Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Daxi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Daxi Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00246126295747873,0.0521018528251965,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'MagEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: MagEn Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00214526035642077,0.0517858502241385,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Erad','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Erad Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00183649445615039,0.0514770843238681,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Eaxi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Eaxi Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00173513784250016,0.0513757277102179,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Eazi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Eazi Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00173513784250016,0.0513757277102179,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Erad','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Erad Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00173513784250016,0.0513757277102179,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,2,1,2,1,2,2,2,2,1,2,1,2,2,2,2,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_1','dielectric_0:vacuum','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,1,2,1,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,1,1,2,1,2,2,2,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'eperp',{'eperp1','1.00'}, ... 'epara',{'epara1','1.00'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','Haxi*M- Haziy*x/eperp', ... 'Eazi','-Haxix+Hrady/eperp', ... 'Eaxi','Hazi-Hrad*M+Hazix*x/epara'}; % Descriptions clear descr descr.expr= {'Eaxi','axiall component of electric field strength','MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'init',fem0.sol, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Erad','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.495903e10 Surface: Erad Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00173513784250016,0.0513757277102179,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Eaxi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.495903e10 Surface: Eaxi Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00224977801258464,0.0518903678803024,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Eaxi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Eaxi Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00214526035642077,0.0517858502241385,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,2,1,2,1,2,2,2,2,1,2,1,2,2,2,2,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_1','dielectric_0:vacuum','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,1,2,1,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,1,1,2,1,2,2,2,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'eperp',{'eperp1','1.00'}, ... 'epara',{'epara1','1.00'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','Haxi*M- Haziy*x/eperp', ... 'Eazi','-Haxix+Hrady/eperp', ... 'Eaxi','Hazi-Hrad*M+Hazix*x/epara', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-06)'}; % Descriptions clear descr descr.expr= {'Eaxi','axiall component of electric field strength','MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)','ElecEn','electric field energy density','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'init',fem0.sol, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Eaxi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.513625e10 Surface: Eaxi Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Eaxi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Eaxi Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00224977801258464,0.0518903678803024,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00214526035642077,0.0517858502241385,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,2,1,2,1,2,2,2,2,1,2,1,2,2,2,2,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_1','dielectric_0:vacuum','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,1,2,1,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,1,1,2,1,2,2,2,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'eperp',{'eperp1','1.00'}, ... 'epara',{'epara1','1.00'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/eperp', ... 'Eazi','(-Haxix+Hrady)/eperp', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/epara', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-06)'}; % Descriptions clear descr descr.expr= {'Eaxi','axiall component of electric field strength','MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)','ElecEn','electric field energy density','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'init',fem0.sol, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.495903e10 Surface: ElecEn Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00163454908198365,0.0512751389497014,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Eaxi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Eaxi Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00163454908198365,0.0512751389497014,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Erad','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Erad Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00163454908198365,0.0512751389497014,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Eazi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Eazi Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00246126295747873,0.0521018528251965,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,2,1,2,1,2,2,2,2,1,2,1,2,2,2,2,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((eperp1*(test(Hazi)*Hazi-t`M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_1','dielectric_0:vacuum','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,1,2,1,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,1,1,2,1,2,2,2,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'eperp',{'eperp1','1.00'}, ... 'epara',{'epara1','1.00'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/eperp', ... 'Eazi','(-Haxix+Hrady)/eperp', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/epara', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-06)', ... 'Emag','og10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-06)'}; % Descriptions clear descr descr.expr= {'Eaxi','axiall component of electric field strength','MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)','ElecEn','electric field energy density','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement','Emag','electric field magnitude'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Eazi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.495903e10 Surface: Eazi Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00246126295747873,0.0521018528251965,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Eazi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Eazi Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00246126295747873,0.0521018528251965,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Emag','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Emag Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00246126295747873,0.0521018528251965,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Emag','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Emag Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Hazi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: Hazi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00256824945901339,0.0522088393267311,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'ElecEn','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: ElecEn Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00173513784250016,0.0513757277102179,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'ElecEn','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: ElecEn Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00173513784250016,0.0513757277102179,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'ElecEn','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: ElecEn Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00173513784250016,0.0513757277102179,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'ElecEn','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: ElecEn Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00173513784250016,0.0513757277102179,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'ElecEn','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: ElecEn Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00173513784250016,0.0513757277102179,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'MagEn','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: MagEn Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00173513784250016,0.0513757277102179,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'MagEn','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=1.030399e10 Surface: ElecEn Contour: MagEn Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00173513784250016,0.0513757277102179,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'MagEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'MagEn','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=1.030399e10 Surface: MagEn Contour: MagEn Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00173513784250016,0.0513757277102179,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'MagEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.2,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=1.030399e10 Surface: MagEn Contour: Haxi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00173513784250016,0.0513757277102179,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'MagEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=1.030399e10 Surface: MagEn Contour: Haxi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00173513784250016,0.0513757277102179,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=1.030399e10 Surface: ElecEn Contour: Haxi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00173513784250016,0.0513757277102179,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=1.100904e10 Surface: ElecEn Contour: Haxi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00173513784250016,0.0513757277102179,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: Haxi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00173513784250016,0.0513757277102179,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','off'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: Haxi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00173513784250016,0.0513757277102179,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: Haxi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00173513784250016,0.0513757277102179,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',[], ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: Haxi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00173513784250016,0.0513757277102179,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: Haxi Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00325502154171962,0.0483829640817542,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00153471948192387,0.0511753093496416,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'lindata',{'Hrad','cont','internal'}, ... 'linstyle','interp', ... 'linbar','on', ... 'linmap','jet(1024)', ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: Haxi Boundary: Hrad Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'bdl',{[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]}, ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00153471948192387,0.0511753093496416,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00574460143455437,0.0553851913022721,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Emag','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Emag Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00173513784250016,0.0513757277102179,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Emag','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Emag Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00256824945901339,0.0522088393267311,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Emag','cont','internal'}, ... 'tridlim',[0.001 10.00], ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Emag Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00256824945901339,0.0522088393267311,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Emag','cont','internal'}, ... 'tridlim',[0.001 1000], ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Emag Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00214526035642077,0.0517858502241385,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Emag','cont','internal'}, ... 'tridlim',[0.001 1000], ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Emag Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00214526035642077,0.0517858502241385,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Emag','cont','internal'}, ... 'tridlim',[0.001 1000], ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Emag Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00214526035642077,0.0517858502241385,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Emag','cont','internal'}, ... 'tridlim',[0.001 1000], ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Emag Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00214526035642077,0.0517858502241385,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,2,1,2,1,2,2,2,2,1,2,1,2,2,2,2,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_1','dielectric_0:vacuum','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,1,2,1,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,1,1,2,1,2,2,2,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'eperp',{'eperp1','1.00'}, ... 'epara',{'epara1','1.00'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/eperp', ... 'Eazi','(-Haxix+Hrady)/eperp', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/epara', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-06)', ... 'Emag','log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-04)'}; % Descriptions clear descr descr.expr= {'Eaxi','axiall component of electric field strength','MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)','ElecEn','electric field energy density','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement','Emag','electric field magnitude'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'init',fem0.sol, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'Emag','cont','internal'}, ... 'tridlim',[0.001 1000], ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.495903e10 Surface: Emag Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00214526035642077,0.0517858502241385,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Emag','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.495903e10 Surface: Emag Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00214526035642077,0.0517858502241385,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Emag','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Emag Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00183649445615039,0.0514770843238681,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Emag','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','flat', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Emag Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00183649445615039,0.0514770843238681,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Emag','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Emag Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00183649445615039,0.0514770843238681,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Emag','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','bone(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Emag Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.0018t`3649445615039,0.0514770843238681,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Emag','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','gray(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Emag Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00183649445615039,0.0514770843238681,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Emag','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','pink(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Emag Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00183649445615039,0.0514770843238681,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Emag','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','hot(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Emag Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00183649445615039,0.0514770843238681,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Emag','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Emag Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00183649445615039,0.0514770843238681,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00183649445615039,0.0514770843238681,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Eaxi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Eaxi Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00173513784250016,0.0513757277102179,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Erad','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Erad Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00173513784250016,0.0513757277102179,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Drad','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Drad Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00246126295747873,0.0521018528251965,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Erad','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Erad Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00246126295747873,0.0521018528251965,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Eazi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Eazi Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00246126295747873,0.0521018528251965,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Eazi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(90)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Eazi Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00246126295747873,0.0521018528251965,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Erad','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(90)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Erad Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.0040395349016057,0.0536801247693234,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Erad','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Erad Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.0040395349016057,0.0536801247693234,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'Eazi','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: Eazi Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00267607837394595,0.0523166682416637,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00246126295747873,0.0521018528251965,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00153471948192387,0.0511753093496416,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00153471948192387,0.0511753093496416,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00153471948192387,0.0511753093496416,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00153471948192387,0.0511753093496416,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00153471948192387,0.0511753093496416,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00153471948192387,0.0511753093496416,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00153471948192387,0.0511753093496416,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00153471948192387,0.0511753093496416,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,2,1,2,1,2,2,2,2,1,2,1,2,2,2,2,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_1','dielectric_0:vacuum','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,1,2,1,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,1,1,2,1,2,2,2,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'eperp',{'eperp1','1.00'}, ... 'epara',{'epara1','1.00'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/eperp', ... 'Eazi','(-Haxix+Hrady)/eperp', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/epara', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-04)', ... 'Emag','log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-04)'}; % Descriptions clear descr descr.expr= {'Eaxi','axiall component of electric field strength','MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)','ElecEn','electric field energy density','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement','Emag','electric field magnitude'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'init',fem0.sol, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.495903e10 Surface: ElecEn Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00153471948192387,0.0511753093496416,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecEn','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: ElecEn Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00163454908198365,0.0512751389497014,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-04)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-04) Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-8.24805507925479E-4,0.0459527480479601,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'Haxi*Haxi','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: Haxi*Haxi Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-8.24805507925479E-4,0.0459527480479601,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'lo10(Haxi*Haxi)','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: lo10(Haxi*Haxi) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00121656912149901,0.0508571589892167,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'lo10(Haxi*Haxi+1e-04)','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: lo10(Haxi*Haxi+1e-04) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-6.38948398362847E-4,0.0457668909383974,-0.00182680812279646,0.0514673979905142,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-04)','cont','internal'}, ... 'contlevels',20, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-04) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00395997697685237,0.049087919516887,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-04)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-04) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-04)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.5, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-04) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-04)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-04) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-04)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-04) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e-06)','Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e-06)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e-06), Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e-06)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e-06)','Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e-06)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e-06), Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e-06)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e-06)','Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e-06)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e-06), Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e-06)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e-06)','Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e-06)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e-06), Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e-06)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e-06)','Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e-06)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e-06), Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e-06)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e-06)','Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e-06)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e-06), Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e-06)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e-1)','Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e-1)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [Hazi*log10(Hazi*Hazi+Haxi*Hat`xi+1e-1), Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e-1)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e-1)','Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e-1)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e-1), Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e-1)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e1)','Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e1)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e1), Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e1)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e1)','Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e1)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e1), Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e1)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e1)','Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e1)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e1), Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e1)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e1)','Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e1)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e1), Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e1)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e1)','Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e1)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [Hazi*log10(Hazi*Hazi+Haxi*Haxi+1e1), Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e1)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'log10(Hazi*Hazi+Haxi*Haxi+1e01)*Hazi/(Hazi*Hazi+Haxi*Haxi)','Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e1)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [log10(Hazi*Hazi+Haxi*Haxi+1e01)*Hazi/(Hazi*Hazi+Haxi*Haxi), Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e1)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'log10(Hazi*Hazi+Haxi*Haxi+1e01)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi)','Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e1)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [log10(Hazi*Hazi+Haxi*Haxi+1e01)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi), Haxi*log10(Hazi*Hazi+Haxi*Haxi+1e1)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'log10(Hazi*Hazi+Haxi*Haxi+1e01)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi)','log10(Hazi*Hazi+Haxi*Haxi+1e01)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [log10(Hazi*Hazi+Haxi*Haxi+1e01)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi), log10(Hazi*Hazi+Haxi*Haxi+1e01)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'log10(Hazi*Hazi+Haxi*Haxi+1e-03)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi)','log10(Hazi*Hazi+Haxi*Haxi+1e-03)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [log10(Hazi*Hazi+Haxi*Haxi+1e-03)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi), log10(Hazi*Hazi+Haxi*Haxi+1e-03)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'log10(Hazi*Hazi+Haxi*Haxi+1e-07)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi)','log10(Hazi*Hazi+Haxi*Haxi+1e-07)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [log10(Hazi*Hazi+Haxi*Haxi+1e-07)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi), log10(Hazi*Hazi+Haxi*Haxi+1e-07)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'log10(Hazi*Hazi+Haxi*Haxi+1e+07)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi)','log10(Hazi*Hazi+Haxi*Haxi+1e+07)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [log10(Hazi*Hazi+Haxi*Haxi+1e+07)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi), log10(Hazi*Hazi+Haxi*Haxi+1e+07)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'log10(Hazi*Hazi+Haxi*Haxi+1e-07)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi)','log10(Hazi*Hazi+Haxi*Haxi+1e-07)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [log10(Hazi*Hazi+Haxi*Haxi+1e-07)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi), log10(Hazi*Hazi+Haxi*Haxi+1e-07)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'log10(1)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi)','log10(1)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [log10(1)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi), log10(1)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'log10(1)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi)','log10(1)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [log10(1)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi), log10(1)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'log10(1)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi)','log10(1)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [log10(1)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi), log10(1)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'log10(1)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi)','log10(1)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [log10(1)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi), log10(1)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'log10(1)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi)','log10(1)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [log10(1)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi), log10(1)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'log10(1)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi)','log10(1)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [log10(1)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi), log10(1)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'log10(1)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi)','log10(1)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [log10(1)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi), log10(1)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'log10(1)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi)','log10(1)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [log10(1)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi), log10(1)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'log10(1)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi)','log10(1)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [log10(1)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi), log10(1)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'log10(1)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi)','log10(1)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [log10(1)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi), log10(1)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'log10(1)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi)','log10(1)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [log10(1)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi), log10(1)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'(log10(Hazi*Hazi+Haxi*Haxi)+2)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi)','(log10(Hazi*Hazi+Haxi*Haxi)+2)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [(log10(Hazi*Hazi+Haxi*Haxi)+2)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi), (log10(Hazi*Hazi+Haxi*Haxi)+2)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'(log10(Hazi*Hazi+Haxi*Haxi)+4)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi)','(log10(Hazi*Hazi+Haxi*Haxi)+4)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [(log10(Hazi*Hazi+Haxi*Haxi)+4)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi), (log10(Hazi*Hazi+Haxi*Haxi)+4)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'(log10(Hazi*Hazi+Haxi*Haxi)+10)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi)','(log10(Hazi*Hazi+Haxi*Haxi)+10)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [(log10(Hazi*Hazi+Haxi*Haxi)+10)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi), (log10(Hazi*Hazi+Haxi*Haxi)+10)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'(log10(Hazi*Hazi+Haxi*Haxi)+14)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi)','(log10(Hazi*Hazi+Haxi*Haxi)+14)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [(log10(Hazi*Hazi+Haxi*Haxi)+14)*Hazi/sqrt(Hazi*Hazi+Haxi*Haxi), (log10(Hazi*Hazi+Haxi*Haxi)+14)*Haxi/sqrt(Hazi*Hazi+Haxi*Haxi)]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-05) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192542e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-9.04630684642005E-4,0.0460325732246766,-0.00112800835940596,0.0507685982271237,-1,1]); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgegroups',{{[2],[8],[4],[1]},{},{},{},{},{},{},{},{}}, ... 'edgelem',{1,[17],3,[40],5,[20],7,[14],14,[28],21,[30]}); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgegroups',{{[2],[8],[4],[1]},{},{},{},{},{},{},{},{}}, ... 'edgelem',{1,[17],3,[40],5,[22],7,[14],14,[28],21,[30]}); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,2,1,2,1,2,2,2,2,1,2,1,2,2,2,2,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_1','dielectric_0:vacuum','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,1,2,1,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,1,1,2,1,2,2,2,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'eperp',{'eperp1','1.00'}, ... 'epara',{'epara1','1.00'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/eperp', ... 'Eazi','(-Haxix+Hrady)/eperp', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/epara', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-04)', ... 'Emag','log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-04)'}; % Descriptions clear descr descr.expr= {'Eaxi','axiall component of electric field strength','MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)','ElecEn','electric field energy density','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement','Emag','electric field magnitude'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.495805e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00362800835940596,0.0482685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192519e10 Surface: log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-02) Contour: log10(Haxi*Haxi+1e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00921223383123901,0.0538528236989567,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192519e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02) Contour: log10(Haxi*Haxi+1e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00921223383123901,0.0538528236989567,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-04)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192519e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-04) Contour: log10(Haxi*Haxi+1e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00921223383123901,0.0538528236989567,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-04)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192519e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-04) Contour: log10(Haxi*Haxi+1e-05) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00921223383123901,0.0538528236989567,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-04)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+3e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192519e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-04) Contour: log10(Haxi*Haxi+3e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00921223383123901,0.0538528236989567,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-03)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+3e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192519e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-03) Contour: log10(Haxi*Haxi+3e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00921223383123901,0.0538528236989567,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-03)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+3e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, .t`.. 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','normalized', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192519e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-03) Contour: log10(Haxi*Haxi+3e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00921223383123901,0.0538528236989567,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-03)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+3e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192519e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-03) Contour: log10(Haxi*Haxi+3e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00921223383123901,0.0538528236989567,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-03)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+3e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192519e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-03) Contour: log10(Haxi*Haxi+3e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00921223383123901,0.0538528236989567,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-03)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+3e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192519e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-03) Contour: log10(Haxi*Haxi+3e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00921223383123901,0.0538528236989567,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Eaxi*Eaxi+1e-03)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+3e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192519e10 Surface: log10(Eaxi*Eaxi+1e-03) Contour: log10(Haxi*Haxi+3e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00921223383123901,0.0538528236989567,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-03)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+3e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192519e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-03) Contour: log10(Haxi*Haxi+3e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00985575482644509,0.0544963446941628,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+3e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192519e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02) Contour: log10(Haxi*Haxi+3e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00921223383123901,0.0538528236989567,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+3e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=1.030372e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02) Contour: log10(Haxi*Haxi+3e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00921223383123901,0.0538528236989567,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+3e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=1.100861e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02) Contour: log10(Haxi*Haxi+3e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00933212937787436,0.0539727192455921,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+3e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192519e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02) Contour: log10(Haxi*Haxi+3e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00933212937787436,0.0539727192455921,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+3e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=1.205595e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02) Contour: log10(Haxi*Haxi+3e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00933212937787436,0.0539727192455921,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+3e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',12, ... 'phase',(0)*pi/180, ... 'title','lambda(12)=1.240562e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02) Contour: log10(Haxi*Haxi+3e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00933212937787436,0.0539727192455921,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+3e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192519e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02) Contour: log10(Haxi*Haxi+3e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00933212937787436,0.0539727192455921,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'deformsub',{'Hrad','Hazi'}, ... 'deformscale',1, ... 'contdata',{'log10(Haxi*Haxi+3e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192519e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02) Contour: log10(Haxi*Haxi+3e-06) Arrow: [Hazi, Haxi] Deformation: Hrad,Hazi', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00933212937787436,0.0539727192455921,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+3e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192519e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02) Contour: log10(Haxi*Haxi+3e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00933212937787436,0.0539727192455921,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+3e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192519e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02) Contour: log10(Haxi*Haxi+3e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','off', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00933212937787436,0.0539727192455921,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+3e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192519e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02) Contour: log10(Haxi*Haxi+3e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00933212937787436,0.0539727192455921,-1,1]); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgegroups',{{[2],[8],[4],[1]},{},{},{},{},{},{},{},{}}, ... 'edgelem',{1,[13],3,[50],5,[28],7,[14],14,[28],21,[30]}); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgegroups',{{[2],[8],[4],[1]},{},{},{},{},{},{},{},{}}, ... 'edgelem',{1,[13],3,[50],5,[24],7,[14],14,[28],21,[30]}); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgegroups',{{[2],[8],[4],[1]},{},{},{},{},{},{},{},{}}, ... 'edgelem',{1,[13],3,[50],5,[26],7,[14],14,[28],21,[30]}); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgegroups',{{[2],[8],[4],[1]},{},{},{},{},{},{},{},{}}, ... 'edgelem',{1,[15],3,[50],5,[26],7,[14],14,[28],21,[30]}); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgegroups',{{[2],[8],[4],[1]},{},{},{},{},{},{},{},{}}, ... 'edgelem',{1,[16],3,[50],5,[26],7,[14],14,[28],21,[30]}); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgegroups',{{[2],[8],[4],[1]},{},{},{},{},{},{},{},{}}, ... 'edgelem',{1,[18],3,[50],5,[26],7,[14],14,[28],21,[30]}); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgegroups',{{[2],[8],[4],[1]},{},{},{},{},{},{},{},{}}, ... 'edgelem',{1,[20],3,[50],5,[26],7,[14],14,[28],21,[30]}); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgegroups',{{[2],[8],[4],[1]},{},{},{},{},{},{},{},{}}, ... 'edgelem',{1,[20],3,[50],5,[26],7,[14],14,[28],21,[40]}); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgegroups',{{[2],[8],[4],[1]},{},{},{},{},{},{},{},{}}, ... 'edgelem',{1,[20],3,[50],5,[26],7,[14],14,[28],21,[34]}); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgegroups',{{[2],[8],[4],[1]},{},{},{},{},{},{},{},{}}, ... 'edgelem',{1,[20],3,[50],5,[26],7,[14],14,[28],21,[34]}); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,2,1,2,1,2,2,2,2,1,2,1,2,2,2,2,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'(-epara2*Haziy*M*test(Haxi)+eperp2*Hazix*test(Hazi)+eperp2*Hazi*test(Hazix)-eperp2*Hrad*M*test(Hazix)-epara2*Haxi*M*test(Haziy)-eperp2*Hazix*M*test(Hrad))/(epara2*eperp2)+(epara2*Haxi*M^2*test(Haxi)+eperp2*Hazi*test(Hazi)-eperp2*Hrad*M*test(Hazi)-eperp2*Hazi*M*test(Hrad)+eperp2*Hrad*M^2*test(Hrad))/(epara2*eperp2*x)+(x*(epara2*(Haxix-Hrady)*test(Haxix)+eperp2*Hazix*test(Hazix)+epara2*Haziy*test(Haziy)-epara2*Haxix*test(Hrady)+epara2*Hrady*test(Hrady)))/(epara2*eperp2)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara3*Haziy*M*test(Haxi)+eperp3*Hazix*test(Hazi)+eperp3*Hazi*test(Hazix)-eperp3*Hrad*M*test(Hazix)-epara3*Haxi*M*test(Haziy)-eperp3*Hazix*M*test(Hrad))/(epara3*eperp3)+(epara3*Haxi*M^2*test(Haxi)+eperp3*Hazi*test(Hazi)-eperp3*Hrad*M*test(Hazi)-eperp3*Hazi*M*test(Hrad)+eperp3*Hrad*M^2*test(Hrad))/(epara3*eperp3*x)+(x*(epara3*(Haxix-Hrady)*test(Haxix)+eperp3*Hazix*test(Hazix)+epara3*Haziy*test(Haziy)-epara3*Haxix*test(Hrady)+epara3*Hrady*test(Hrady)))/(epara3*eperp3)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara4*Haziy*M*test(Haxi)+eperp4*Hazix*test(Hazi)+eperp4*Hazi*test(Hazix)-eperp4*Hrad*M*test(Hazix)-epara4*Haxi*M*test(Haziy)-eperp4*Hazix*M*test(Hrad))/(epara4*eperp4)+(epara4*Haxi*M^2*test(Haxi)+eperp4*Hazi*test(Hazi)-eperp4*Hrad*M*test(Hazi)-eperp4*Hazi*M*test(Hrad)+eperp4*Hrad*M^2*test(Hrad))/(epara4*eperp4*x)+(x*(epara4*(Haxix-Hrady)*test(Haxix)+eperp4*Hazix*test(Hazix)+epara4*Haziy*test(Haziy)-epara4*Haxix*test(Hrady)+epara4*Hrady*test(Hrady)))/(epara4*eperp4)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'},{'(-epara5*Haziy*M*test(Haxi)+eperp5*Hazix*test(Hazi)+eperp5*Hazi*test(Hazix)-eperp5*Hrad*M*test(Hazix)-epara5*Haxi*M*test(Haziy)-eperp5*Hazix*M*test(Hrad))/(epara5*eperp5)+(epara5*Haxi*M^2*test(Haxi)+eperp5*Hazi*test(Hazi)-eperp5*Hrad*M*test(Hazi)-eperp5*Hazi*M*test(Hrad)+eperp5*Hrad*M^2*test(Hrad))/(epara5*eperp5*x)+(x*(epara5*(Haxix-Hrady)*test(Haxix)+eperp5*Hazix*test(Hazix)+epara5*Haziy*test(Haziy)-epara5*Haxix*test(Hrady)+epara5*Hrady*test(Hrady)))/(epara5*eperp5)'; ... 'alpha*(Hrad*test(Haxiy)-Hazi*M*test(Haxiy)-Haxiy*M*test(Hazi)-Hradx*M*test(Hazi)+Haxiy*test(Hrad)+Hradx*test(Hrad)+(-Hrad*M*test(Hazi)+Hazi*M^2*test(Hazi)+Hrad*test(Hrad)-Hazi*M*test(Hrad))/x+Hrad*test(Hradx)-Hazi*M*test(Hradx)+x*(Haxiy*test(Haxiy)+Hradx*test(Haxiy)+Haxiy*test(Hradx)+Hradx*test(Hradx)))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'}}; equ.cporder = {{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'}}; equ.name = {'dielectric_1','dielectric_0:vacuum','dielectric_2','dielectric_3', ... 'dielectric_4','dielectric_5'}; equ.ind = [1,1,1,2,1,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,1,1,2,1,2,2,2,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'eperp',{'eperp1','1.00'}, ... 'epara',{'epara1','1.00'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/eperp', ... 'Eazi','(-Haxix+Hrady)/eperp', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/epara', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-04)', ... 'Emag','log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-04)'}; % Descriptions clear descr descr.expr= {'Eaxi','axiall component of electric field strength','MagEn','magnetic field energy density','DivH','divergence of magnetic field (should be zero)','ElecEn','electric field energy density','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement','Emag','electric field magnitude'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'eperp2','relative permittivity of dielectric_2 perpendicular to cylindrical axis','c','speed of light (exact!)','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','eperp_293K_sapph','nominal room temperature values for same','epara1','relative permittivity of dielectric_1 parallel to cylindrical axis','eperp3','etc.','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc.','eperp1','relative permittivity of dielectric_1 perpendicular to cylindrical axis','delta_eperp1','small postivie finite number (to avoid close-to-zero values)','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+3e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.495792e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02) Contour: log10(Haxi*Haxi+3e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00362800835940596,0.0482685982271237,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Haxi*Haxi+3e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02) Contour: log10(Haxi*Haxi+3e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00575095251905018,0.0508788950590848,-0.00921223383123901,0.0538528236989567,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Hazi*Hazi+3e-06)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02) Contour: log10(Hazi*Hazi+3e-06) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-1.37503775071269E-4,0.045139673983454,-3.97834199044468E-4,0.05006965418058,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Hazi*Hazi+1e-05)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02) Contour: log10(Hazi*Hazi+1e-05) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-1.37503775071269E-4,0.045139673983454,-7.72592776120882E-4,0.0504444127576565,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Hazi*Hazi)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02) Contour: log10(Hazi*Hazi) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-1.37503775071269E-4,0.045139673983454,-7.72592776120882E-4,0.0504444127576565,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Hazi*Hazi+1e-7)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02) Contour: log10(Hazi*Hazi+1e-7) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-1.37503775071269E-4,0.045139673983454,-6.46442516185475E-4,0.050318262497721,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Hazi*Hazi+1e-6)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02) Contour: log10(Hazi*Hazi+1e-6) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-1.37503775071269E-4,0.045139673983454,-0.00102867780378978,0.0507004977853253,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Hazi*Hazi+1e-6)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02) Contour: log10(Hazi*Hazi+1e-6) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-1.37503775071269E-4,0.045139673983454,-0.00102867780378978,0.0507004977853253,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Hazi*Hazi+1e-6)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02) Contour: log10(Hazi*Hazi+1e-6) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-1.37503775071269E-4,0.045139673983454,-0.00102867780378978,0.0507004977853253,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Hazi*Hazi+1e-6)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02) Contour: log10(Hazi*Hazi+1e-6) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-1.37503775071269E-4,0.045139673983454,-0.00102867780378978,0.0507004977853253,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Hazi*Hazi+1e-6)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-02) Contour: log10(Hazi*Hazi+1e-6) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00732552473044753,0.0523276949388303,-3.97834199044468E-4,0.05006965418058,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','14', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','14', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.00', ... 'epara2','1.00', ... 'eperp3','1.00', ... 'epara3','1.00', ... 'eperp4','1.00', ... 'epara4','1.00', ... 'eperp5','1.00', ... 'epara5','1.00', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','14', ... 'delta_e','0*1e-3', ... 'e1','9.8*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','14', ... 'delta_e','0*1e-3', ... 'e1','9.8*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','14', ... 'delta_e','0*1e-3', ... 'e1','9.8*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','14', ... 'delta_e','0*1e-3', ... 'e1','9.8*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','14', ... 'delta_e','0*1e-3', ... 'e1','9.8*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','14', ... 'delta_e','0*1e-3', ... 'e1','9.8*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','14', ... 'delta_e','0*1e-3', ... 'e1','9.8*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','14', ... 'delta_e','0*1e-3', ... 'e1','9.8*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H',''}; bnd.ind = [1,1,1,2,1,2,1,2,1,2,2,2,2,1,2,1,2,2,2,2,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Ht`rad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'uniaxial_dielectric_1','dielectric_0:vacuum','uniaxial_dielectric_2', ... 'uniaxial_dielectric_3','uniaxial_dielectric_4','uniaxial_dielectric_5', ... 'isotropic_dielectric_1','isotropic_dielectric_2','isotropic_dielectric_3', ... 'isotropic_dielectric_4','isotropic_dielectric_5'}; equ.ind = [1,1,1,2,1,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,1,1,2,1,2,2,2,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'eperp',{'eperp1','1'}, ... 'epara',{'epara1','1'}}; fem.equ = equ; % Global expressions fem.expr = {'HaziStr','log10(Hazi*Hazi+1e-6)', ... 'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/eperp', ... 'Eazi','(-Haxix+Hrady)/eperp', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/epara', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-4)', ... 'ElecStr','log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','MagEn','logarithmic magnetic field energy density','DivH','divergence of magnetic field (should be zero!)','ElecEn','logarithmic electric energy density','HaziStr','logarithmic magnitude of azimuthal magnetic field strength','Eazi','azimuthal component of electric field strength','ElecStr','logarithmic magnitude of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'ElecStr','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'HaziStr','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.495792e10 Surface: ElecStr Contour: HaziStr Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00238319682096284,0.0472968951434518,-0.00248965006321669,0.0522826513275504,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecStr','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'HaziStr','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: ElecStr Contour: HaziStr Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00213568491890328,0.0470493832413922,-0.0025429524178502,0.0523359536821839,-1,1]); % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.2 (COMSOL 3.2.0.224, $Date: 2005/10/24 07:30:19 $) % Some geometry objects are stored in a separate file. % The name of this file is given by the variable 'flbinaryfile'. flbinaryfile=''; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'}}; bnd.name = {'tangential_H','normal_H','null'}; bnd.ind = [1,1,1,3,1,3,1,3,1,3,3,3,3,1,3,1,3,3,3,3,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'uniaxial_dielectric_1','dielectric_0:vacuum','uniaxial_dielectric_2', ... 'uniaxial_dielectric_3','uniaxial_dielectric_4','uniaxial_dielectric_5', ... 'isotropic_dielectric_1','isotropic_dielectric_2','isotropic_dielectric_3', ... 'isotropic_dielectric_4','isotropic_dielectric_5'}; equ.ind = [1,1,1,2,1,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,1,1,2,1,2,2,2,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'eperp',{'eperp1','1'}, ... 'epara',{'epara1','1'}}; fem.equ = equ; % Global expressions fem.expr = {'HaziStr','log10(Hazi*Hazi+1e-6)', ... 'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/eperp', ... 'Eazi','(-Haxix+Hrady)/eperp', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/epara', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-4)', ... 'ElecStr','log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','MagEn','logarithmic magnetic field energy density','DivH','divergence of magnetic field (should be zero!)','HaziStr','logarithmic magnitude of azimuthal magnetic field strength','ElecEn','logarithmic electric energy density','Eazi','azimuthal component of electric field strength','ElecStr','logarithmic magnitude of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Daxi','axial component of electric displacement','Erad','radial component of electric field strength'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc. ...','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','e1','relative permittivity of isotropic_dielectric_1','delta_eperp1','fractional increment (for determining filling factors)','alpha','penalty coefficient on Div H','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'ElecStr','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'HaziStr','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.495792e10 Surface: ElecStr Contour: HaziStr Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00937291637677534,0.0542866146992643,-0.00295454421360046,0.0527475454779342,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'ElecStr','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'HaziStr','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: ElecStr Contour: HaziStr Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00213568491890328,0.0470493832413922,-0.00335492266478335,0.0531479239291171,-1,1]); % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.2 (COMSOL 3.2.0.224, $Date: 2005/10/24 07:30:19 $) % Some geometry objects are stored in a separate file. % The name of this file is given by the variable 'flbinaryfile'. flbinaryfile=''; % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'HaziStr','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2) Contour: HaziStr Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.0095134451429476,0.0544271434654365,-0.00307750688400119,0.0528705081483349,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Hazi*Hazi+1e-6)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hazi','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2) Contour: log10(Hazi*Hazi+1e-6) Arrow: [Hazi, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00213568491890328,0.0470493832413922,-0.00320046955440193,0.0529934708187357,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Hazi*Hazi+1e-6)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2) Contour: log10(Hazi*Hazi+1e-6) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00213568491890328,0.0470493832413922,-0.00320046955440193,0.0529934708187357,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Hazi*Hazi+1e-6)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2) Contour: log10(Hazi*Hazi+1e-6) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00213568491890328,0.0470493832413922,-0.00320046955440193,0.0529934708187357,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Hazi*Hazi+1e-6)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2) Contour: log10(Hazi*Hazi+1e-6) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00213568491890328,0.0470493832413922,-0.00320046955440193,0.0529934708187357,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Hazi*Hazi+1e-6)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2) Contour: log10(Hazi*Hazi+1e-6) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00213568491890328,0.0470493832413922,-0.00320046955440193,0.0529934708187357,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'}}; bnd.name = {'tangential_H','normal_H','null'}; bnd.ind = [1,1,1,3,1,3,1,3,1,3,3,3,3,1,3,1,3,3,3,3,1,1,1,1]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'uniax_diel_1','dielectric_0:vacuum','uniax_diel_2','uniax_diel_3', ... 'uniax_diel_4','uniax_diel_5','isotrop_diel_1','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,1,1,2,1,2,2,2,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,1,1,2,1,2,2,2,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'eperp',{'eperp1','1'}, ... 'epara',{'epara1','1'}}; fem.equ = equ; % Global expressions fem.expr = {'HaziStr','log10(Hazi*Hazi+1e-6)', ... 'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/eperp', ... 'Eazi','(-Haxix+Hrady)/eperp', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/epara', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-4)', ... 'ElecStr','log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','MagEn','logarithmic magnetic field energy density','DivH','divergence of magnetic field (should be zero!)','ElecEn','logarithmic electric energy density','HaziStr','logarithmic magnitude of azimuthal magnetic field strength','Eazi','azimuthal component of electric field strength','ElecStr','logarithmic magnitude of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Hazi*Hazi+1e-6)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=1.495792e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2) Contour: log10(Hazi*Hazi+1e-6) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00213568491890328,0.0470493832413922,-0.00320046955440193,0.0529934708187357,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Hazi*Hazi+1e-6)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2) Contour: log10(Hazi*Hazi+1e-6) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00239533257084357,0.0473090308933325,-0.00307750688400119,0.0528705081483349,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Hazi*Hazi+1e-6)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-2) Contour: log10(Hazi*Hazi+1e-6) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00291640028652702,0.0478300986090159,-0.00307750688400119,0.0528705081483349,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-6)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-2) Contour: log10(Eazi*Eazi+1e-6) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00291640028652702,0.0478300986090159,-0.00307750688400119,0.0528705081483349,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-4)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-2) Contour: log10(Eazi*Eazi+1e-4) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00329699902824359,0.0482106973507325,-0.00307750688400119,0.0528705081483349,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-2)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-2) Contour: log10(Eazi*Eazi+1e-2) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00329699902824359,0.0482106973507325,-0.00307750688400119,0.0528705081483349,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-2) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00329699902824359,0.0482106973507325,-0.00307750688400119,0.0528705081483349,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-3)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-3) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00329699902824359,0.0482106973507325,-0.00307750688400119,0.0528705081483349,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-4)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-4) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00329699902824359,0.0482106973507325,-0.00307750688400119,0.0528705081483349,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-4)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-4)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-4) Contour: log10(Eazi*Eazi+1e-4) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00329699902824359,0.0482106973507325,-0.00307750688400119,0.0528705081483349,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-4)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-4) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00329699902824359,0.0482106973507325,-0.00307750688400119,0.0528705081483349,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00355073152272131,0.0484644298452102,-0.00307750688400119,0.0528705081483349,-1,1]); % Create mapped quad mesh fem.mesh=meshmap(fem, ... 'edgegroups',{{[2],[8],[4],[1]},{},{},{},{},{},{},{},{}}, ... 'edgelem',{1,[20],3,[50],5,[26],7,[14],14,[28],21,[34]}); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=1.192515e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3,4,5,6,7,8,9]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.00991393281702475,0.0548276311395137,-0.00248965006321669,0.0522826513275504,-1,1]); % COMSOL Multiphyt`sics Model M-file % Generated by COMSOL 3.2 (COMSOL 3.2.0.224, $Date: 2005/10/24 07:30:19 $) % Some geometry objects are stored in a separate file. % The name of this file is given by the variable 'flbinaryfile'. flbinaryfile=''; % Geometry [g2,g9,g10,g11,g12,g13,g14,g42,g43]=geomcopy({g69,g70,g66,g64,g62,g68,g67,g65,g63}); clear g69 g70 g66 g64 g62 g68 g67 g65 g63 % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','14', ... 'delta_e','0*1e-3', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.445'}; % Geometry g44=ellip2(0.015,0.015,'base','center','pos',[0.015,0.01]); g45=ellip2('1.5','1.5','base','center','pos',{'6.0','0.0'},'rot','0'); clear s s.objs={g45}; s.name={'E1'}; s.tags={'g45'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',1, ... 'hgrad',1.3, ... 'hcurve',0.3, ... 'hcutoff',0.001, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Geometry g46=rect2(4,1,'base','center','pos',[4,0.5]); g47=rect2('6','1','base','center','pos',{'3','0'},'rot','0'); g48=rect2(4,2,'base','center','pos',[2,2]); g49=rect2('12','8','base','center','pos',{'6','0'},'rot','0'); g50=rect2('10','8','base','center','pos',{'5','0'},'rot','0'); g51=rect2('12','8','base','center','pos',{'6','0'},'rot','0'); g52=geomcomp({g45,g47},'ns',{'E1','R1'},'sf','E1+R1','edge','all'); clear s s.objs={g51,g52}; s.name={'R2','CO1'}; s.tags={'g51','g52'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',1, ... 'hgrad',1.3, ... 'hcurve',0.3, ... 'hcutoff',0.001, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',0.55, ... 'hgrad',1.25, ... 'hcurve',0.25, ... 'hcutoff',0.0005, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,1]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'eperp',{''}, ... 'epara',{''}}; fem.equ = equ; % Global expressions fem.expr = {'HaziStr','log10(Hazi*Hazi+1e-6)', ... 'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/eperp', ... 'Eazi','(-Haxix+Hrady)/eperp', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/epara', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-4)', ... 'ElecStr','log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','MagEn','logarithmic magnetic field energy density','DivH','divergence of magnetic field (should be zero!)','HaziStr','logarithmic magnitude of azimuthal magnetic field strength','ElecEn','logarithmic electric energy density','Eazi','azimuthal component of electric field strength','ElecStr','logarithmic magnitude of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Daxi','axial component of electric displacement','Erad','radial component of electric field strength'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'1.0','e1'}}; fem.equ = equ; % Global expressions fem.expr = {'HaziStr','log10(Hazi*Hazi+1e-6)', ... 'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/erel', ... 'Eazi','(-Haxix+Hrady)/erel', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/erel', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-4)', ... 'ElecStr','log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','MagEn','logarithmic magnetic field energy density','DivH','divergence of magnetic field (should be zero!)','ElecEn','logarithmic electric energy density','HaziStr','logarithmic magnitude of azimuthal magnetic field strength','Eazi','azimuthal component of electric field strength','ElecStr','logarithmic magnitude of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',16, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=9.111004e7 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-5.775,5.775,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','14', ... 'delta_e','0*1e-3', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.445'}; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=6.621456e7 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.35658536585366,7.35658536585366,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=7.374762e7 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.35658536585366,7.35658536585366,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=9.111004e7 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.35658536585366,7.35658536585366,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',2, ... 'phase',(0)*pi/180, ... 'title','lambda(2)=8.775633e7 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.35658536585366,7.35658536585366,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',3, ... 'phase',(0)*pi/180, ... 'title','lambda(3)=8.563512e7 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.35658536585366,7.35658536585366,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',4, ... 'phase',(0)*pi/180, ... 'title','lambda(4)=8.482303e7 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.39264705882353,7.39264705882353,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',5, ... 'phase',(0)*pi/180, ... 'title','lambda(5)=8.482133e7 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.39264705882353,7.39264705882353,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',6, ... 'phase',(0)*pi/180, ... 'title','lambda(6)=8.469181e7 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',7, ... 'phase',(0)*pi/180, ... 'title','lambda(7)=8.356003e7 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',8, ... 'phase',(0)*pi/180, ... 'title','lambda(8)=8.278385e7 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=7.742906e7 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=7.505268e7 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',12, ... 'phase',(0)*pi/180, ... 'title','lambda(12)=7.375062e7 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=7.374762e7 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=6.622618e7 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(16)=6.352029e7 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',15, ... 'phase',(0)*pi/180, ... 'title','lambda(15)=6.621456e7 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',14, ... 'phase',(0)*pi/180, ... 'title','lambda(14)=6.622618e7 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',13, ... 'phase',(0)*pi/180, ... 'title','lambda(13)=7.374762e7 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',12, ... 'phase',(0)*pi/180, ... 'title','lambda(12)=7.375062e7 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',10, ... 'phase',(0)*pi/180, ... 'title','lambda(10)=7.742906e7 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=7.505268e7 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','100', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.445'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','100', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.445'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','100', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.445'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = t`pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'1.0','e1'}}; fem.equ = equ; % Global expressions fem.expr = {'HaziStr','log10(Hazi*Hazi+1e-6)', ... 'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/erel', ... 'Eazi','(-Haxix+Hrady)/erel', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/erel', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-4)', ... 'ElecStr','log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','MagEn','logarithmic magnetic field energy density','DivH','divergence of magnetic field (should be zero!)','ElecEn','logarithmic electric energy density','HaziStr','logarithmic magnitude of azimuthal magnetic field strength','Eazi','azimuthal component of electric field strength','ElecStr','logarithmic magnitude of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',100, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=3.370281e10 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',5, ... 'phase',(0)*pi/180, ... 'title','lambda(5)=3.799862e9 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',23, ... 'phase',(0)*pi/180, ... 'title','lambda(23)=7.883978e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',24, ... 'phase',(0)*pi/180, ... 'title','lambda(24)=7.556728e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',26, ... 'phase',(0)*pi/180, ... 'title','lambda(26)=7.103416e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',34, ... 'phase',(0)*pi/180, ... 'title','lambda(34)=4.754158e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',35, ... 'phase',(0)*pi/180, ... 'title','lambda(35)=4.754153e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',36, ... 'phase',(0)*pi/180, ... 'title','lambda(36)=4.738783e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',37, ... 'phase',(0)*pi/180, ... 'title','lambda(37)=4.735521e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',38, ... 'phase',(0)*pi/180, ... 'title','lambda(38)=4.735512e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',39, ... 'phase',(0)*pi/180, ... 'title','lambda(39)=4.724396e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',40, ... 'phase',(0)*pi/180, ... 'title','lambda(40)=4.724231e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',41, ... 'phase',(0)*pi/180, ... 'title','lambda(41)=4.720561e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',42, ... 'phase',(0)*pi/180, ... 'title','lambda(42)=4.718683e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',43, ... 'phase',(0)*pi/180, ... 'title','lambda(43)=4.715236e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',44, ... 'phase',(0)*pi/180, ... 'title','lambda(44)=4.715128e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',45, ... 'phase',(0)*pi/180, ... 'title','lambda(45)=4.705014e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',46, ... 'phase',(0)*pi/180, ... 'title','lambda(46)=4.70413e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(100)=4.126006e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',95, ... 'phase',(0)*pi/180, ... 'title','lambda(95)=4.164138e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',94, ... 'phase',(0)*pi/180, ... 'title','lambda(94)=4.164142e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',93, ... 'phase',(0)*pi/180, ... 'title','lambda(93)=4.193565e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',92, ... 'phase',(0)*pi/180, ... 'title','lambda(92)=4.193575e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',90, ... 'phase',(0)*pi/180, ... 'title','lambda(90)=4.23114e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',91, ... 'phase',(0)*pi/180, ... 'title','lambda(91)=4.231117e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',89, ... 'phase',(0)*pi/180, ... 'title','lambda(89)=4.276625e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',86, ... 'phase',(0)*pi/180, ... 'title','lambda(86)=4.32982e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',82, ... 'phase',(0)*pi/180, ... 'title','lambda(82)=4.363984e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',78, ... 'phase',(0)*pi/180, ... 'title','lambda(78)=4.428057e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',74, ... 'phase',(0)*pi/180, ... 'title','lambda(74)=4.471615e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',70, ... 'phase',(0)*pi/180, ... 'title','lambda(70)=4.484702e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',68, ... 'phase',(0)*pi/180, ... 'title','lambda(68)=4.5043e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',67, ... 'phase',(0)*pi/180, ... 'title','lambda(67)=4.522615e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',63, ... 'phase',(0)*pi/180, ... 'title','lambda(63)=4.533817e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.42906403940887,7.42906403940887,-1,1]); % Geometry g53=rect2(8,8,'base','center','pos',[6,0]); clear s s.objs={g52,g53}; s.name={'CO1','R2'}; s.tags={'g52','g53'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',0.55, ... 'hgrad',1.25, ... 'hcurve',0.25, ... 'hcutoff',0.0005, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Refine mesh fem.mesh=meshrefine(fem, ... 'mcase',0, ... 'rmethod','regular'); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',0.55, ... 'hgrad',1.25, ... 'hcurve',0.25, ... 'hcutoff',0.0005, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Geometry g54=rect2(12,8,'base','center','pos',[6,0]); g55=rect2(8,8,'base','center','pos',[6,0]); g55=move(g55,[-2,0]); g56=rect2(12,8,'base','center','pos',[4,0]); g56=move(g56,[2,0]); g58=rect2('10','8','base','center','pos',{'5','0'},'rot','0'); clear s s.objs={g52,g58}; s.name={'CO1','R2'}; s.tags={'g52','g58'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',0.55, ... 'hgrad',1.25, ... 'hcurve',0.25, ... 'hcutoff',0.0005, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [4,4,1,4,4,4,4,4,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*t`(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'1','e1'}}; fem.equ = equ; % Global expressions fem.expr = {'HaziStr','log10(Hazi*Hazi+1e-6)', ... 'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/erel', ... 'Eazi','(-Haxix+Hrady)/erel', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/erel', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-4)', ... 'ElecStr','log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','MagEn','logarithmic magnetic field energy density','DivH','divergence of magnetic field (should be zero!)','ElecEn','logarithmic electric energy density','HaziStr','logarithmic magnitude of azimuthal magnetic field strength','Eazi','azimuthal component of electric field strength','ElecStr','logarithmic magnitude of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',100, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=5.85205e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-5.775,5.775,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'1','e1'}}; fem.equ = equ; % Global expressions fem.expr = {'HaziStr','log10(Hazi*Hazi+1e-6)', ... 'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/erel', ... 'Eazi','(-Haxix+Hrady)/erel', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/erel', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-4)', ... 'ElecStr','log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','MagEn','logarithmic magnetic field energy density','DivH','divergence of magnetic field (should be zero!)','ElecEn','logarithmic electric energy density','HaziStr','logarithmic magnitude of azimuthal magnetic field strength','Eazi','azimuthal component of electric field strength','ElecStr','logarithmic magnitude of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',100, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=5.740705e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-5.775,5.775,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(100)=4.784532e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.35658536585366,7.35658536585366,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',99, ... 'phase',(0)*pi/180, ... 'title','lambda(99)=4.812153e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.35658536585366,7.35658536585366,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',98, ... 'phase',(0)*pi/180, ... 'title','lambda(98)=4.899496e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.6,12.6,-7.35658536585366,7.35658536585366,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','off'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',98, ... 'phase',(0)*pi/180, ... 'title','lambda(98)=4.899496e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.95684039087948,5.95684039087948,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Eazi*Eazi+1e-3)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',98, ... 'phase',(0)*pi/180, ... 'title','lambda(98)=4.899496e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Contour: log10(Eazi*Eazi+1e-3) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.95684039087948,5.95684039087948,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',98, ... 'phase',(0)*pi/180, ... 'title','lambda(98)=4.899496e8 Surface: log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-5) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.95684039087948,5.95684039087948,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',98, ... 'phase',(0)*pi/180, ... 'title','lambda(98)=4.899496e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-5) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.07387190684134,5.57387190684134,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',98, ... 'phase',(0)*pi/180, ... 'title','lambda(98)=4.899496e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-5) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.07387190684134,5.57387190684134,-1,1]); % Geometry g59=rect2('8','8','base','center','pos',{'7','0'},'rot','0'); g60=rect2('8','8','base','center','pos',{'6','0'},'rot','0'); g61=rect2('8','8','base','center','pos',{'7','0'},'rot','0'); clear s s.objs={g52,g61}; s.name={'CO1','R2'}; s.tags={'g52','g61'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',0.55, ... 'hgrad',1.25, ... 'hcurve',0.25, ... 'hcutoff',0.0005, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Refine mesh fem.mesh=meshrefine(fem, ... 'mcase',0, ... 'rmethod','regular'); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',0.55, ... 'hgrad',1.25, ... 'hcurve',0.25, ... 'hcutoff',0.0005, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Refine mesh fem.mesh=meshrefine(fem, ... 'mcase',0, ... 'boxcoord',[4.310013655667101 8.230390612104022 -1.9846148651690463 1.700539473881661], ... 'rmethod','regular'); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',0.55, ... 'hgrad',1.25, ... 'hcurve',0.25, ... 'hcutoff',0.0005, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Refine mesh fem.mesh=meshrefine(fem, ... 'mcase',0, ... 'boxcoord',[5.360674679992197 8.481294737315986 -1.8591628025630644 1.9357620912678764], ... 'rmethod','regular'); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,1,1,4,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [2,1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2,1]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'e1','1'}}; fem.equ = equ; % Global expressions fem.expr = {'HaziStr','log10(Hazi*Hazi+1e-6)', ... 'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/erel', ... 'Eazi','(-Haxix+Hrady)/erel', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/erel', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-4)', ... 'ElecStr','log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','MagEn','logarithmic magnetic field energy density','DivH','divergence of magnetic field (should be zero!)','ElecEn','logarithmic electric energy density','HaziStr','logarithmic magnitude of azimuthal magnetic field strength','Eazi','azimuthal component of electric field strength','ElecStr','logarithmic magnitude of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',40, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=4.921745e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-5) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.07387190684134,5.57387190684134,-1,1]); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',0.55, ... 'hgrad',1.25, ... 'hcurve',0.25, ... 'hcutoff',0.0005, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Refine mesh fem.mesh=meshrefine(fem, ... 'mcase',0, ... 'boxcoord',[4.870931436546167 8.681537838202855 -2.172792959078018 2.233710739957083], ... 'rmethod','regular'); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,1,1,4,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [2,1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2,1]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'e1','1'}}; fem.equ = equ; % Global expressions fem.expr = {'HaziStr','log10(Hazi*Hazi+1e-6)', ... 'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/erel', ... 'Eazi','(-Haxix+Hrady)/erel', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/erel', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-4)', ... 'ElecStr','log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','MagEn','logarithmic magnetic field energy density','DivH','divergence of magnetic field (should be zero!)','ElecEn','logarithmic electric energy density','HaziStr','logarithmic magnitude of azimuthal magnetic field strength','Eazi','azimuthal component of electric field strength','ElecStr','logarithmic magnitude of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... t` 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',40, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-5)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=4.921745e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-5) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.07387190684134,5.57387190684134,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-4)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=4.921745e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-4) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.48540400218472,5.98540400218472,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.0, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=4.921745e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.48540400218472,5.98540400218472,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=4.921745e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.48540400218472,5.98540400218472,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=4.50111e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.48540400218472,5.98540400218472,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',39, ... 'phase',(0)*pi/180, ... 'title','lambda(39)=4.505008e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.50200430320407,6.00200430320407,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',38, ... 'phase',(0)*pi/180, ... 'title','lambda(38)=4.505015e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.50200430320407,6.00200430320407,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',37, ... 'phase',(0)*pi/180, ... 'title','lambda(37)=4.516689e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.50200430320407,6.00200430320407,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',36, ... 'phase',(0)*pi/180, ... 'title','lambda(36)=4.516695e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.50200430320407,6.00200430320407,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',34, ... 'phase',(0)*pi/180, ... 'title','lambda(34)=4.536095e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.50200430320407,6.00200430320407,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',33, ... 'phase',(0)*pi/180, ... 'title','lambda(33)=4.563119e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.50200430320407,6.00200430320407,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',32, ... 'phase',(0)*pi/180, ... 'title','lambda(32)=4.563127e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.50200430320407,6.00200430320407,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',31, ... 'phase',(0)*pi/180, ... 'title','lambda(31)=4.597652e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.50200430320407,6.00200430320407,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',30, ... 'phase',(0)*pi/180, ... 'title','lambda(30)=4.597662e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.50200430320407,6.00200430320407,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',29, ... 'phase',(0)*pi/180, ... 'title','lambda(29)=4.63954e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.50200430320407,6.00200430320407,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',28, ... 'phase',(0)*pi/180, ... 'title','lambda(28)=4.639549e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.50200430320407,6.00200430320407,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',27, ... 'phase',(0)*pi/180, ... 'title','lambda(27)=4.688612e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.50200430320407,6.00200430320407,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',26, ... 'phase',(0)*pi/180, ... 'title','lambda(26)=4.688623e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.50200430320407,6.00200430320407,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',25, ... 'phase',(0)*pi/180, ... 'title','lambda(25)=4.721029e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.50200430320407,6.00200430320407,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',24, ... 'phase',(0)*pi/180, ... 'title','lambda(24)=4.724762e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.50200430320407,6.00200430320407,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',20, ... 'phase',(0)*pi/180, ... 'title','lambda(20)=4.754421e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.50200430320407,6.00200430320407,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',11, ... 'phase',(0)*pi/180, ... 'title','lambda(11)=4.877141e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.50200430320407,6.00200430320407,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',2, ... 'phase',(0)*pi/180, ... 'title','lambda(2)=4.907697e8 (1) Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.50200430320407,6.00200430320407,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=4.921745e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[0.0410270262158776,11.9589729737841,-5.50200430320407,6.00200430320407,-1,1]); % Geometry g71=rect2('8','8','base','center','pos',{'6','0'},'rot','0'); clear s s.objs={g52,g71}; s.name={'CO1','R2'}; s.tags={'g52','g71'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',0.55, ... 'hgrad',1.25, ... 'hcurve',0.25, ... 'hcutoff',0.0005, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Refine mesh fem.mesh=meshrefine(fem, ... 'mcase',0, ... 'boxcoord',[4.496973684210527 8.525 -2.1254605263157895 2.364276315789474], ... 'rmethod','regular'); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,1,1,4,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [2,1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2,1]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'e1','1'}}; fem.equ = equ; % Global expressions fem.expr = {'HaziStr','log10(Hazi*Hazi+1e-6)', ... 'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/erel', ... 'Eazi','(-Haxix+Hrady)/erel', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/erel', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-4)', ... 'ElecStr','log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','MagEn','logarithmic magnetic field energy density','DivH','divergence of magnetic field (should be zero!)','ElecEn','logarithmic electric energy density','HaziStr','logarithmic magnitude of azimuthal magnetic field strength','Eazi','azimuthal component of electric field strength','ElecStr','logarithmic magnitude of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',40, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=5.294902e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.40519736842105,5.40519736842105,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=4.783953e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.83986975397974,5.83986975397974,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',39, ... 'phase',(0)*pi/180, ... 'title','lambda(39)=4.811764e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.83986975397974,5.83986975397974,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=4.783953e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.83986975397974,5.83986975397974,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',39, ... 'phase',(0)*pi/180, ... 'title','lambda(39)=4.811764e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.83986975397974,5.83986975397974,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',38, ... 'phase',(0)*pi/180, ... 'title','lambda(38)=4.898206e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.83986975397974,5.83986975397974,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',37, ... 'phase',(0)*pi/180, ... 'title','lambda(37)=4.921704e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.83986975397974,5.83986975397974,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',36, ... 'phase',(0)*pi/180, ... 'title','lambda(36)=4.951205e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.83986975397974,5.83986975397974,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',35, ... 'phase',(0)*pi/180, ... 'title','lambda(35)=4.954748e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.83986975397974,5.83986975397974,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',34, ... 'phase',(0)*pi/180, ... 'title','lambda(34)=4.954755e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.83986975397974,5.83986975397974,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',33, ... 'phase',(0)*pi/180, ... 'title','lambda(33)=4.965365e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.83986975397974,5.83986975397974,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',32, ... 'phase',(0)*pi/180, ... 'title','lambda(32)=4.965381e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.83986975397974,5.83986975397974,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',31, ... 'phase',(0)*pi/180, ... 'title','lambda(31)=4.98302e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.83986975397974,5.83986975397974,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',31, ... 'phase',(0)*pi/180, ... 'title','lambda(31)=4.98302e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.83986975397974,5.83986975397974,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','1000', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.445'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','1000', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.445'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,1,1,4,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrat`dy)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [2,1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2,1]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'e1','1'}}; fem.equ = equ; % Global expressions fem.expr = {'HaziStr','log10(Hazi*Hazi+1e-6)', ... 'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/erel', ... 'Eazi','(-Haxix+Hrady)/erel', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/erel', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-4)', ... 'ElecStr','log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','MagEn','logarithmic magnetic field energy density','DivH','divergence of magnetic field (should be zero!)','ElecEn','logarithmic electric energy density','HaziStr','logarithmic magnitude of azimuthal magnetic field strength','Eazi','azimuthal component of electric field strength','ElecStr','logarithmic magnitude of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',40, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=4.628007e9 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.83986975397974,5.83986975397974,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=4.488335e9 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.99606240713224,5.99606240713224,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',39, ... 'phase',(0)*pi/180, ... 'title','lambda(39)=4.489911e9 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.87387190684134,5.87387190684134,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',34, ... 'phase',(0)*pi/180, ... 'title','lambda(34)=4.521138e9 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.87387190684134,5.87387190684134,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',33, ... 'phase',(0)*pi/180, ... 'title','lambda(33)=4.522082e9 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.87387190684134,5.87387190684134,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',29, ... 'phase',(0)*pi/180, ... 'title','lambda(29)=4.546715e9 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.87387190684134,5.87387190684134,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=4.488335e9 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.87387190684134,5.87387190684134,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','100', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.445'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','100', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.445'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,1,1,4,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [2,1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2,1]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'e1','1'}}; fem.equ = equ; % Global expressions fem.expr = {'HaziStr','log10(Hazi*Hazi+1e-6)', ... 'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/erel', ... 'Eazi','(-Haxix+Hrady)/erel', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/erel', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-4)', ... 'ElecStr','log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','MagEn','logarithmic magnetic field energy density','DivH','divergence of magnetic field (should be zero!)','ElecEn','logarithmic electric energy density','HaziStr','logarithmic magnitude of azimuthal magnetic field strength','Eazi','azimuthal component of electric field strength','ElecStr','logarithmic magnitude of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',40, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=5.294902e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.87387190684134,5.87387190684134,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=4.783953e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.87387190684134,5.87387190684134,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','73', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.445'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','73', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.445'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,1,1,4,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [2,1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2,1]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'e1','1'}}; fem.equ = equ; % Global expressions fem.expr = {'HaziStr','log10(Hazi*Hazi+1e-6)', ... 'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/erel', ... 'Eazi','(-Haxix+Hrady)/erel', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/erel', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-4)', ... 'ElecStr','log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','MagEn','logarithmic magnetic field energy density','DivH','divergence of magnetic field (should be zero!)','ElecEn','logarithmic electric energy density','HaziStr','logarithmic magnitude of azimuthal magnetic field strength','Eazi','azimuthal component of electric field strength','ElecStr','logarithmic magnitude of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',40, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=4.019612e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.87387190684134,5.87387190684134,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.559387e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.87387190684134,5.87387190684134,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','72', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.445'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','72', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.445'}; % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.559387e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.87387190684134,5.87387190684134,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,1,1,4,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [2,1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2,1]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'e1','1'}}; fem.equ = equ; % Global expressions fem.expr = {'HaziStr','log10(Hazi*Hazi+1e-6)', ... 'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziyt`*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/erel', ... 'Eazi','(-Haxix+Hrady)/erel', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/erel', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-4)', ... 'ElecStr','log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','MagEn','logarithmic magnetic field energy density','DivH','divergence of magnetic field (should be zero!)','ElecEn','logarithmic electric energy density','HaziStr','logarithmic magnitude of azimuthal magnetic field strength','Eazi','azimuthal component of electric field strength','ElecStr','logarithmic magnitude of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',40, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=3.987289e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.87387190684134,5.87387190684134,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e0) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.87387190684134,5.87387190684134,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.87387190684134,5.87387190684134,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+0*Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(Erad*Erad+0*Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.87387190684134,5.87387190684134,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(0*Erad*Erad+0*Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(0*Erad*Erad+0*Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.87387190684134,5.87387190684134,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(0*Erad*Erad+0*Eazi*Eazi+0*Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(0*Erad*Erad+0*Eazi*Eazi+0*Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.87387190684134,5.87387190684134,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(0*Erad*Erad+1*Eazi*Eazi+0*Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(0*Erad*Erad+1*Eazi*Eazi+0*Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.85682148040639,5.85682148040639,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(1*Erad*Erad+0*Eazi*Eazi+0*Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(1*Erad*Erad+0*Eazi*Eazi+0*Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.85682148040639,5.85682148040639,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(0*Erad*Erad+0*Eazi*Eazi+1*Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(0*Erad*Erad+0*Eazi*Eazi+1*Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.85682148040639,5.85682148040639,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.85682148040639,5.85682148040639,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.55,11.55,-5.85682148040639,5.85682148040639,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','72', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.445'}; % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-4.51731301939058,4.51731301939058,-1,1]); % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.2 (COMSOL 3.2.0.224, $Date: 2005/10/24 07:30:19 $) % Some geometry objects are stored in a separate file. % The name of this file is given by the variable 'flbinaryfile'. flbinaryfile=''; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,1,1,4,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [2,1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2,1]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'e1','1'}}; fem.equ = equ; % Global expressions fem.expr = {'HaziStr','log10(Hazi*Hazi+1e-6)', ... 'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/erel', ... 'Eazi','(-Haxix+Hrady)/erel', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/erel', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-4)', ... 'ElecStr','log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)', ... 'ElecEng','Erad*Drad+Eazi*Dazi+Eaxi*Daxi'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','MagEn','logarithmic magnetic field energy density','DivH','divergence of magnetic field (should be zero!)','ElecEn','logarithmic electric energy density','HaziStr','logarithmic magnitude of azimuthal magnetic field strength','Eazi','azimuthal component of electric field strength','ElecStr','logarithmic magnitude of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','e1','relative permittivity of isotropic_dielectric_1','delta_eperp1','fractional increment (for determining filling factors)','alpha','penalty coefficient on Div H','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',40, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=3.987289e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.592649310872893,10.5926493108729,-4.89356814701378,4.89356814701378,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.36335403726708,5.36335403726708,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',39, ... 'phase',(0)*pi/180, ... 'title','lambda(39)=3.5403e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.36335403726708,5.36335403726708,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,1,1,4,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'},{'0';'0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... 'pk'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'},{'0';'0';'0'}}; equ.cporder = {{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;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'},{'0';'0';'0';'0';'0';'0'}}; equ.name = {'','dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2,3]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2,1]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'e1','1'}}; fem.equ = equ; % Global expressions fem.expr = {'HaziStr','log10(Hazi*Hazi+1e-6)', ... 'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/erel', ... 'Eazi','(-Haxix+Hrady)/erel', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/erel', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-4)', ... 'ElecStr','log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)', ... 'ElecEngIntegr','2*pi*x*(Erad*Drad+Eazi*Dazi+Eaxi*Daxi)'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','MagEn','logarithmic magnetic field energy density','DivH','divergence of magnetic field (should be zero!)','ElecEn','logarithmic electric energy density','HaziStr','logarithmic magnitude of azimuthal magnetic field strength','Eazi','azimuthal component of electric field strength','ElecStr','logarithmic magnitude of electric field strength','Drad','radial component of electric displacement','ElecEngIntegr','electric energy density integrand','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement'}; fem.descr = descr; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','e1','relative permittivity of isotropic_dielectric_1','delta_eperp1','fractional increment (for determining filling factors)','alpha','penalty coefficient on Div H','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',40, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=3.97358e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.592649310872893,10.5926493108729,-4.89356814701378,4.89356814701378,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.36335403726708,5.36335403726708,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,1,1,4,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'},{'0';'0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... 'pk'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'},{'0';'0';'0'}}; equ.cporder = {{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;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'},{'0';'0';'0';'0';'0';'0'}}; equ.name = {'','dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2,3]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2,1]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'e1','1'}}; fem.equ = equ; % Global expressions fem.expr = {'HaziStr','log10(Hazi*Hazi+1e-6)', ... 'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEn','log10(Hrad*Hrad+Hazi*Hazi+Haxi*Haxi+1e-6)', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','(Haxi*M- Haziy*x)/erel', ... 'Eazi','(-Haxix+Hrady)/erel', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/erel', ... 'ElecEn','log10(Erad*Drad+Eazi*Dazi+Eaxi*Daxi+1e-4)', ... 'ElecStr','log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-2)', ... 'ElecEngIntegr','2*pi*x*(Erad*Drad+Eazi*Dazi+Eaxi*Daxi)'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','MagEn','logarithmic magnetic field energy density','DivH','divergence of magnetic field (should be zero!)','ElecEn','logarithmic electric energy density','HaziStr','logarithmic magnitude of azimuthal magnetic field strength','Eazi','azimuthal component of electric field strength','ElecStr','logarithmic magnitude of electric field strength','Drad','radial component of electric displacement','ElecEngIntegr','electric energy density integrand','Dazi','azimuthal component of electric displacement','Erad','radial cot`mponent of electric field strength','Daxi','axial component of electric displacement'}; fem.descr = descr; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); clear equ equ.expr = {{'ElecEngIntegr'}}; equ.ipoints = {{'4'}}; equ.ind = {{'1','2','3'}}; src{1} = {{},{},equ}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {'ElecEng'}; elem.global = {'1'}; elemcpl{1} = elem; fem.elemcpl = elemcpl; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','e1','relative permittivity of isotropic_dielectric_1','delta_eperp1','fractional increment (for determining filling factors)','alpha','penalty coefficient on Div H','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',40, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=3.987332e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.592649310872893,10.5926493108729,-4.89356814701378,4.89356814701378,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.36335403726708,5.36335403726708,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.36335403726708,5.36335403726708,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.36335403726708,5.36335403726708,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.36335403726708,5.36335403726708,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.36335403726708,5.36335403726708,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.36335403726708,5.36335403726708,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.36335403726708,5.36335403726708,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','Hrad', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: Hrad', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.36335403726708,5.36335403726708,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecEn', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecEn', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.20393374741201,5.20393374741201,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecEng', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecEng', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.20393374741201,5.20393374741201,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecEn', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecEn', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.71810344827586,5.71810344827586,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecEn', ... 'maxminbnd','ElecEng', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecEn Boundary marker: ElecEng', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.85086206896552,5.85086206896552,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecEn', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecEn', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.73706896551724,5.73706896551724,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecEn', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(40)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecEn', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.31470137825421,5.31470137825421,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,1,1,4,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'},{'0';'0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... 'pk'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'},{'0';'0';'0'}}; equ.cporder = {{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;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'},{'0';'0';'0';'0';'0';'0'}}; equ.name = {'','dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2,3]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2,1]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'e1','1'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEnDens','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','Drad/erel', ... 'Eazi','(-Haxix+Hrady)/erel', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/erel', ... 'ElecMagSqrd','Erad*Erad+Eazi*Eazi+Eaxi*Eaxi', ... 'ElecEnDens','Erad*Drad+Eazi*Dazi+Eaxi*Daxi'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','DivH','divergence of magnetic field (should be zero!)','ElecEnDens','logarithmic electric energy density','ElecMagSqrd','electric field strength magnitude squared','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement','MagEnDens','logarithmic magnetic energy density'}; fem.descr = descr; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; elem.global = {}; elemcpl{1} = elem; fem.elemcpl = elemcpl; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','e1','relative permittivity of isotropic_dielectric_1','delta_eperp1','fractional increment (for determining filling factors)','alpha','penalty coefficient on Div H','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',40, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,1,1,4,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1},{1;1;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'},{'0';'0';'0';'0';'0';'0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... 'pk'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'},{'0';'0';'0'}}; equ.cporder = {{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;1},{1;1;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'},{'0';'0';'0';'0';'0';'0'}}; equ.name = {'','dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2,3]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2,1]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'e1','1'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEnDens','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi', ... 'Drad','Haxi*M- Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','Drad/erel', ... 'Eazi','(-Haxix+Hrady)/erel', ... 'Eaxi','(Hazi-Hrad*M+Hazix*x)/erel', ... 'ElecMagSqrd','Erad*Erad+Eazi*Eazi+Eaxi*Eaxi', ... 'ElecEnDens','Erad*Drad+Eazi*Dazi+Eaxi*Daxi'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','DivH','divergence of magnetic field (should be zero!)','ElecEnDens','logarithmic electric energy density','ElecMagSqrd','electric field strength magnitude squared','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement','MagEnDens','logarithmic magnetic energy density'}; fem.descr = descr; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; elem.global = {}; elemcpl{1} = elem; fem.elemcpl = elemcpl; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','e1','relative permittivity of isotropic_dielectric_1','delta_eperp1','fractional increment (for determining filling factors)','alpha','penalty coefficient on Div H','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'init',fem0.sol, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',10, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=3.652938e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.21362940275651,5.21362940275651,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.69777397260274,5.69777397260274,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.69777397260274,5.69777397260274,-1,1]); % Integrate I1=postint(fem,'ElecEnDens', ... 'dl',[1], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I2=postint(fem,'ElecEnDens', ... 'dl',[1], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I3=postint(fem,'ElecEnDens', ... 'dl',[1,2,3], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I4=postint(fem,'ElecEnDens', ... 'dl',[1,2,3], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I5=postint(fem,'ElecEnDens', ... 'dl',[1,2,3], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I6=postint(fem,'ElecEnDens', ... 'dl',[1,2,3], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I7=postint(fem,'ElecEnDens', ... 'dl',[1,2,3], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I8=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2,3], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I9=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I10=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I11=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[3], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I12=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2,3], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I13=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2,3], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I14=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2,3], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.513889e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2,3]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[-0.5,10.5,-5.31470137825421,5.31470137825421,-1,1]); % Geometry g2=rect2('8','8','base','center','pos',{'8','0'},'rot','0'); g52=move(g52,[0,-0.5]); g52=move(g52,[1.4142135623731,1]); g2=move(g2,[0,1]); [g9,g10]=geomcopy({g52,g2}); clear g52 g2 g11=ellip2(2,2,'base','center','pos',[8,0]); g12=ellip2('3','3','base','center','pos',{'8','0'},'rot','0'); [g13]=geomcopy({g12}); clear g12 g14=ellip2(1.5,1.5,'base','corner','pos',[7,-2]); g42=ellip2('1.5','1.5','base','corner','pos',{'8','0'},'rot','0'); g43=rect2(10,10,'base','center','pos',[6,5]); g44=rect2('8','8','base','center','pos',{'8','0'},'rot','0'); g45=ellip2('1.5','1.5','base','center','pos',{'8','0'},'rot','0'); g46=rect2(4,1,'base','corner','pos',[4,0]); g47=rect2('3','1','base','center','pos',{'4','0'},'rot','0'); g48=rect2('3','1','base','center','pos',{'6','0'},'rot','0'); g49=rect2('4','1','base','center','pos',{'6','0'},'rot','0'); g50=rect2('3','1','base','center','pos',{'6','0'},'rot','0'); g51=rect2('3','1','base','center','pos',{'5','0'},'rot','0'); g53=rect2('3','1','base','center','pos',{'5.5','0'},'rot','0'); g57=rect2('8','8','base','center','pos',{'9','0'},'rot','0'); g58=rect2('2','1','base','center','pos',{'6','0'},'rot','0'); g59=geomcomp({g45,g58},'ns',{'E1','R2'},'sf','E1+R2','edge','all'); clear s s.objs={g57,g59}; s.name={'R1','CO1'}; s.tags={'g57','g59'}; fem.draw=struct('s',s); fem.geom=geomcsg(fem); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',0.55, ... 'hgrad',1.25, ... 'hcurve',0.25, ... 'hcutoff',0.0005, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',0.55, ... 'hgrad',1.25, ... 'hcurve',0.25, ... 'hcutoff',0.0005, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',0.55, ... 'hgrad',1.25, ... 'hcurve',0.25, ... 'hcutoff',0.0005, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',0.55, ... 'hgrad',1.25, ... 'hcurve',0.25, ... 'hcutoff',0.0005, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',1, ... 'hgrad',1.3, ... 'hcurve',0.3, ... 'hcutoff',0.001, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',1, ... 'hgrad',1.3, ... 'hcurve',0.3, ... 'hcutoff',0.001, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Refine mesh fem.mesh=meshrefine(fem, ... 'mcase',0, ... 'boxcoord',[7.162068965517239 9.949999999999998 -1.9818965517241383 1.8870689655172415], ... 'rmethod','regular'); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',1, ... 'hgrad',1.3, ... 'hcurve',0.3, ... 'hcutoff',0.001, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Refine mesh fem.mesh=meshrefine(fem, ... 'mcase',0, ... 'boxcoord',[6.8586206896551705 10.70862068965517 -2.190517241379311 2.361206896551724], ... 'rmethod','regular'); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+t`test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,1]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{''}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEnDens','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi', ... 'Drad','Haxi*M-Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','Drad/erel', ... 'Eazi','Dazi/erel', ... 'Eaxi','Daxi/erel', ... 'ElecMagSqrd','Erad*Erad+Eazi*Eazi+Eaxi*Eaxi', ... 'ElecEnDens','Erad*Drad+Eazi*Dazi+Eaxi*Daxi'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','DivH','divergence of magnetic field (should be zero!)','ElecEnDens','logarithmic electric energy density','ElecMagSqrd','electric field strength magnitude squared','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement','MagEnDens','logarithmic magnetic energy density'}; fem.descr = descr; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; elem.global = {}; elemcpl{1} = elem; fem.elemcpl = elemcpl; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','e1','relative permittivity of isotropic_dielectric_1','delta_eperp1','fractional increment (for determining filling factors)','alpha','penalty coefficient on Div H','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',10, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'1.0','e1'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEnDens','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi', ... 'Drad','Haxi*M-Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','Drad/erel', ... 'Eazi','Dazi/erel', ... 'Eaxi','Daxi/erel', ... 'ElecMagSqrd','Erad*Erad+Eazi*Eazi+Eaxi*Eaxi', ... 'ElecEnDens','Erad*Drad+Eazi*Dazi+Eaxi*Daxi'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','DivH','divergence of magnetic field (should be zero!)','ElecEnDens','logarithmic electric energy density','ElecMagSqrd','electric field strength magnitude squared','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement','MagEnDens','logarithmic magnetic energy density'}; fem.descr = descr; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; elem.global = {}; elemcpl{1} = elem; fem.elemcpl = elemcpl; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','e1','relative permittivity of isotropic_dielectric_1','delta_eperp1','fractional increment (for determining filling factors)','alpha','penalty coefficient on Div H','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',10, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=8.692196e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-5.98362068965517,5.98362068965517,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=2.766706e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.39350061986317,6.39350061986317,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=2.773041e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.41057271764652,6.41057271764652,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum',8, ... 'phase',(0)*pi/180, ... 'title','lambda(8)=2.77305e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.41057271764652,6.41057271764652,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum',7, ... 'phase',(0)*pi/180, ... 'title','lambda(7)=2.782668e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.41057271764652,6.41057271764652,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum',7, ... 'phase',(0)*pi/180, ... 'title','lambda(7)=2.782668e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.41057271764652,6.41057271764652,-1,1]); % Integrate I15=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum',1, ... 'phase',(0)*pi/180); % Integrate I16=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum',1, ... 'phase',(0)*pi/180); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum',7, ... 'phase',(0)*pi/180, ... 'title','lambda(7)=2.782668e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-5.98362068965517,5.98362068965517,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','91', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.445'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','91', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.445'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'1.0','e1'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEnDens','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi', ... 'Drad','Haxi*M-Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','Drad/erel', ... 'Eazi','Dazi/erel', ... 'Eaxi','Daxi/erel', ... 'ElecMagSqrd','Erad*Erad+Eazi*Eazi+Eaxi*Eaxi', ... 'ElecEnDens','Erad*Drad+Eazi*Dazi+Eaxi*Daxi'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','DivH','divergence of magnetic field (should be zero!)','ElecEnDens','logarithmic electric energy density','ElecMagSqrd','electric field strength magnitude squared','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement','MagEnDens','logarithmic magnetic energy density'}; fem.descr = descr; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; elem.global = {}; elemcpl{1} = elem; fem.elemcpl = elemcpl; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',10, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=2.891738e9 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.41057271764652,6.41057271764652,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum',4, ... 'phase',(0)*pi/180, ... 'title','lambda(4)=3.5193e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.41057271764652,6.41057271764652,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum',5, ... 'phase',(0)*pi/180, ... 'title','lambda(5)=3.494228e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.41057271764652,6.41057271764652,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum',7, ... 'phase',(0)*pi/180, ... 'title','lambda(7)=3.479131e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.41057271764652,6.41057271764652,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.463061e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.41057271764652,6.41057271764652,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','92', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.445'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','92', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.445'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hradt`)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'1.0','e1'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEnDens','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi', ... 'Drad','Haxi*M-Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','Drad/erel', ... 'Eazi','Dazi/erel', ... 'Eaxi','Daxi/erel', ... 'ElecMagSqrd','Erad*Erad+Eazi*Eazi+Eaxi*Eaxi', ... 'ElecEnDens','Erad*Drad+Eazi*Dazi+Eaxi*Daxi'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','DivH','divergence of magnetic field (should be zero!)','ElecEnDens','logarithmic electric energy density','ElecMagSqrd','electric field strength magnitude squared','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement','MagEnDens','logarithmic magnetic energy density'}; fem.descr = descr; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; elem.global = {}; elemcpl{1} = elem; fem.elemcpl = elemcpl; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',10, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=2.576952e9 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.41057271764652,6.41057271764652,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.41057271764652,6.41057271764652,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','93', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.445'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','93', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.445'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'1.0','e1'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEnDens','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi', ... 'Drad','Haxi*M-Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','Drad/erel', ... 'Eazi','Dazi/erel', ... 'Eaxi','Daxi/erel', ... 'ElecMagSqrd','Erad*Erad+Eazi*Eazi+Eaxi*Eaxi', ... 'ElecEnDens','Erad*Drad+Eazi*Dazi+Eaxi*Daxi'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','DivH','divergence of magnetic field (should be zero!)','ElecEnDens','logarithmic electric energy density','ElecMagSqrd','electric field strength magnitude squared','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement','MagEnDens','logarithmic magnetic energy density'}; fem.descr = descr; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; elem.global = {}; elemcpl{1} = elem; fem.elemcpl = elemcpl; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',10, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=2.648324e9 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.41057271764652,6.41057271764652,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.53454e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.42773623228546,6.42773623228546,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','92', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.445'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','92', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.445'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'1.0','e1'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEnDens','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi', ... 'Drad','Haxi*M-Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','Drad/erel', ... 'Eazi','Dazi/erel', ... 'Eaxi','Daxi/erel', ... 'ElecMagSqrd','Erad*Erad+Eazi*Eazi+Eaxi*Eaxi', ... 'ElecEnDens','Erad*Drad+Eazi*Dazi+Eaxi*Daxi'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','DivH','divergence of magnetic field (should be zero!)','ElecEnDens','logarithmic electric energy density','ElecMagSqrd','electric field strength magnitude squared','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement','MagEnDens','logarithmic magnetic energy density'}; fem.descr = descr; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; elem.global = {}; elemcpl{1} = elem; fem.elemcpl = elemcpl; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',10, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=3.590447e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.42773623228546,6.42773623228546,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.42773623228546,6.42773623228546,-1,1]); % Integrate I17=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum',1, ... 'phase',(0)*pi/180); % Integrate I18=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum',1, ... 'phase',(0)*pi/180); % Integrate I19=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum',1, ... 'phase',(0)*pi/180); % Plot solution postplot(fem, ... 'tridata',{'log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(Erad*Erad+Eazi*Eazi+Eaxi*Eaxi+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-5.98362068965517,5.98362068965517,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','92', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.445'}; % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.41057271764652,6.41057271764652,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.41057271764652,6.41057271764652,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.41057271764652,6.41057271764652,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.41057271764652,6.41057271764652,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.41057271764652,6.41057271764652,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.41057271764652,6.41057271764652,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.41057271764652,6.41057271764652,-1,1]); % Integrate I20=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum',1, ... 'phase',(0)*pi/180); % Integrate I21=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum',1, ... 'phase',(0)*pi/180); % Integrate I22=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum',1, ... 'phase',(0)*pi/180); % Integrate I23=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum',1, ... 'phase',(0)*pi/180); % Integrate I24=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum',1, ... 'phase',(0)*pi/180); % Integrate I25=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum',1, ... 'phase',(0)*pi/180); % Integrate I26=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I27=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I28=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I29=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I30=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I31=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Hrad','Haxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Hrad, Haxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-5.98362068965517,5.98362068965517,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[1.22586206896552,16.7396551724138,-6.41057271764652,6.41057271764652,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMat`gSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.5, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.4, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.3, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.1, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',20, ... 'arrowyspacing',20, ... 'arrowscale',1.1, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',20, ... 'arrowscale',1.1, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',16, ... 'arrowyspacing',20, ... 'arrowscale',1.1, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',16, ... 'arrowyspacing',10, ... 'arrowscale',1.1, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',16, ... 'arrowyspacing',12, ... 'arrowscale',1.1, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',16, ... 'arrowyspacing',14, ... 'arrowscale',1.1, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',14, ... 'arrowscale',1.1, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',15, ... 'arrowscale',1.1, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.1, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','normalized', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',17, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',11, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',12, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',13, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[0.0,0.0,0.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498804e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',0.8, ... 'hgrad',1.3, ... 'hcurve',0.3, ... 'hcutoff',0.001, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Refine mesh fem.mesh=meshrefine(fem, ... 'mcase',0, ... 'rmethod','regular'); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',0.8, ... 'hgrad',1.3, ... 'hcurve',0.3, ... 'hcutoff',0.001, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',0.8, ... 'hgrad',1.3, ... 'hcurve',0.3, ... 'hcutoff',0.001, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',0.55, ... 'hgrad',1.25, ... 'hcurve',0.25, ... 'hcutoff',0.0005, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Refine mesh fem.mesh=meshrefine(fem, ... 'mcase',0, ... 'boxcoord',[6.866244057052297 10.422503961965134 -2.0570522979397783 2.0291600633914424], ... 'rmethod','regular'); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',0.55, ... 'hgrad',1.25, ... 'hcurve',0.25, ... 'hcutoff',0.0005, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Refine mesh fem.mesh=meshrefine(fem, ... 'mcase',0, ... 'boxcoord',[6.64310618066561 10.72931854199683 -2.4196513470681458 2.363866877971474], ... 'rmethod','regular'); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'1.0','e1'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEnDens','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi', ... 'Drad','Haxi*M-Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','Drad/erel', ... 'Eazi','Dazi/erel', ... 'Eaxi','Daxi/erel', ... 'ElecMagSqrd','Erad*Erad+Eazi*Eazi+Eaxi*Eaxi', ... 'ElecEnDens','Erad*Drad+Eazi*Dazi+Eaxi*Daxi'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','DivH','divergence of magnetic field (should be zero!)','ElecEnDens','logarithmic electric energy density','ElecMagSqrd','electric field strength magnitude squared','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement','MagEnDens','logarithmic magnetic energy density'}; fem.descr = descr; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; elem.global = {}; elemcpl{1} = elem; fem.elemcpl = elemcpl; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (p. 124 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',10, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=3.590305e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.29603803486529,14.7039619651347,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498621e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.67592891760905,14.324071082391,-4.4,4.4,-1,1]); % Integrate I32=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498621e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.97142857142857,14.0285714285714,-4.4,4.4,-1,1]); % Integrate I33=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I34=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I35=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I36=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I37=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I38=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498621e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.97142857142857,14.0285714285714,-4.4,4.4,-1,1]); % Integrate I39=postint(fem,'2*pi*x*Eaxi*Daxi', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I40=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','Eaxi*Eaxi', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498621e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: Eaxi*Eaxi', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.36064,13.63936,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','Eaxi*Eaxi', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498621e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: Eaxi*Eaxi', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.36064,13.63936,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','Eaxi*Eaxi', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498621e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: Eaxi*Eaxi', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.36064,13.63936,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','Eaxi*Eaxi', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498621e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: Eaxi*Eaxi', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.36064,13.63936,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.498621e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.36064,13.63936,-4.4,4.4,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','92', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.4457'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','92', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.4457'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','92', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.4457'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','92', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.4457'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','92', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.4457'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','92', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.4457'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','92', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', .t`.. 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.4457'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','92', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.4457'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','92', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.4457'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','92', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.4457'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','92', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.4457'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','92', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.4457'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'1.0','e1'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEnDens','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi', ... 'Drad','Haxi*M-Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','Drad/erel', ... 'Eazi','Dazi/erel', ... 'Eaxi','Daxi/erel', ... 'ElecMagSqrd','Erad*Erad+Eazi*Eazi+Eaxi*Eaxi', ... 'ElecEnDens','Erad*Drad+Eazi*Dazi+Eaxi*Daxi'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','DivH','divergence of magnetic field (should be zero!)','ElecEnDens','logarithmic electric energy density','ElecMagSqrd','electric field strength magnitude squared','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement','MagEnDens','logarithmic magnetic energy density'}; fem.descr = descr; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; elem.global = {}; elemcpl{1} = elem; fem.elemcpl = elemcpl; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (Fig B.2, p. 172 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',10, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=2.673731e9 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.26765188834154,13.7323481116585,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.496955e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.25320197044335,13.7467980295567,-4.4,4.4,-1,1]); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-4 4], ... 'lindata','ElecMagSqrd', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum',[1], ... 'phase',(0)*pi/180, ... 'title','ElecMagSqrd', ... 'axislabel',{'Arc-length','ElecMagSqrd'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-4 4], ... 'lindata','ElecMagSqrd', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum',[1], ... 'phase',(0)*pi/180, ... 'title','ElecMagSqrd', ... 'axislabel',{'Arc-length','ElecMagSqrd'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-4 4], ... 'lindata','ElecMagSqrd', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','ElecMagSqrd', ... 'axislabel',{'Arc-length','ElecMagSqrd'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,0,[0;0], ... 'pointdata','Hrad', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','Hrad', ... 'axislabel',{'Eigenvalue number','Hrad'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,0,[0;0], ... 'pointdata','Hrad', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','Hrad', ... 'axislabel',{'Eigenvalue number','Hrad'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,0,[0;0], ... 'pointdata','Hrad', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','Hrad', ... 'axislabel',{'Eigenvalue number','Hrad'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,0,[0;0], ... 'pointdata','Hrad', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','Hrad', ... 'axislabel',{'Eigenvalue number','Hrad'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-4 4], ... 'lindata','ElecMagSqrd', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','ElecMagSqrd', ... 'axislabel',{'Arc-length','ElecMagSqrd'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.496955e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.25320197044335,13.7467980295567,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=3.511199e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.25320197044335,13.7467980295567,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum',3, ... 'phase',(0)*pi/180, ... 'title','lambda(3)=5.774613e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.25320197044335,13.7467980295567,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum',7, ... 'phase',(0)*pi/180, ... 'title','lambda(7)=3.516196e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.25320197044335,13.7467980295567,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.496955e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.25320197044335,13.7467980295567,-4.4,4.4,-1,1]); % Plot in cross-section or along domain postcrossplot(fem,1,[9.2 9.2;-4 4], ... 'lindata','ElecMagSqrd', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','ElecMagSqrd', ... 'axislabel',{'Arc-length','ElecMagSqrd'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9.2 9.2;-4 4], ... 'lindata','Eaxi', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','Eaxi', ... 'axislabel',{'Arc-length','Eaxi'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9.2 9.2;-4 4], ... 'lindata','Eaxi', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','Eaxi', ... 'axislabel',{'Arc-length','Eaxi'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9.2 9.2;-4 4], ... 'lindata','Daxi', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','Daxi', ... 'axislabel',{'Arc-length','Daxi'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9.2 9.2;-4 4], ... 'lindata','Eaxi*Eaxi', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','Eaxi*Eaxi', ... 'axislabel',{'Arc-length','Eaxi*Eaxi'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[6.2 6.2;-4 4], ... 'lindata','Eaxi*Eaxi', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','Eaxi*Eaxi', ... 'axislabel',{'Arc-length','Eaxi*Eaxi'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[7.2 7.2;-4 4], ... 'lindata','Eaxi*Eaxi', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','Eaxi*Eaxi', ... 'axislabel',{'Arc-length','Eaxi*Eaxi'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[8 8;-4 4], ... 'lindata','Eaxi*Eaxi', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','Eaxi*Eaxi', ... 'axislabel',{'Arc-length','Eaxi*Eaxi'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9.5 9.5;-4 4], ... 'lindata','Eaxi*Eaxi', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','Eaxi*Eaxi', ... 'axislabel',{'Arc-length','Eaxi*Eaxi'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9.2 9.2;-4 4], ... 'lindata','Eaxi*Eaxi', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','Eaxi*Eaxi', ... 'axislabel',{'Arc-length','Eaxi*Eaxi'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9.1 9.1;-4 4], ... 'lindata','Eaxi*Eaxi', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','Eaxi*Eaxi', ... 'axislabel',{'Arc-length','Eaxi*Eaxi'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9.1 9.1;-4 4], ... 'lindata','log10(Eaxi*Eaxi)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9.1 9.1;-4 4], ... 'lindata','log10(Eaxi*Eaxi+5)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+5)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+5)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9.1 9.1;-4 4], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9.1 9.1;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'1.0','e1'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEnDens','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi', ... 'Drad','Haxi*M-Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','Drad/erel', ... 'Eazi','Dazi/erel', ... 'Eaxi','Daxi/erel', ... 'ElecMagSqrd','Erad*Erad+Eazi*Eazi+Eaxi*Eaxi', ... 'ElecEnDens','Erad*Drad+Eazi*Dazi+Eaxi*Daxi'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','DivH','divergence of magnetic field (should be zero!)','ElecEnDens','logarithmic electric energy density','ElecMagSqrd','electric field strength magnitude squared','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement','MagEnDens','logarithmic magnetic energy density'}; fem.descr = descr; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; elem.global = {}; elemcpl{1} = elem; fem.elemcpl = elemcpl; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (Fig B.2, p. 172 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... t` 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',10, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=2.713741e9 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.26765188834154,13.7323481116585,-4.4,4.4,-1,1]); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.496955e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.25320197044335,13.7467980295567,-4.4,4.4,-1,1]); % Integrate I41=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum',1, ... 'phase',(0)*pi/180); % Integrate I42=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum',1, ... 'phase',(0)*pi/180); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.496955e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.461852433281,15.2788069073783,-4.17896389324961,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.496955e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.461852433281,15.2788069073783,-4.50259488410749,4.72363099085788,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.496955e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.461852433281,15.2788069073783,-4.50259488410749,4.72363099085788,-1,1]); % Integrate I43=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.496955e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.461852433281,15.2788069073783,-4.17896389324961,4.4,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'1.0','e1'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEnDens','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi', ... 'Drad','Haxi*M-Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','Drad/erel', ... 'Eazi','Dazi/erel', ... 'Eaxi','Daxi/erel', ... 'ElecMagSqrd','Erad*Erad+Eazi*Eazi+Eaxi*Eaxi', ... 'ElecEnDens','Erad*Drad+Eazi*Dazi+Eaxi*Daxi'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','DivH','divergence of magnetic field (should be zero!)','ElecEnDens','electric energy density','ElecMagSqrd','electric field strength magnitude squared','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement','MagEnDens','logarithmic magnetic energy density'}; fem.descr = descr; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; elem.global = {}; elemcpl{1} = elem; fem.elemcpl = elemcpl; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (Fig B.2, p. 172 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',10, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=3.228033e9 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.461852433281,15.2788069073783,-4.17896389324961,4.4,-1,1]); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Integrate I44=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.496955e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.461852433281,15.2788069073783,-4.50259488410749,4.72363099085788,-1,1]); % Integrate I45=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.496955e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.461852433281,15.2788069073783,-4.17896389324961,4.4,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','93', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.4457'}; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'1.0','e1'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEnDens','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi', ... 'Drad','Haxi*M-Haziy*x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','Hazi-Hrad*M+Hazix*x', ... 'Erad','Drad/erel', ... 'Eazi','Dazi/erel', ... 'Eaxi','Daxi/erel', ... 'ElecMagSqrd','Erad*Erad+Eazi*Eazi+Eaxi*Eaxi', ... 'ElecEnDens','Erad*Drad+Eazi*Dazi+Eaxi*Daxi'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','DivH','divergence of magnetic field (should be zero!)','ElecEnDens','electric energy density','ElecMagSqrd','electric field strength magnitude squared','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement','MagEnDens','logarithmic magnetic energy density'}; fem.descr = descr; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; elem.global = {}; elemcpl{1} = elem; fem.elemcpl = elemcpl; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (Fig B.2, p. 172 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',10, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=2.495842e9 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.461852433281,15.2788069073783,-4.50259488410749,4.72363099085788,-1,1]); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','93', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.4457'}; % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.461852433281,15.2788069073783,-4.50259488410749,4.72363099085788,-1,1]); % Integrate I46=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I47=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.461852433281,15.2788069073783,-4.17896389324961,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','normalized', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.461852433281,15.2788069073783,-4.50259488410749,4.72363099085788,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[7.16609105180534,12.574568288854,-2.19603841536615,2.41707452211654,-1,1]); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',0.6, ... 'arrowtype','arrow', ... 'arrowstyle','normalized', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.84137931034483,14.1586206896552,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','normalized', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.84137931034483,14.1586206896552,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.84137931034483,14.1586206896552,-4.4,4.4,-1,1]); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.87027914614122,14.1297208538588,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi]', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.45217391304348,14.5478260869565,-4.4,4.4,-1,1]); % Plot in cross-section or along domain postcrossplot(fem,1,[9 9;-1.5 1.5], ... 'lindata','log10(Eaxi*Eaxi+100)', ... 'linstyle','-', ... 'lincolor','cycle', ... 'linmarker','none', ... 'linlegend','off', ... 'npoints',200, ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','log10(Eaxi*Eaxi+100)', ... 'axislabel',{'Arc-length','log10(Eaxi*Eaxi+100)'}, ... 'axistype',{'lin','lin'}, ... 'geomnum',[1], ... 'transparency',1.0); % Integrate I48=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.45217391304348,14.5478260869565,-4.4,4.4,-1,1]); % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.2 (COMSOL 3.2.0.224, $Date: 2005/10/24 07:30:19 $) % Some geometry objects are stored in a separate file. % The name of this file is given by the variable 'flbinaryfile'. flbinaryfile=''; % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Ht`azi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'1','e1'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEnDens','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi', ... 'Drad','(Haxi*M-Haziy*x)/x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','(Hazi-Hrad*M+Hazix*x)/x', ... 'Erad','Drad/erel', ... 'Eazi','Dazi/erel', ... 'Eaxi','Daxi/erel', ... 'ElecMagSqrd','Erad*Erad+Eazi*Eazi+Eaxi*Eaxi', ... 'ElecEnDens','Erad*Drad+Eazi*Dazi+Eaxi*Daxi'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','DivH','divergence of magnetic field (should be zero!)','ElecEnDens','electric energy density','ElecMagSqrd','electric field strength magnitude squared','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement','MagEnDens','logarithmic magnetic energy density'}; fem.descr = descr; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; elem.global = {}; elemcpl{1} = elem; fem.elemcpl = elemcpl; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (Fig B.2, p. 172 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','e1','relative permittivity of isotropic_dielectric_1','delta_eperp1','fractional increment (for determining filling factors)','alpha','penalty coefficient on Div H','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',10, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=2.983779e9 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.61451104100946,14.3854889589905,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-1)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.84137931034483,14.1586206896552,-4.53841876798517,4.53841876798517,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.84137931034483,14.1586206896552,-4.53841876798517,4.53841876798517,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.84137931034483,14.1586206896552,-4.53841876798517,4.53841876798517,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Eazi','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Eazi, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.84137931034482,14.1586206896552,-4.08841876798518,4.98841876798518,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.84137931034482,14.1586206896552,-4.08841876798518,4.98841876798518,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',14, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.84137931034482,14.1586206896552,-4.08841876798518,4.98841876798518,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.84137931034482,14.1586206896552,-4.08841876798518,4.98841876798518,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',17, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.84137931034482,14.1586206896552,-4.08841876798518,4.98841876798518,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',13, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.84137931034482,14.1586206896552,-4.08841876798518,4.98841876798518,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.84137931034482,14.1586206896552,-4.08841876798518,4.98841876798518,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','-Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, -Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.84137931034482,14.1586206896552,-4.08841876798518,4.98841876798518,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.84137931034482,14.1586206896552,-4.08841876798518,4.98841876798518,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.84137931034482,14.1586206896552,-4.08841876798518,4.98841876798518,-1,1]); % Integrate I1=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecMagSqrd', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecMagSqrd', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.61451104100946,14.3854889589905,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.99871382636656,14.0012861736334,-4.4,4.4,-1,1]); % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','93', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.4457'}; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','93', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.4457'}; % Integrate I2=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum',9, ... 'phase',(0)*pi/180, ... 'title','lambda(9)=3.548383e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.99871382636656,14.0012861736334,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.02700964630225,13.9729903536978,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.02700964630225,13.9729903536978,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.02700964630225,13.9729903536978,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.02700964630225,13.9729903536978,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(MagEnDens)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Contour: log10(MagEnDens) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.02700964630225,13.9729903536978,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(MagEnDens+1e1)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Contour: log10(MagEnDens+1e1) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.45526315789474,13.5447368421053,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(MagEnDens+1e0)','cont','internal'}, ... 'contlevels',8, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Contour: log10(MagEnDens+1e0) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.44078947368421,13.5592105263158,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(MagEnDens+1e0)','cont','internal'}, ... 'contlevels',15, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Contour: log10(MagEnDens+1e0) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.44078947368421,13.5592105263158,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(MagEnDens+1e-1)','cont','internal'}, ... 'contlevels',15, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Contour: log10(MagEnDens+1e-1) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.44078947368421,13.5592105263158,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(MagEnDens+1e-3)','cont','internal'}, ... 'contlevels',15, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Contour: log10(MagEnDens+1e-3) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.44078947368421,13.5592105263158,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(MagEnDens+1e-5)','cont','internal'}, ... 'contlevels',15, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Contour: log10(MagEnDens+1e-5) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.44078947368421,13.5592105263158,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(MagEnDens+1e-7)','cont','internal'}, ... 'contlevels',15, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Contour: log10(MagEnDens+1e-7) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.44078947368421,13.5592105263158,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(MagEnDens+1e-10)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Contour: log10(MagEnDens+1e-10) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.44078947368421,13.5592105263158,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(MagEnDens+1e-10)','cont','internal'}, ... 'contlevels',11, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Contour: log10(MagEnDens+1e-10) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.44078947368421,13.5592105263158,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(MagEnDens+1e-10)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Contour: log10(MagEnDens+1e-10) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.44078947368421,13.5592105263158,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Hazi*Hazi+1e-10)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Contour: log10(Hazi*Hazi+1e-10) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.44078947368421,13.5592105263158,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Hrad*Hrad+1e-10)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Contour: log10(Hrad*Hrad+1e-10) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.44078947368421,13.5592105263158,-4.4,4.4,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Hrad*Hrad+1e-10)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Contour: log10(Hrad*Hrad+1e-10) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.44078947368421,13.5592105263158,-4.4,4.4,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*xt`*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'1','e1'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEnDens','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi', ... 'Drad','(Haxi*M-Haziy*x)/x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','(Hazi-Hrad*M+Hazix*x)/x', ... 'Erad','Drad/erel', ... 'Eazi','Dazi/erel', ... 'Eaxi','Daxi/erel', ... 'ElecMagSqrd','Erad*Erad+Eazi*Eazi+Eaxi*Eaxi', ... 'ElecEnDens','Erad*Drad+Eazi*Dazi+Eaxi*Daxi'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','DivH','divergence of magnetic field (should be zero!)','ElecEnDens','electric energy density','ElecMagSqrd','electric field strength magnitude squared','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement','MagEnDens','logarithmic magnetic energy density'}; fem.descr = descr; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; elem.global = {}; elemcpl{1} = elem; fem.elemcpl = elemcpl; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (Fig B.2, p. 172 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.2 (COMSOL 3.2.0.224, $Date: 2005/10/24 07:30:19 $) % Some geometry objects are stored in a separate file. % The name of this file is given by the variable 'flbinaryfile'. flbinaryfile=''; % Constants fem.const = {'c','299792458', ... 'fc','4*pi^2/c^2', ... 'alpha','1', ... 'M','93', ... 'delta_e','0.0', ... 'e1','n_silica^2*(1+delta_e)', ... 'e2','1.0', ... 'e3','1.0', ... 'e4','1.0', ... 'e5','1.0', ... 'delta_eperp1','0*1e-3', ... 'eperp1','9.2725*(1+delta_eperp1)', ... 'delta_epara1','0*1e-3', ... 'epara1','11.3486*(1+delta_epara1)', ... 'eperp2','1.0', ... 'epara2','1.0', ... 'eperp3','1.0', ... 'epara3','1.0', ... 'eperp4','1.0', ... 'epara4','1.0', ... 'eperp5','1.0', ... 'epara5','1.0', ... 'e_293K_alumina','9.8', ... 'eperp_4K_sapph_UWA','9.2725', ... 'epara_4K_sapph_UWA','11.3486', ... 'eperp_293K_sapph','9.407', ... 'epara_293K_sapph','11.62', ... 'eperp_4K_sapph_NPL','9.2848', ... 'epara_4K_sapph_NPL','11.3660', ... 'n_silica','1.4457'}; % Integrate I1=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I2=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Integrate I3=postint(fem,'2*pi*x*ElecEnDens', ... 'dl',[1,2], ... 'edim',2, ... 'intorder',4, ... 'geomnum',1, ... 'solnum','end', ... 'phase',(0)*pi/180); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'contdata',{'log10(Hrad*Hrad+1e-10)','cont','internal'}, ... 'contlevels',10, ... 'contstyle',[1.0,1.0,1.0], ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Contour: log10(Hrad*Hrad+1e-10) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[3.61451104100946,14.3854889589905,-4.4,4.4,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'1','e1'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEnDens','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi', ... 'Drad','(Haxi*M-Haziy*x)/x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','(Hazi-Hrad*M+Hazix*x)/x', ... 'Erad','Drad/erel', ... 'Eazi','Dazi/erel', ... 'Eaxi','Daxi/erel', ... 'ElecMagSqrd','Erad*Erad+Eazi*Eazi+Eaxi*Eaxi', ... 'ElecEnDens','Erad*Drad+Eazi*Dazi+Eaxi*Daxi'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','DivH','divergence of magnetic field (should be zero!)','Eazi','azimuthal component of electric field strength','ElecMagSqrd','electric field strength magnitude squared','ElecEnDens','electric energy density','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Daxi','axial component of electric displacement','Erad','radial component of electric field strength','MagEnDens','logarithmic magnetic energy density'}; fem.descr = descr; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; elem.global = {}; elemcpl{1} = elem; fem.elemcpl = elemcpl; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (Fig B.2, p. 172 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.2 (COMSOL 3.2.0.224, $Date: 2005/10/24 07:30:19 $) % Some geometry objects are stored in a separate file. % The name of this file is given by the variable 'flbinaryfile'. flbinaryfile=''; % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532667e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.6,13.4,-5.43732809430255,5.43732809430255,-1,1]); % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.2 (COMSOL 3.2.0.224, $Date: 2005/10/24 07:30:19 $) % Some geometry objects are stored in a separate file. % The name of this file is given by the variable 'flbinaryfile'. flbinaryfile=''; % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',0.55, ... 'hgrad',1.25, ... 'hcurve',0.25, ... 'hcutoff',0.0005, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Refine mesh fem.mesh=meshrefine(fem, ... 'mcase',0, ... 'boxcoord',[6.1378856853818915 9.87043682764159 -1.6302249060067062 1.6449780725769023], ... 'rmethod','regular'); % Initialize mesh fem.mesh=meshinit(fem, ... 'hmax',[], ... 'hmaxfact',0.55, ... 'hgrad',1.25, ... 'hcurve',0.25, ... 'hcutoff',0.0005, ... 'hnarrow',1, ... 'hpnt',10, ... 'xscale',1.0, ... 'yscale',1.0, ... 'mlevel','sub'); % Refine mesh fem.mesh=meshrefine(fem, ... 'mcase',0, ... 'boxcoord',[6.978816179883088 9.988462160203161 -1.86627557112985 2.013807236831813], ... 'rmethod','regular'); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'1','e1'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEnDens','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi', ... 'Drad','(Haxi*M-Haziy*x)/x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','(Hazi-Hrad*M+Hazix*x)/x', ... 'Erad','Drad/erel', ... 'Eazi','Dazi/erel', ... 'Eaxi','Daxi/erel', ... 'ElecMagSqrd','Erad*Erad+Eazi*Eazi+Eaxi*Eaxi', ... 'ElecEnDens','Erad*Drad+Eazi*Dazi+Eaxi*Daxi'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','DivH','divergence of magnetic field (should be zero!)','Eazi','azimuthal component of electric field strength','ElecMagSqrd','electric field strength magnitude squared','ElecEnDens','electric energy density','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Daxi','axial component of electric displacement','Erad','radial component of electric field strength','MagEnDens','logarithmic magnetic energy density'}; fem.descr = descr; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; elem.global = {}; elemcpl{1} = elem; fem.elemcpl = elemcpl; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (Fig B.2, p. 172 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',10, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=3.626681e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.11670186526498,13.883298134735,-4.86116838487973,4.86116838487973,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(10)=3.532668e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.52952830138572,13.4704716986143,-4.86116838487973,4.86116838487973,-1,1]); % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.mode.type = 'cartesian'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.sdim = {'x','y','z'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.shape = {'shlag(2,''Hrad'')','shlag(2,''Hazi'')','shlag(2,''Haxi'')'}; appl.gporder = 4; appl.cporder = 2; appl.sshape = 2; appl.border = 'off'; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear prop prop.elemdefault='Lag2'; prop.wave='off'; prop.frame='xy'; clear weakconstr weakconstr.value = 'off'; weakconstr.dim = {'lm1','lm2','lm3','lm4','lm5','lm6'}; prop.weakconstr = weakconstr; appl.prop = prop; clear pnt pnt.weak = {{'0';'0';'0'}}; pnt.dweak = {{'0';'0';'0'}}; pnt.constr = {{'0';'0';'0'}}; pnt.ind = [1,1,1,1,1,1,1,1,1,1,1]; appl.pnt = pnt; clear bnd bnd.weak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.dweak = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'}}; bnd.constr = {{'Hrad*nx+Haxi*ny';'0';'0'},{'Hazi';'-Haxi*nx+Hrad*ny';'0'},{'0'; ... '0';'0'},{'-Hrad';'-Hazi';'-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.gporder = {{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;1}}; equ.init = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.shape = {[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2;3],[1;2; ... 3],[1;2;3],[1;2;3],[1;2;3]}; equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'},{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'; ... '0'}}; equ.dweak = {{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'},{'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; ... '0';'0'}}; equ.usage = {1,1,1,1,1,1,1,1,1,1,1}; equ.constr = {{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0'; ... '0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0';'0'},{'0';'0'; ... '0'},{'0';'0';'0'}}; equ.cporder = {{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;1}}; equ.dinit = {{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0'; ... '0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0'; ... '0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'}, ... {'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0';'0'},{'0';'0';'0';'0';'0'; ... '0'}}; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.sdim = {'x','y'}; fem.frame = {'xy'}; % Simplify expressions fem.simplify = 'on'; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.var = {}; equ.expr = {'erel',{'1','e1'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEnDens','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi', ... 'Drad','(Haxi*M-Haziy*x)/x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','(Hazi-Hrad*M+Hazix*x)/x', ... 'Erad','Drad/erel', ... 'Eazi','Dazi/erel', ... 'Eaxi','Daxi/erel', ... 'ElecMagSqrd','Erad*Erad+Eazi*Eazi+Eaxi*Eaxi', ... 'ElecEnDens','Erad*Drad+Eazi*Dazi+Eaxi*Daxi'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','DivH','divergence of magnetic field (should be zero!)','Eazi','azimuthal component of electric field strength','ElecMagSqrd','electric field strength magnitude squared','ElecEnDens','electric energy density','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Daxi','axial component of electric displacement','Erad','radial component of electric field strength','MagEnDens','logarithmic magnetic energy density'}; fem.descr = descr; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; elem.global = {}; elemcpl{1} = elem; fem.elemcpl = elemcpl; % Functions clear fcns fem.functions = {}; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (Fig B.2, p. 172 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','e1','relative permittivity of isotropic_dielectric_1','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','delta_eperp1','fractional increment (for determining filling factors)','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator','alpha','penalty coefficient on Div H'}; fem.descr = descr; % Solution form fem.solform = 'weak'; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem,'geoms',[1],'eqvars','on','cplbndeq','on','cplbndsh','off'); % Solve problem fem.sol=femeig(fem, ... 'method','eliminate', ... 'nullfun','auto', ... 'blocksize',5000, ... 'complexfun','off', ... 'solfile','off', ... 'conjugate','off', ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'rowscale','on', ... 'neigs',4, ... 'shift',0, ... 'krylovdim',0, ... 'maxeigit',300, ... 'etol',0.0, ... 'linsolver','spooles', ... 'thresh',0.1, ... 'preorder','mmd', ... 'uscale','auto', ... 'mcase',0); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum',1, ... 'phase',(0)*pi/180, ... 'title','lambda(1)=3.568118e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.54455509701132,13.4554449029887,-4.86116838487973,4.86116838487973,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(4)=3.532668e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.54455509701132,13.4554449029887,-4.86116838487973,4.86116838487973,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'triedgestyle','none', ... 'trifacestyle','interp', ... 'tribar','on', ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'solnum','end', ... 'phase',(0)*pi/180, ... 'title','lambda(4)=3.532668e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'geom','on', ... 'geomnum',[1], ... 'sdl',{[1,2]}, ... 'axisvisible','on', ... 'axisequal','on', ... 'grid','off', ... 'axis',[4.54455509701132,13.4554449029887,-4.86116838487973,4.86116838487973,-1,1]); % COMSOL Multiphysics Model M-file % Generated by COMSOL 3.2 (COMSOL 3.2.0.224, $Date: 2005/10/24 07:30:19 $) % Some geometry objects are stored in a separate file. % The name of this file is given by the variable 'flbinaryfile'. flbinaryfile=''; % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear bnd bnd.constr = {'Hrad*nx+Haxi*ny',{'Hazi';'-Haxi*nx+Hrad*ny'},0,{'-Hrad';'-Hazi'; ... '-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'}, ... {'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'}, ... {'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'}, ... {'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'}, ... {'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'}, ... {'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'}, ... {'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'}, ... {'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'}, ... {'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'}, ... {'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrat?dy))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'}, ... {'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'}}; equ.dweak = 'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.expr = {'erel',{1,'e1'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEnDens','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi', ... 'Drad','(Haxi*M-Haziy*x)/x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','(Hazi-Hrad*M+Hazix*x)/x', ... 'Erad','Drad/erel', ... 'Eazi','Dazi/erel', ... 'Eaxi','Daxi/erel', ... 'ElecMagSqrd','Erad*Erad+Eazi*Eazi+Eaxi*Eaxi', ... 'ElecEnDens','Erad*Drad+Eazi*Dazi+Eaxi*Daxi'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','DivH','divergence of magnetic field (should be zero!)','ElecEnDens','electric energy density','ElecMagSqrd','electric field strength magnitude squared','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement','MagEnDens','logarithmic magnetic energy density'}; fem.descr = descr; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; elem.global = {}; elemcpl{1} = elem; fem.elemcpl = elemcpl; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (Fig B.2, p. 172 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','e1','relative permittivity of isotropic_dielectric_1','delta_eperp1','fractional increment (for determining filling factors)','alpha','penalty coefficient on Div H','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator'}; fem.descr = descr; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Solve problem fem.sol=femeig(fem, ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'neigs',2, ... 'linsolver','spooles'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'title','lambda(1)=3.532668e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'axis',[2.23270430889108,15.7672956911089,-4.80067453625632,4.80067453625632,-1,1]); % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'title','lambda(1)=3.532668e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'axis',[2.23270430889108,15.7672956911089,-4.80067453625632,4.80067453625632,-1,1]); % (Default values are not included) % Application mode 1 clear appl appl.mode.class = 'FlPDEW'; appl.dim = {'Hrad','Hazi','Haxi','Hrad_t','Hazi_t','Haxi_t'}; appl.name = 'Axisymmetric_Dielectric_Resonator_Simulator'; appl.gporder = 4; appl.cporder = 2; appl.assignsuffix = '_Axisymmetric_Dielectric_Resonator_Simulator'; clear bnd bnd.constr = {'Hrad*nx+Haxi*ny',{'Hazi';'-Haxi*nx+Hrad*ny'},0,{'-Hrad';'-Hazi'; ... '-Haxi'}}; bnd.name = {'tangential_H','normal_H','null',''}; bnd.ind = [1,1,1,4,1,4,1,1,4,4,4,4]; appl.bnd = bnd; clear equ equ.weak = {{'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'}, ... {'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e1'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'}, ... {'((eperp1*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara1*M^2*test(Haxi)*Haxi)/x+eperp1*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara1*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp1*test(Hazix)*Hazix+epara1*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara1*eperp1)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'}, ... {'((eperp2*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara2*M^2*test(Haxi)*Haxi)/x+eperp2*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara2*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp2*test(Hazix)*Hazix+epara2*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara2*eperp2)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'}, ... {'((eperp3*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara3*M^2*test(Haxi)*Haxi)/x+eperp3*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara3*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp3*test(Hazix)*Hazix+epara3*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara3*eperp3)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'}, ... {'((eperp4*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara4*M^2*test(Haxi)*Haxi)/x+eperp4*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara4*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp4*test(Hazix)*Hazix+epara4*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara4*eperp4)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'}, ... {'((eperp5*(test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hrad)*Hrad)+epara5*M^2*test(Haxi)*Haxi)/x+eperp5*(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-epara5*M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(eperp5*test(Hazix)*Hazix+epara5*((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/(epara5*eperp5)'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'}, ... {'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e2'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'}, ... {'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e3'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'}, ... {'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e4'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'}, ... {'((test(Hazi)*Hazi-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*(test(Hrad)*Hrad+test(Haxi)*Haxi))/x+(test(Hazix)*(Hazi-M*Hrad)+Hazix*(test(Hazi)-M*test(Hrad)))-M*(test(Haxi)*Haziy+Haxi*test(Haziy))+x*(test(Hazix)*Hazix+((test(Haxix)-test(Hrady))*(Haxix-Hrady)+Haziy*test(Haziy))))/e5'; ... 'alpha*((test(Hrad)*Hrad-M*(test(Hazi)*Hrad+Hazi*test(Hrad))+M^2*test(Hazi)*Hazi)/x+(test(Haxiy)+test(Hradx))*(Hrad-M*Hazi)+(test(Hrad)-M*test(Hazi))*(Hradx+Haxiy)+x*(test(Hradx)+test(Haxiy))*(Hradx+Haxiy))'}}; equ.dweak = 'fc*x*(Haxitt*test(Haxi)+Hazitt*test(Hazi)+Hradtt*test(Hrad))'; equ.name = {'dielectric_0:vacuum','isotrop_diel_1','uniax_diel_1','uniax_diel_2', ... 'uniax_diel_3','uniax_diel_4','uniax_diel_5','isotrop_diel_2','isotrop_diel_3', ... 'isotrop_diel_4','isotrop_diel_5'}; equ.ind = [1,2]; appl.equ = equ; fem.appl{1} = appl; fem.border = 1; fem.units = 'SI'; % Subdomain expressions clear equ equ.ind = [1,2]; equ.dim = {'Hrad','Hazi','Haxi'}; equ.expr = {'erel',{1,'e1'}}; fem.equ = equ; % Global expressions fem.expr = {'DivH','(Hrad-Hazi*M+(Haxiy+Hradx)*x)/x', ... 'MagEnDens','Hrad*Hrad+Hazi*Hazi+Haxi*Haxi', ... 'Drad','(Haxi*M-Haziy*x)/x', ... 'Dazi','-Haxix+Hrady', ... 'Daxi','(Hazi-Hrad*M+Hazix*x)/x', ... 'Erad','Drad/erel', ... 'Eazi','Dazi/erel', ... 'Eaxi','Daxi/erel', ... 'ElecMagSqrd','Erad*Erad+Eazi*Eazi+Eaxi*Eaxi', ... 'ElecEnDens','Erad*Drad+Eazi*Dazi+Eaxi*Daxi'}; % Descriptions clear descr descr.expr= {'Eaxi','axial component of electric field strength','DivH','divergence of magnetic field (should be zero!)','ElecEnDens','electric energy density','ElecMagSqrd','electric field strength magnitude squared','Eazi','azimuthal component of electric field strength','Drad','radial component of electric displacement','Dazi','azimuthal component of electric displacement','Erad','radial component of electric field strength','Daxi','axial component of electric displacement','MagEnDens','logarithmic magnetic energy density'}; fem.descr = descr; % Coupling variable elements clear elemcpl % Integration coupling variables clear elem elem.elem = 'elcplscalar'; elem.g = {'1'}; src = cell(1,1); src{1} = {{},{},{}}; elem.src = src; geomdim = cell(1,1); geomdim{1} = {}; elem.geomdim = geomdim; elem.var = {}; elem.global = {}; elemcpl{1} = elem; fem.elemcpl = elemcpl; % Descriptions descr = fem.descr; descr.const= {'e_293K_alumina','relative permittivity of alumina at room temperature','e2','ditto for isotropic_dielectric_2','eperp2','relative permittivity of uniaxial_dielectric_2 perpendicular to cylindrical axis','eperp_293K_sapph','nominal room temperature values for same','eperp_4K_sapph_UWA','UWA values for cryogenic HEMEX sapphire','c','speed of light (exact!)','delta_e','fractional increment (for determining filling factors)','e3','etc. ...','epara1','relative permittivity of uniaxial_dielectric_1 parallel to cylindrical axis','eperp3','etc.','delta_epara1','fractional increment (for determining filling factors)','epara2','ditto but parallel to cylindrical axis','M','azimuthal mode order','n_silica','refractive index of thermally grown silica (Fig B.2, p. 172 of Kippenberg''s thesis)','fc','constant used internally --do not modify','epara3','etc. ...','eperp1','relative permittivity of uniaxial_dielectric_1 perpendicular to cylindrical axis','e1','relative permittivity of isotropic_dielectric_1','delta_eperp1','fractional increment (for determining filling factors)','alpha','penalty coefficient on Div H','eperp_4K_sapph_NPL','NPL values: fitted to resonance frequencies of NPL Cs HEMEX resonator'}; fem.descr = descr; % Multiphysics fem=multiphysics(fem); % Extend mesh fem.xmesh=meshextend(fem); % Solve problem fem.sol=femeig(fem, ... 'symmetric','on', ... 'solcomp',{'Hazi','Haxi','Hrad'}, ... 'outcomp',{'Hazi','Haxi','Hrad'}, ... 'neigs',1, ... 'maxeigit',500, ... 'linsolver','spooles'); % Save current fem structure for restart purposes fem0=fem; % Plot solution postplot(fem, ... 'tridata',{'log10(ElecMagSqrd+1e-2)','cont','internal'}, ... 'trimap','jet(1024)', ... 'arrowdata',{'Erad','Eaxi'}, ... 'arrowxspacing',15, ... 'arrowyspacing',13, ... 'arrowscale',1.2, ... 'arrowtype','arrow', ... 'arrowstyle','proportional', ... 'arrowcolor',[1.0,1.0,1.0], ... 'maxminsub','ElecEnDens', ... 'title','lambda(1)=3.532668e8 Surface: log10(ElecMagSqrd+1e-2) Arrow: [Erad, Eaxi] Subdomain marker: ElecEnDens', ... 'refine',3, ... 'axis',[2.23270430889108,15.7672956911089,-4.80067453625632,4.80067453625632,-1,1]); q~sq~wt COMSOL 3.2twt $Name: $t$Date: 2005/10/24 07:30:19 $xxur[[Ljava.lang.String;2M 2Wxpuq~ +q~q~q~q~q~q~q~q~q~q~ q~!q~"q~#q~$q~%q~&q~'q~(q~)q~*q~+q~,q~-q~.q~/q~0q~1q~2q~3q~4q~5q~6q~7q~8q~9q~:q~;q~q~?q~@q~Auq~ +q~Lq~Lq~Lq~Lq~Mq~Lq~Lq~Mq~Lq~Lq~Lq~Lq~Lq~Lq~Mq~Lq~Lq~Lq~Mq~Lq~Mq~Lq~Lq~Lq~Mq~Lq~Lq~Mq~Mq~Lq~Lq~Mq~Lq~Lq~Lq~Lq~Lq~Lq~Lq~Lq~Lq~Nq~L