From 511fac25c4bc9260fefdcd37ea2896433029fb9e Mon Sep 17 00:00:00 2001 From: Bing Li Date: Mon, 20 Nov 2023 13:56:43 -0600 Subject: [PATCH] Add YCrO3 as a new tutorial example --- pyLiSW/__pycache__/Atoms.cpython-312.pyc | Bin 0 -> 6584 bytes pyLiSW/__pycache__/Bonds.cpython-312.pyc | Bin 0 -> 3022 bytes pyLiSW/__pycache__/LSWT.cpython-312.pyc | Bin 0 -> 59372 bytes pyLiSW/__pycache__/QEspace.cpython-312.pyc | Bin 0 -> 28714 bytes pyLiSW/__pycache__/Sample.cpython-312.pyc | Bin 0 -> 11863 bytes pyLiSW/__pycache__/utils.cpython-312.pyc | Bin 0 -> 6693 bytes requirements.txt | 50 +++--- tutorials/17_YCrO3.py | 175 +++++++++++++++++++++ 8 files changed, 200 insertions(+), 25 deletions(-) create mode 100644 pyLiSW/__pycache__/Atoms.cpython-312.pyc create mode 100644 pyLiSW/__pycache__/Bonds.cpython-312.pyc create mode 100644 pyLiSW/__pycache__/LSWT.cpython-312.pyc create mode 100644 pyLiSW/__pycache__/QEspace.cpython-312.pyc create mode 100644 pyLiSW/__pycache__/Sample.cpython-312.pyc create mode 100644 pyLiSW/__pycache__/utils.cpython-312.pyc create mode 100644 tutorials/17_YCrO3.py diff --git a/pyLiSW/__pycache__/Atoms.cpython-312.pyc b/pyLiSW/__pycache__/Atoms.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..59b60e2f1730d0f8a0852d6213a49eac94587007 GIT binary patch literal 6584 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 literal 0 HcmV?d00001 diff --git a/pyLiSW/__pycache__/Bonds.cpython-312.pyc b/pyLiSW/__pycache__/Bonds.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..99e839aa52ce2bf4115024032bd264d27fb8027b GIT binary patch literal 3022 zcmcImO>7%Q6rSC+9XD-Knje$W6pgBc*iqux0oo`8q|zvk(h#5(trUt@YwtK&%e(8& zuAz>M#G!{&w4xSBZbYS|5>gxWP`E&QDx9bUmyiR|sz{ZJka7c3E3tI zh)u!nXyC%S(h4<9%n%+l-UMop6wF%{OJn$T9F7ga&&fmMbsa{mNhs(xa*BoxWr;A( zbu5f#6zcuzDalHvX-17G3yVpeD%t{;6~mOY6dA%mBCjc?!B~)VI*PNBX-08QqLOMv z?KzQE?WuyYI5_fT_-rf;BT2 z37(czC2Q)MA~{2zOSRP820@VFfTNv1pe~~#Ulh`O5s4n8$YtCM!|OwU+YcJxJX;f- zP{FYrb}@IkQpUdhT+L~VzMEV{LL%IWPI-clzsAQKTM=b^u79=7JXe)n2}a>@0xvJC zYe%Swm&d<`U#RNkN=;(2+qbSX;oJbZ1i1m-UKaq=CHRA7PXi11$lT4!iovMcT+9>s zH^}ppIXusr9NxUS`GIl3UBk?a)m~Sk!D0aTdTXa0ECy=g9ddEi7RFiGM@#UM*80l4 z$@aWmGJUR8Z5h5Mb|bD_=A|m$m1^^S+)@*v!HzH^u2&6i(Cw?X#TJ<5-m30O-Wqb5 zA-AvEy4L@!_4BU1fFi=&Ham{nY$rr|ECF6i%g^36!)anp6SsIR2O_0X!QyEQ{&9;l zEZzXoh+BTD=QY{lOiO?V1u9jue44DN76%$B5R1<#mS9SG%F+Qq2dE~Vuzc*Yj|45B zL9%Hpa8gopSz`HsN6fC{bT2qiw%(N8AC%33!IsUvuOCm0yk`(`twcXXA*rSO%}&xgR=Qm1Zpgvx`Z!SYbaw$`cl zJG;wcrLilMt1~MztFtS!H(t3lzCM0yVtrzx_sH$Oy90LyHhPbKKlx+ghr~wj@q6!X zcD~I>RUH#6i8cB9!nK8s-r*Z(H#_6Z{QK^<&&Do{T|WBhYrpP3@XPK4Tiv1M$xBlY zx6dFZ(X-+JQAf5&zuW zxs>}H-llO??*}RmkSXx9;)>EQL`@v@&QFi7i zJFt{}8`~ATsttCFokxH1o&MmX!F~Q&&OtIzBw+cqyqYUe2D1ElQ^^|6W(?@b3`v<4O{f`0z+$^^|^$%jL?fNg1!%H^+ literal 0 HcmV?d00001 diff --git a/pyLiSW/__pycache__/LSWT.cpython-312.pyc b/pyLiSW/__pycache__/LSWT.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5320cea10b6e4f2c1c649f42248650f60ea6e3aa GIT binary patch literal 59372 zcmdqK2~=EHnkE=41Q0*~0R(%n34%o|5|Yqr5ZVPY5?U#cq_SIqojnSi?xT?HZlkQMGRn@Ll(TEPmDL;1Aytqusxz)C_w?lHnK`nh>Z;DJ zb85c-zIaQ79s)U?y*-H=_uY4w|L*^G|NE~}Q6i4O%b|@J+q`2V9(WSF_jxWl``qv* zT%5c(Jm&2a5(};&`tqbutI_;D!0OhV)w(o*QF~VJ(g8;OS)?_1il zxvqS?*<1y1^IU~+^HD|-z7!;BT&1i&#i&o=jOL2=Y|#mgqby=Ldg64C^Z(A!Xp-%C z_Bx0ACWf6}xBWzQcim-&eZn(1I$$3j9CbT6yXWHIsQt3@lH2Y*?;hhO?bVdp!BWs~#+I$yw%JGAry6<~02kcD zmj*|B&rS9sOpy*r@V?95)UECv($v^$ zA35jbMt=h}Yx_+$+xgy$!xNrfuX94IkMKL<_MEqm_1n+e>ARi25BA&J_IC;`w??W9 zs;P$8NHwgQ>U{6W;HV0SYeD$@RI5Sw{8Z`?dd4sJUgQQx+`WBcBNxX;-J@O)wW8t; zEqS7DK5!xzsx>+I*;UgtFCpVN!zqcQU%wnOAM?-JGqAiZ8^--ri4)bp4; zbxn26_Wm)Bb$@JX`HiahOy%l?nyc1(9r>v?Se>17doH^Byn~nA!;=gq>I6lDOF${Y zs1sBG{LQpJYxm~0+Fhl|RceEZx%>NROuhQ*;Hb-er4EAyA%lH`G}eU9dYz`LTK%5e zWh^^N**C^fn~sgTXorwm4MWVXHojS=BhGhk7J~dPu1C*Yesu9%q5S|&aT0WW5Z4^9vn;ygu6vR zT<&47v)6gfUT+`ob=Hjco+CI})9rI0{J9{>GtB9sNyfTahD?CNjTTgUT!R?298FKo zja`{M?ol^4Fo~b)aYx-cORkp7lN&%PS#^=6{Oz?gndNwDOC5_>FULct_4cS#Md(a> z51@{Y1jLiJL^**N?;9@Xz<`^JiLL@D@>4>|N>^F_DOx;`u4l9BkxG3gQ`fV(Dq<`0 zmd2l4C+3STb@m!I#-k$+Zy0LBW6}`(dPlp^)PN`s7U5Nx`fC7W{|XSr%{-J4oqHHf zy@ReRgef`L6x!eU{2~18e8Kot%WspApNMXp8}qouCRWzH9pTYg%|@Ysq74svyvkU1 zyURHORChpJ05Ef%_Wp@cY#*3`So?%Y$g*HNYHVuu7PH&3n8;Hlp52b{;XyC3T*~>` zWEZ)yKDWo?mKMusCZiK0=iFR$CB|1;k}f(q=kTz5m@UT>UQ~gV>>gAt7)y2EpbHy< zebhbS<>bW$2!qS*b#s{TZu^Ujf8&)D!K^nA?IG3Xo^8+8s3P6^utsz8-eWXY082X=IB z^bU>=dey>5oEK^Qvrk`dM|b|ldKi0XFWRavrdjYpVFF1@4T9y?%`t>m+EJaOF1veh zz&&~i_#u!Ip+VTrOA%u;m2(sJ=9sKl%9xR+NZfbc-FJa?%5z5=!|#)$FetGTIV%~4 zXpIPmiLO-w^l^9=OIrO*Tda~4o?&;L zz#+i$UdMJhas3<}^U_)~JmGS?q&A8YKruZg*KB>;rIZ;Z6k!v86`3(4-rmoRjffMQ zrBrMaa_c_ROv+7zC1Xo|Oah@uxj^MAJ{aX*U>)rp9vpclot%n#Q(kQmH##}L-WfRX zomU$EF8A&~-ZRkfrxgjm(^B=)KtiT<&%bbRFFEwT1jkIn=|sn&7yPF902YHn9r~%n z>VtKSb&U>q8taaTp2oVPj;_80L=hkI6O->rG8lA!UwcF26~Ab%CipbJ2L_{0>(lx4 zKEnr57M@n)(+!F2JSnyYtVd!H&T2h6pJqr|Ml=pW3AngNH78vjVol-Cr|A`0obV5s z;}WwN>&{iL$Td;S3AtKCzx?|Guo@J(CW$#9{nya~VEm#582guU{+e1q$TdX)>(|i& zLatH|0oDSs1o>BF&Z1UnVyL%R^bM7YKKU2<6v}U+?*p0=crX?5ApNhB<+< zGR1H3XNmqb%dHS&%D?K+AasKqNA!uza|WYB43&RH7y(nZ7>bT zW&AKfY!T#Ulf&^w!;?L(M7-roZzjA+J>)auO={=KL`Tw84O>=e5gi;o4|><@9PI<1 zPRn(a(=SE19bJ*6B}!hPeo0|HkO`zHwx+IM((>UbiWof;*!d%-UWWAa_D1xeMk3nt zk%SY3fV(5fGG{ZQy%0&hAkl{r?QkSn=0!$Q6dcA#$_1G+jHC=JUh*VTP>Ffcav!m( zed1`L5I)Hmf`F+;vSP3b58Ff{X|aKk?AZ4x6DX1u%jFQ#rpE?)o=H4$(FHL;#Hxl$ zL@aTko=8gju@n2ESVAOOrmG@J68#dZnka1J=?@L)s7SlMd77h1O1qlK zn{58P!2aN&MehUC&d<`b-}LObf53a|jfFREy}9t_;y7Q`$``lJ zbX+_3YkVvzzj3PY5D5ye988ijtAz#m0#oQXBE}qigv!DJyg*# zV|ZXHePl9+O{Ki4G*A&P+rgLZKn+*6?+$N2&Tl^++TO#Pwo<$Tf6s%Wty1I_vn6aU z;msuhYq)efU%Gv%BfRqzzw^{ny)G&Fae~HP5iZ%vmuwA{v{LfI6)L8THiCLf)e_*t>hQa7_OzSWB9$qC+HMSA0Z6lLt8pS zAZE~2H-H*&?|P$)vqm#Svp?=}XZv;vzYPSjzWlWf^KP8(an@%r4`!K>?Mt>B(g(zDgUN{M9Ex;xk-8d9DPX zUfeFG^*;RxWvi%e&SFib^;p*RKFCKYpPeXzQe*i(F0IZ{q2Vt3nW`#5epq9#ZmJy> z7*RBR@j~pMhU%tz_mzv)_2(f2+jzO*Li@%ZheM7QNf;a$9pl`$b&&+u;3aS=B8h{e zmq6dT286mj-V-rghWu=xesAG_{PQjOdpPQtU;Zr~wk0@{BD&FwkpvGhGPp?csB^T} zJJt)XNkos5g~c{CMxqxnUdHa@j_94|Jdq@bWjsLGFSs4Xh|x_vqKFPz(e4{D5akd_ zbYJug4v&p`2ybL-6GuB{#1cCO-HYB75G0^G(ec7L7UgkvZ+HLst*^&jhbL zG;e#9m3?E^+^#@YQ2*h%kNR)-FS-{`{lpdC{W6dLEiW&hILWu13~fBcSD)fbPlvM3 z%yfu3oC=8GuTD^U}2z6iC;Z=!Ds+s$+~zLkj~^6zwxq8%#aaM6cUDi}XPtHl`d zFKs_!Yxpd_Y%156N$yas982_l5cND=EiEEz8Vi%q?bzN~1ytn0~ZI!{rf zIC)+C60DuoC55cRAMHp#?1BQKa*#QYD}9- zOtTa-O#!E}4`~~Udwlugn2#@cR(H*3(0DhA34BH|Ce}mk>xVJo3$b2q7Qf5CzCyNp z6e;>{i~Lpe`HF_NiGKN4EMr#7*$`v9{6+Ll7b9G4O)NpU+G=C>75hrm)+}`h*t{=! z9#>>tb0_z!l)A2*ZOGaFg7vYlCugi<7}3*t(ugng6)HwjuIgBijbn?6BaZUeII;PN z<2yD^Y(C=1j*XM2ENfPK?FjxlF=Az0N^R6>hiIzCJ>sb2-cld$uYYsx(Z0&)D@FM3 zxZ>~%V(29?bf{hQ$-mSSikfuDUqm0~o=Q!8r6Lx_`m$`5zARI=olm`=V&Yu;I|j|D zHc1K7ei0J+*JtvXiD>gB4d@imt6?Z9Vw@d`dwL^~i5 zdj`_$M7Cqzi1FO;SlW&V1kX-lm{F(E83;D0}18bxo zl5@j6XPz-WvSi*c&6)g}*UkR!x%3(1N?O+JN&mj()Up|!_>l|dKd@|;BTMfYSvPER zwty~J^B|*TCgD;1do*(~{%6+w8%O7kKG9?*?F3<(S9H@hZ@YRJIMeXW8wO}eEr@~{XX8Z@4l9|9GYocu~=DQn*-(Z+k?9K zJ>mRDKEE-P-^^Q@ktwRSe{R2j>wCv z%(u;pCqvac_=+98dB;Pu{c$A*#nWm{X7237^};8b^rURGU3S5Z*XCXel+N|e?0=M= z@z$lQmuCBK49^WeOfO%-XgWA|a8|440l(vB)_j)#(oNsIkI$@!+zMdYy_^P;`j!CH!7N6hWPx~{A^>GQ>=V_S+Y^E(&x6E$1Q8QQb zAf@P0cD}#m`fFcmjH#7?C9mXW;e27hIbSlHu#!`F(g;o&v)e-;6 z<<#=`&fOYV7zpnaE!FrWhr7lJvf$<6qMtBrEJUAusk0K?L{0h{xxa-I8 ztW?;_io7M}vRr~oKcMv)2@`S|MITX}V(#Mabb>1ZJTBV7*#jwhv{e|b^Ur|&K@JC8 zD$$krZJpruGiaxifD?(yR3+a-Bs7V8d`V*d)5*SMHJ;LtB>$9?iadwu6km!jfiQYs zGP%>{H6W1WmU3P`vj_p>UZqZ_DOys6I|Y7%3UA6~60uFj{gULAaycT*)MhT@w}m#d z_|knAMk8iGN1;fLE&6;JB6N_YrU~usv-AriD{~DpGG33OMpm4+*o*SbHF|vVIXOq^3r$zyj8VAivF@<&#OK~M#Kq;Kr zTPn7$OTwwOnrlthny+m#Xs+!CAIIg=XUXG}uy~>M6wp;jktC1LD#FA@ZH`Z` z+V?qPEG_s9*Y3qobSiUP=2|OCSBs|?^X=E2(3G!LTNS=x1>oWS3Vc4fC8hd9KqiIy za>bIgnl)Dk6^#RM-IJ(=#9Y3v8LDWX8mUtx4`#RukI$D#qep~<%a?2EG7qWfIQSC9 zxZ*EnaO(58DPMhMP}E0l#fn=u6f--=m-C`)#I((4i>|pjY}V&W4JUbAsbZbMIhFSk z1>fv-H`_^aqAQw7n5l|-sLdMiV|>w=V*bQ$2H%wJM)ZwwAEWOsqt8S%`1sJv?f1_&|Nn!%$dzuHXWT4Lr|nppGI=9yw#rYquN^%Nd)AJS@G(YO+) zbALN`6uUY7Ue;dLT+zRxxvUkx%<8ZGm-ufE%hXJ=NG0~;AWu~7)j2!?{qcA;Ski)y zQz8Bu84>$sy&cAM;I^WU|KV?LfAMMOxtI5JabQVn{=@J6zkd+;tADY$d#ds@B)w4f z*dC*(YabmOtsmo{GR{<=OQ#&sXr=bO=W%|=bHP0cMRul4gEMcWyWj5|9G>9ZrBhoF z7240E1EuyuU=j?DLa&|JCSIzxpbhMtKo)kW*5VurX?Ks>-_XE;k2ra}+(e%jK-fnH2hMx#BT$Y#=Vnbkz>$W%oftZ921s1{ zZ*=4_mW#ky(L)b4VxZ!=Lx76=2AoI&j_Nvx2f*SHT40hpPTzXyn*sGYA2G5*z+`bd zha-uood-<_Uc<$U?ok&;>>vVSKyo^%ewbd>5P3M2mD`1@A-c~b$n9; zswTH^CWW+E5}6}1M6B1-{Nuc(lvpBJ-)ko_)ZcTx3v`^dGN=Vf1zy68k?5hzS1*5$ zyK!aiN+2Vk54aanf*hC(CvOk)_U)nE9ijA{GY0S_W)hz!NThF{MO46z>AC6aZ_XN^ffKOK*9H^# z{Ef4Tk4j2!PR>u>{O$SQ4i1D$w#=Dljk6Pv@(XWP&sPUpZf#%K9vlzlH_awO?I*YJ z#>m{r^|1w4P#19VIklh`^Gm_EsGCh(vE<%Jn@jUweqgEkEVuCO?ttEZYHoVg@F+Kr z)z5G%VIkpG%0kKyQWq0>`_`oj-oE>uHk8{g$FT+t3k6|&GjDHRYzyUX!I!*Z|3qMX zelnEj_)?RcQ99f9sHiN^5^P#%4HeaYsY%K%^=ns3z@2#e5>*C@RRLG9Dd-GtUKk3M zG%a>~TC(kty>fX&=R*wp=X}DbxY!6oO`3R+Y3%4$5LxtOC_pz>d2mA#C7!BH$N(b`k4puCj{ZZM+ zRd=eED(`9UHQh7ZtqnEr=PUR74Hza`f6sjKO3lXi#}~`M*V+)Ayxs7V_MaZOdw_~* z4r&*+1e+JNx3>g#^F__eh0UnhuKX`Fy4rk}UKi+INbtY%cKTx@N`0KH$u4B|+5FI2 z{nwwPrO>zG+&VtD?n_M~+S;18od41TD;R5e{_^h~#?ND&HgCW7sa~I*^VFot&Le)? ze|ema$bb7ckN0WOYrpaUtJM6=y1)L=M%~Xh79ZCe|Ja<bYE@?5;)<47N85dEEn)qdT4EhAueT+9$ygKFK1%B-+moQIIcBjMCEI0%C{DawvZ3nwhe zDu$X#7b2g%b{IioBs*RWer1Z@Ch<0jw@LOkg|{iZP2p`S zF3VCV;D>1@L)ba~cS77XgscIs@iAxYI@|i>445l}xH%{s5?7t+OYN~#XBrJts zI)T!eV6BGLeJWWDwC{>&a0*Eea(YT?| zl{U4@ksi?xyGI2QpON&}0TE|_6G;)Y;JIF~54i7Au%ChrLt}%Zkt8?N+T9$u2HXgR z>Y&7~g964|^kVFXeF?841LtZ$>qk-$wRfz)m%Sv?i6P_|NhH$@QUP(r!+{)+2^GbxWUtt6-ab4yu-{ePTjNKJd9PsmCJnVhD9 z7CgRwsf!6rO1m}?PAlcpN*|cYR*FiNP5CP+IsVd5Qwmm!N&}_yr)RoW3TwX9=u(eq zXH6^RwY` zUCLe>ziYz@vboOLz5XnJACbvb#Nr9IKeRSP-vXXMHJ@L*m>ITie*CHygXHOJT1`gI ztm_}7eBst&xINC+q!kMSd!-nh=s#L}pZo-&N{UzQOqWlhO<%*pI1Q0EQIQJq11*WO`oQZy^LXi;>iD5Qy*f zJ|j+tMX7(#U04f+M@<+6N>-24WJWPQqXvODC{n2$_V7u<2OQ_HM6s%)GA`zoFg!J} zu~-)fIV2hnw7H5{-DeTwioeP<>n=s6v?N{t=u?ZbpTztby$WIFbOu_6Da0#XUj|Y^ zwB65C`Ei)Up!^zDOplGD6tAm^vUO|aAVM~6RrJZPms7S(d&(^g&IQyar*nK(-*aH{ z<QBnGIOLM87T=}yr7(q*1g0n(Z4>6tVPZSsFa+h0eQg(TOL>&qqr+A4qxcGr zMf~H-RO>4d05Z|~I#kf=`5v&0PT7t?Db8)2*oxA378A*ul zGAr`m5MM`dq@GaK}^19RtaUhvN@6r`l$|L5+9b+@aL>)vlMN;a1kXFU5!ia_vyXZD28UtY55!aT$&Q1^cYQ57`d9 zJx|ZwJyRDCDJvzkuHd$f)=crtNMP~ z&8qpTK-oLBq09|4iI38=!s!)!dPU%PFmtJ3IlUs3zHi1rGF0o0ytzF8=71B{9x`@b zO_3Asfr3dD=*chK@O#D5L6$W_wZ^q_kGs+Zk`Sy*(Z%4V+up;4gvj z7n2ZvGe_3? z43S&&^;d|3J)$M`+yeilcb)HNyx$faUu?d8X-Ru~YI#E|%uMi>?XxMd-&<}^E;Zer zUK+pGeD@OHK)UG-hn6=S;!6(mmcw%?M0Ot0f)sIvmP5av#Ft;}6nLfa-*>ExQ4-wv0>=s1T2CncL#8 z4W{t-F~pHou>-oLj?Z)_#$ikWu$o zuSv~)x=jNrZp-|ZK+R(FgMuwHM^_3r1Pg!Yq+FN0izB?FgD>p3cbPBjn(16ITURVa zD_OLT^k> z`_93~7ql3Ik1uI87TZj^K#XDPNly}d^#0^1w!}4wF^!t|QACnr^sSWyU$ih-ATmhh zN**b-((Hu_aRpKcVn&g)fp}5p`Ck=iM07)!vV}+SRfQZ=e3ghWIrX!|ngnNpBBjd7 zdzV)6UB$qLOL@vng&cE9XT=C15lbcifJ6#UD`Bw8P>VjYfuJUs6VaaO#8H!ugsqaE zA2i8{o6H`UUX^@HR6D6E!YBR$VKw>^Nn6!nn0g~w+!hYO@FZBk*!Et;)+(iTx%-{N zFem5{Eg{ox2TWrMcm*&hCs@3rP@sZ!Pv{&?$fxQCmWsdqAG??S$sUFeP1#OR+0gZp zO%+j|Z%jMVg`Ix|Rp(~m&>^xb(2rv0%-E*Qwnahb>J=7Ycx)hI@D2{UnPQfJ02dI%Gp~U{aQCwaDNTGaXAl0i#5?Pc4egKy1|4D^c!ST?*7aL7b zL&{RI;W=ev+)|Y<=vIyAkC6%6Td~pQ%;orvH7qmtj#m~u!Z7C5$Q9X|1k5T z+}pW}89zGy@u@qfmfC**6)3Ja_VC4fmWy5rS=(^>2---w^SOcSU=o=*3gvCPdic-s z$^xySy!x5Lk4&k{Y1QGh20pD}G5O>4JL#dcmmZkfR?=<$8f@9iriy3REX)OA&6)xx zvG$rJj?I|$No6IH=X{I_9<`NBQYgS#4_ZOlBdZyJ{KiOO?3dUx8d~Tkzb4OWZi8a2 zP+NuK;)7hlN(MCqlS{`$I@sTky-Ze2|AD0pfA{pxzrxfEqlS8u#hdQT#Y+n%PBIyT` zR0A@b3yn-@;h|0x=bc@ccsX&?D{3Tnsz7b-ML!nO^t+9`F#W*hx4d=c>X}*h@Al%D zB+yIw1(U9Gt}{>;vR2L{J;H2gey0eUNl6>89>PJ#@<-{Jv#kL=pH==Kz2Xs$Xb#Q| z29km&cza_gr)d%BMhmp=vU2=o-)&v7=K7niAN(A#2IdC*gQ1-2U=vVDL@2HfX3dYy z9GZ1~=NMF(k~TiI5bj2n%^ZQ_q4eryQ?)R=Fps2%mLP@^e8^@O)O!>=noHV)FvkBm z#-d_3i~08Z_@-AVO{mVdA&G@2l}@{oG{%Nh@Bnc(dm4Z3+*PmwDR=F)bHGLjaVL6vD%p7$}W239Mxgrt%Su%Gx`Y&ZjhgS^-Ncd#S0Y(DnM zQ;L!LxDSFPrqABoVSn8Yo4zDcwd2kavgc3ta#Sm>o0z8kQ6Wo}bH0nt;;8M!$@&fQ zZzJco;6zNAU%juKJ$0Jxr`!$tK!^@UD+&{4I*eQm`AO2q2vvdnr0;RYwKyU&r-~)v zVAP7Rbd3tLZn%+V-9JM_XycNgXeR9u#1P}xZO{x&+Job>po*HVpZQW_O5HO{Lb@o) zQNbuJZLlenUmwO%+x+GSS(|VM@zR}3ORk@e+#R{!c7HsyyF0x56uy-Ratm&} zG55xeH|O3AIzG+av|`&3w$<~tdQexTi`~J&hqi5>msbZfez5IJjW%zOe=mf3;ld`q zuxW7RKLttBR>R7IS211UjfzQB4RC`YXRczlUD;r;?y@~>_)_! z6sVAJe^wM_5-tc^AEqScRSm_d=#^ZKI^o(h=E{b8rt+^`v0s_AUzxH`Ua?P3+9#*% zQ&;R$llG~p_@i?S^&%w9VG;Dd55W|K{Wrwi{=1P}HxnQ)XS$T*K63ZW%8%DIUF zS}^Z@fRNbJAd{F`o{fzkoxOc_d0S7Y{v>aziONOV{W^bpKo@8a>crDokZlBy2aYZ_ zFLF!Gi*@%h?;XFNdC$CD-Wkg8no0jWN@+F_<0k15ge|YnzaHEZD%t_%w@1bHnP=O6qxYAz9w>)A_SM&CXe=+p*LE#`j^q?!fFJ zVx;?rKD9dNOH0SSp8K2coh4JX)(rt~uqQC}skQkLK5f}|&vn1!-Vnc~d)ZnQGz4A2 zBu{CjV1fEeO-gE; zb~bfoL-n$ye8pZ5eKsxe{Z}l-VM`@%sbs|tKd@|~BV*(5fB;Cy=+p|w#hTs$1z^nX z)Z$Q*y*$tntOy)lNDtdvczes@*gfa{jC(GA%aM@%sNWbVus^Ebvgi$OeVO0-a;Ux= z5|yG(?LrdH=k=_VR|QF)QW|Uxm2Y0D*cz_b%~$Ncr@wb{$@j40=odzc3rPUVdaNe^ zpjDMo8MZ*3uy(m_&qK>gk8`Oek4M3kFJ3N*9u|Att<_`|`dv3K%wGr>H}d$O*@)^F z)Gr!7PPvm3ZfxiAzo4B&1`W~ER24t1y;~dJew5#SG}PS57k18cenu@P(LBb~qFJrf z9EOY{v_|ykm?zK_a0WKdPX_B2$CpYWc&XXB#E72z9sKU@<>KQHa!r9RQ*WSo{e;fW?Y`}BG`;TOM7CqP(*PJqOx zX3L^$sbg`7ceI5a2YAPUmBL!;J{(*tB(2Pve1F;(CQV_@vmJhF%?|&@@}8cD6(^~% zQ&d>(wk5-oYblwp*&BxFtL9K#VK}aq{v`^leYUXEYZlhKyyxV@ic?>ru+!QvtEd$p z>#1oUZ&VJiKf&;7q5gQhO*y)rB`=Bj!Wcb&12zX4&H+k_p!i2kE04qxU<=6vp&FA^ z^->lQnRV%0`h2i0`n9Bc0XEXtkQZ{(vE1~sDFa2mD$E?zScO$8!nkHy6&C5b)2fJm z#I%x-%dkq1sEB+7G8I?kC`_}g2|w6P@s9|@nrT%?rFExOA)3UrQr(R&(1$AIm6+d} z^-v*%)}7WK-+D4@U#drfw@i#RR4Mx8U$9$LXPqpnTO&QLQc|0>QhL)G=~o$JQu-w1 zzd?pq^ntG|0>$6Sq>F_Fdqa&jUHk;fsuha!;qADs6_}>y1w+-bC6(0 zrLGc>nTZm|9f)RVn5|Ju825T^EiI^F2L3X?QY|e~EwhMhkJd6{73gD5d!m+^tHgVL zEw?D!PVoE8>;fXO#jT1qQHzZep}4L{jGetk?2MS$IcvnujESAAh^;aPeXGnG2{s#g zCJ%qmSo{iO&?e=~5|70%oGyCN8eqRJQ?%N) zXX~K&y8YR&Z(7w1D!UTJR)wLl=xo3xTtqapN0FyWiEn1h0yw0yM-wU6Bb8K&Jln+- z@~?#6#yuV8f9VhO?1FLL82;Z9#qc+vKCpfRgXnXx{|KK@%gA*grw`sXURamxa5h zUmhD9-gm{_Hvt{>NDAZR^?K;iYSN9m$o&(_<-3$i3grTg^ievB`nMEJM^FVdDl;iT zNu0hkk_q?7?@3ICqc0 z&g^kHiUlSnwI@!rPW1}5qy!(#Npa`tgBeD_Wyn(LO)i)LuDB|Y0iw7NkfSz@nA~D> z;Q~F}_AF%=ZMRG+SPo>S(-G$Giwm=$8zzRmxUgE}Ml>YD*a zC>{2ciY1d^H%sPALKeqb?@tm9g=sTKp+Zz-m*R%=9DE)b4O>qLawtlh>BLEBTwi#0 z{%p{^==%7=oeQC&cJKxfMn5r83o~taz3LxoUxV9*c!@ceXOZU-M(}tMkgW!6I8YJAML)q8*D?|ZJ2f& zXR>v5Im^~+V#U>gGrZ!cCAX^KmT$rL$X0kWeLj8Ju?x|v5v>Bz$~S@An!U@PuwttT z+nRV=)8Yo4uys7J?Tia~Xxj%*5zT>Ul~n3xDs?xNS{t@C^S0*2ElZ_$S|8YU#f3by?V?h5qtp%6 zx4yCPjpfbz?{`0_JT}|)sIn?905L`vMweR--XDLkp?mh&qxgW&!Gs^39}S*d?D)9r zPFJXSFZA*Yi)WJrC%^1w-F)49Ub=a5DJ7KO0V`|8l>jxPaTce(i^A3l-dYhj6>M90 z<$<*!E(E7_0cu7gbY7r_nKqvmm|PrxU~8QEj;QEVJF%F}LH! zp1D1N!B4Xq9&OtC@t!+-?(Gh3I?h`fXVU{EkD6LOF1b^3uO!se&099krUlX-6_niE z1LO29P!zp-bY|ad%QJHU=dF_$lB4H2y26_e@S6|Z&j{5Xxql{PKSg(67CkDfxK*=I z6a2=~nNZn&3MwJnXfQ%Y10NR>_`eY@YJ}CXP*L;Zp^#6=cD#fLF56s2U{DNakS3>0nS;9vZ8*Uw5I4l;?8!l?% zi<&}3n-*UQS@ztsp@>RWM5&-ZgnJ0Se=g1_+v1f_)=Rk3(nJ>b&(56<7z0;A*^LNE zCM7BNv_Rt5zONTwX4S7esaPWK?>Mmg zl_vc!nvAdPNQ50Z`H?uc?;HO+;M@}W!X5?w_CFr4RqvI!szZ_*i&!%pCXl}pQWf{$ zaDplyOQgPH=t={WhS6`rGep=~+@tua!r6okG8LYs%OI8&L-R=-YIXRA%HoQ~t6<3u zlV{Ml7YtDwm7nlu16R}6p zzArxil3t)hX|0&lPwE{BQ%%Vt!mCbaa&DXqhLzlnQamLMNkk(fBw==!nM8rWxbRI1v%g#RZ;0fqorwptSN<`a=4T3?C=oNnYA{ z-}>(geqIo2JPFi^Hy6!x`P&{9maK<7cs7nmFu-8YhFc{IB|ox$oPQ^Osq_Bkf4Af3 zJ3>vTfjjZ$;+bRq?$6hQ#Fdsm9}9bEE`D61vD67-X%a(=kA&R(6VP_J_FHu+Q4>nz zyn(!}stKfV{dK?2rMMzodE<+!R`jzelw0@u%1C%&s1l!_0_O?z%veG6H?B@5#fc=z z3@p>UoP(%}1QTLQD}L2AlD8^NVl$j@0g_QKhW6}#R&&fp%(lkYnNGO$@Ep(z&m8UhKU(9Z!rZ7cH6_Gz~ zXpIrOPzvbaC;7~RmbxPK3zjS9%yKk-)f^S&t3e;Fr`UI2vA(!FnlirzYDqsP%W7hPTt?wZ?v`TSttc}h!mM4~1T?etNwuMuxjk=qXdVawtmegp#` zDe(vbl*0wf6kIR)&XLni&MV~fkTU=W=V5E`gG&{MFP?Ws4CmZ9vdTt z!cLD(K3Rj?{Zi&q!WP_+MppE3c9jgRX9tY_wBXQ#^j4f+{dK}{Jn#I~^M0*=-+U4@ z;U*SZmvieE&pt?dX+{rA4#E|4Nl9H=Sa1L+1#{qlmGK#6u;34EzKkk9qiUvo^)JzT z)}Ck*QoG0&18j=FI`?Wgdjp@nAu!HoJHpwpKv0W&7FYd3`kJTbPs4yk*}`d9x?j{S zw%keLi&_QS==a+1c|SQA+S$n$b;4X=w_iKkGnc$-qNVmF@7;rZQOD|Wf28|3@lN8B zZmH#NQV6<+MeTod{9m5_YK~Cn?h-uXY?!SnKQ}Hs;!wYo(NxfLY6YuIu-Q+BGMz=35UG^ zY2qJtvPM4*vK#{W1pFl`Ou#)?iH+@5MbVQiWZXQ7ku)$KE|Y<3yOO-ytr1T;XFLU< z*N7{f<)^sVJ=s|Hv!JV2>aT`>3Q|<4b2}oh^!7)OH}{ceT}8x-*WT6k+4q zafh1O-6Lx~GO979h zXhH1^B?Dh=2K$$nJ<4?JBGl`Mx&n z@kvwPN*4FCj=_s#xG@O#4E2#cufC}4IEH{fdC>*&s6AHYp9za&gM`Bh9y*unipf^k z@|iiQjq-^RQFu(tA=~o%ux&~Y`H7ByLUV$MD4&)(fdlz-LgOOy9QrQd)IG(#t#Rn& za~2*7iW29)GVL68j+}EjcTd$ssd851UZKXq@!OraT^Set?A|EGZKG|R@YQc>f*p$; z?;j0}e^ayM{HBJj=3FzraHOxpk($tyW0h89hR$H3!|uVIPNS}BkAqzkHPsv!-!pOX zB7}?{*dFV1b6&DZCfH_{%|APG$zaEbJ7NZ-ppN4b7V$wE5Qs% z8tZ0vv?)E@XB7F*$oX?P5q5TlOe}kZ;*QamKPJaZ&IH9VjrV%+AGW!mBLM5%xGu@% z9`-t6FKj%L8k0ZnZNddup7S1BMaA(e{|YD>trDVf5n&7}JGzm&^-s0btuWk`ku6|m zAxk-Kgw89NN&8GdWW@WUKeOh{B*B6&&Ne?P!ikV@)povWJC2?_(PSiLU+tXPJ8N6X zD;4f`rZWk+q$QAfefmA_*5tzEV&)H~`P|Jojy-v2@?Pfez*01MFPtThpry-p9x-hXx>KGOBc-*`Edczyf4_l*n?Y?N+71>OZJ5__T!dl+=ffB zPX$jsG;jVhW}es(DgynaDOBg(B{oUVwFDuX!uH42~ zZVQ#RewyCOY?AGNU_P)?R!efMk`)K;#b(CJEMapcZ?44E(qT(E?igksGGWa;HN2(f zDcQ`1kU4sTQCcXyYS~ovEXGBA4u)|(Lf_w@v(5^O5NdmnI-Vu&B`!uAL*<{Q2z%u9 z70Qf9fW447g%-BB$H(qsMVzgOWAGUmwuKY!h@Bi46|X*~_~_GK(&9{FK5R3PP%Z9x zUP=*OsN=Tc1ZyYuYITUu62xAjbJ+7d*u^|i2b{=_3JsJsQMDkk9w^Bw%=1bXu6c23 zcLGLsA{X|QeK_*b3yy>EOzL27|L;nBn_}ORPvZ%O+3R3iab)Zg*;WL3iZHSi;kA#t z-7dFF%3wm+_$Ugl4sc(A8@me%JD%Oy*Ehzwa5vxZq?DGOdF+BE7fB0BSfalHP=)1? zkR@R;{sg{=krjaiwD}7*>T%y3cG!q^l*_=lWp-ZVqkxe_oXPARbzfF7{lXDqG?gzI zolw}h7wXhY3tc@J@84I#-D>@al8#XU0>VvNE#)JIEgD?}f@kprRC>6GwEZS>l zcgY3jZw%*e=JPi%_Jmuy_?E8w9=_#7D8C1K23vN`8p0M@DPU11TA{^^Pc56M;N4X2 zZkXPy1Reg+R4ObRggS^1q5o{z_+zm7)=jACFo-2|P|OOZ2vnG@m~;{YQFQ@OJ>>rZ z`i-9GGGtgY4;A7?%!An^kDAy}rAC~=Ku6Y) zU8sf9RkUH5GF`E5=a0R9W?;9BRE$OeO#N zazw%k#v9~Z8|4_H574U2E?CEot|Ks6A(81a(*)x~$4;c=uTopJ{?2Fpjq?(!{auJ~ ziToC!L#q@aTt(Yrx)|YhIiBeIAE>`e6g{Ix@~ZbtfogvjOZ{zEJCz9L@+#Z*EGaYmXe!IkiBozjIx{rrAr;4e0R7$adh zuog*PE2X0LYONK8TM5k?Db(Ok`TC)Vsipb(`NOh%J%m8|Yt_u%3xr?ZjR_Hrd(hs= z5C!3O#28VK@|F%IJ`_#;LG*XJ+`B`}&`Vf3dxmz4KKWN{Rj{d~6u4ufO^zY@yn98T zuiU3&w)~Ca+!AvUf0endw|rkJI7gmlbl8GMKR=!{qWk0IR?IY|S3x$TUhq|U3JH@-V zV?Ys^bI-Ds9Az9-UNziFatJeu*Q;T)24fa6DcUb6$|vM7awJZk=E8@F*2@gWLX6hy z?(dHn&j~+$^h2i4adv`$i*i>YN&Wr3xQ*O7LN{Drx!5~+!7Iq+W~r1Oa!5G0D$B`H zA<#X9RB>mh8cbxD!kSdD$RdzFpHYNABj?Y_IY?0tk#m@wBjg+q? z^iWUYI_b3wPDD2Vk)L-kVn783VfdC{7vz74IK z=lrknW(Tym_XWFn^Y)d@!ly>PB^mbSnZ5MstJD6TVE%*j&4SSKx$lBt@|nE57qf4_ z0xN?1?j|kQwe#k7p^)_C89fRqt|AWGOMKN!p`x}YU{k-Mjk4H^DzA3Uw9QP+x+IZg zRq87wlFZ4!abfO4IH!uwslt`yIW;gEnr*vra_%HaC0Fr$|M<-_^Jij&meBN1xt$WO zZsn_6mp1=&$K4&_9Y^^cN0+Ug(3>vK#6`_HnX@`@v1~=*+-g3z8d~}Vw+j~gJ|4L< za_@L3_aJWhwiVq>olgz8Ze3Wou-F{3ZGo0L-TeJd;S)_!1^{luwdFT!=WE0HwYYdH z*hZI^?_J4b7lX~Vuj+x)wQT{M#-f`A^9A9&8a}Tk*zwVk+egB6yZE|YIKA=4-8aH} zUgr0_ylm?Rz-2iAI6r5$9RL@Wh70QW0&w;|diD0JOXWYU$GvZvp@O5c9k|=^t0j;G6rKuKDfbqV16KQF4(*<5GvjX3c9EP z#wzU<;8VUKSbKp{m7*r_6G|$+NHG>wfTE8ka=$YQ`|(BfU+6V?WlwYH%7g>+2Vey# zbKyX!ur4^k7ZRWJ@}0{|6Tko4eBnMAn$Ii4nTE#JrRF8~-B!M#CMCJY-LLrM3g2){E#hak(x_4X z_Ta?rL!pW-ylu-*GJl$THy1XDIzF+5S`YKK!+-==)IU=UgY75HKiztF>%HcC?oV1n zJ39G>&gGYnFP}KgzpM&f$XfU14jKnvX4CL}Y@{Ln6zj(766DY0*{q8D{}|JCci6m- zH}Auh1hf7AiMi2$Gi0g82mo6Y+>K=LMq}8vt4O4Y_sAF>$AMP<*EgiX2pgSG*T1$w z78Ne3hz`)zVfpOJZOJH$QlCzRT=(f?4s;vV;(&@JG4c)EU5R@uUk`5bB}%qC--B#W zqbhsWsIo7NE`!Se)OQuPpIxU)HWZO7NyXwGW?eB!L2jz+jj17Y*t+NePxk;w#$;d8 zvoJuio!l?*qoF^f_PyUoIG|cuSE4VOp>omR=j9{D6>__F2z=|0B|E48h_$F1as2DI zXg+I#80UZ17KPm2>0;tkj}HC;j3*V=0YcT7Y$|=P91Ss}RE6>IKW&@puBAX8fg3*9 zbzYiYiRCzH0KsucA~-~~dD5nfH(&jR!e%2~z^lLrrSt-!K(m;Mzq^>`oIpZAsHAaZ ztcL*jgpyYiZd*ydD)KQ>pp1NW_JN!Va?EfXDFS|el%m7xn}*Yfp9EAponEQV3{8)u zkZOP+bs1!Mw}k515g`awZ1d&)4q{l^=Mb z*^!jbn@b?__H}Lrli~1jS|5*FurXM?h zmaz;4wEVqfExSYe88E+^`5ItTd6k4y*s(Pimj^cA+Oe=BT)vqv-yAAxf#?I4zO^eY zFa0dzXKg>a?GC;D1UdHt|?m71{!d*b7lL!NMRAXeCc?wbm3I+_+shp zQ_F>$aDUE@d_{EKV)vbd<+3fG+O~dSMDBlS*5u>@=&-Ghx7Do&>@Y43%C9HDH~u#Q z{L5It$zJ*T0N)4%n*eY4ZwdJ0F)c>WV_fx-UmiFK+#P2n)1H-4lWdpaVB6uo$f<$o zN=`PY)pvYg4Dk=K%v=!POlwCAUO1hB(#eu!RXMk+JX^${1fx>Z0>&pvq*uvD1#gq` zF}M;$jE@9S5U0txsj=ntuEY;bB0CB4ca56OZIQjjaE+|^mIK2w8U*$e8LMDVjQsz7 zKte{*$g)M;BS`dtXZ-`jA*sI_E|Va%4`Id8mP#b6_DYth(vRDU60Yd3FfDvpLruO^ zRgL}cOK`C(PsNrLe_ctcIoRW>f!Eb?ppnJIgPNf-)l>|JRKl!W{Z^~3dT(s3+^sTkQK`m+v{X( z(U14w&PB#+W4j*P7>UIyT&cv=v1Eo@8|{uha@a0wr+ADf_ebO#A?Ii0{Bv?>zZGtt zu)yaq$vbbvBJjgxdA_g>Q#@fC{x`@Vk_Zznz0eL&xs1ugRQ71AO_jD<;wzf5NO;DO z4clZbR@nf=r|GpT**Siz%zJ?DQm}2=y7B71&(uH6?E4%ysc)O#7U&39Y~?Gqh6=VV zW$*O&^ENH+<@0cbg&`G| z0@z-$33u}??t?vqgM9w3B`2T%67&P0lC)R2*zn!b!0BZxX+7X_aNNUKIbRtt2Am6~ zcVKw9CV2cul|Rw_)Ogppcd;>ksnQgSZ;;M%P?dpe2~Gu#IjJ{9)4% zoy+B0dFwXpJk70O#ALKSuwefLEHF5m)C!FQYwnG0bK9^Fn4aASBweL*=nbO9znZR+ zOGkL9IIpqRswyDJn&Y5__3VOOgYe7duu=BM+}Ng~*`(0vRiV-4yPG745}`~06RNDt zL^k7*ZrTJfJlzguxB!HY=00|(gcR&m5C&jnQIvx3@sCf^$`w~3c5@BOJzA6K>O|j3 z+a1CH;}j`r?V-8&080knXi z!#RknVWC_!Kwcd~h_9h+>*Krz?7FHIhX6;_lS3ixJ(0!Fc6M11VO*WDu@MJ&zMG5va#T^uvQA z9_k%&eH0I{no(64yBQHquV%27K^as*tHVDsGYb*cK-B610Ce4>M^HOO;x?xI@mxO~V+Eztr z2_w5khDY>?^YAsyq3NV)oWGhjPp9IO6e(copStOiXY7k?| zCO$!R1d+Q15HyNk#Qkl|2EWDvB!4);SuI5ap_?(w#%wWf(*s@>l2j6518_ zd=OpR*-c+6bgdeVDXh$%|L-fdh&>JjyuM(IBz}b!sZcHTc`cIt73-(AqP$p-o4!K* zHoS2Ca-g7=&8UGKfv%U$@Qxs?0S8yR$`u6jO|AeC$L?h~PMB@IFH75{h-i6OYvNl->g7P&{_N+kYj zHIqh1%G7kSh+B)a1mp9o@E*Y4XUChQ!*^0joN^NHnig)LWqL-@8)$J(Y;1UfEbM@! zh+ZTurNkk)zXZtKedXeCLidEyN7A2=1|uO5H2u(>OqNg`V5?a3E1y> zR>O#CCOIktqFHj7WVln{vM|0!Clw$FFUa>>r=>Lpd z6iBP@Q2E#CgP)wY;5hOavxN);crFNfNdK9>Rl$j5O7~qq0~;9%RRqcrC4eJVp%yHr z6v~lRyg1U0>25`E_5)lTZkE0uqtbP*i`)R-B3c(WN55uNL@qOx-lTjZiBa-RP)o`~ z2I9DU=2wu!B(ug62*7kk0LlTIiTo>pqoRmpGQX92HT7CL6nJnj#J-KUZ(A{2-a2^o zART1Ooy+}x=FOb>ocDCM5*HGoW|Mq7Ib`1y%G(^uXpz)+YWbYn$BCNK)+ZW6X)you5++rwMB_$^)RXc(DWAPa^d zO`+>^YW`GI(WB#|!?zEIz>X@~7Rqh~TS(BwA+Zfg-+D}o;tX0^R525c z2lzs$FEhg(kZ_}_Snx1D-ms{`{4g?yo> zk{=rhOz_Qe3dj`Y(?Sipf8^>24Yb2o4@bva^zFOjZ**bsD*|~XYt8r`m zBmL0*t|JGMO=o{j8TiNcD6d@jqV(pJ-v3w|?V+`iCCn@?6=BFB1m_13Lz2QEfamm2 zAfCN)2>NFblTM$MFEzKM@4ms(Iz7nNk(=6lA~*#Eg@G?MPSY0TEGSP!i->%DRhr5jDo}xgF^?W%WfeqQ(f4O)L(C z)CJTKD3;9P*K)wGrO2<6`HD2a%%&RFV4e*E2UC@9Q8q!%Wy#CHDzL}P+-6S)Yc=ms zH@jFk4LscDlyr@X7y%Q1#=gUPg7QE49X-x`{@t4gthMw0HU{u+QU8)gD3(} zy%l1`rn`Pe%l8+9{g6&!@tekCrrwn@!5QnyW- ickQDt+MYhYOYm;=wGf+Uts;S{kq?xr+ZRAzIix64+Q<1$&$c$FtTMha5gv`2~7rhe>4;w4idj@ zJR0gdCn2y+tPJSm_;aR;_uTIQ$5lm;RPMBjQl3^*s?!=ueOikJJFTNkl84mRYBfdbG z^7UPaMo84j3nL>kalT8T=%8)O2t-4pVUlw5(|QQE_Gpw2oxKnZ za>aUDyf+i(k-*5N1BMsrMfdgKN1VS(59a3~Vx^F^zb@{y3y zejgp|3qeu(0>i#>D7=r}GQ8!&7Lvonno>;^rJ7t*s>z~MlEM+^U~jO$zu9+=vxd>~ z1?Zq}l#ULL4vdBa!=#A8M`soc2kC(cUz84nBmFS+pl&01d9U&!!(N>^FM;qmfghnn52ckjB7Y<$k z!Y~v%8VpB5(Fu}-3Pc0aG?1h~;KN9+;b>Y)gp9d&^K5`71mQrq7lv_x2;6jN+}Af6 zjs`+Fuzb8mT*c(unV1CEuM%%4#H$80f*VR+D9b9PQm;}f zjcmMFDy?k1SSsC$QWe@IT3GT(%4e5pA2p>fhhRoc8PLAT_rR*D2sNZKK2a({4XH?; zLS6%EpmyEA^A&qD=R!DEBY`5$;`8HupjCmgrTt1{xFs3&l6yCwYSOIroRDioo-~{f% z7?I?-MTi$|=(UZaPjEqKqu>^82yGI5f{Sw8atfuzwt>70y$Ei6O~?c8ih|onxyak6 z7}_d?i8l5HW28!Xifv+y;6e%GFxXn>A3`y$cNF*Ji?XM9b*wgQ()YyDfXdS4?aX89+L_0NM31QY+H1!J0h z^zhed0ad3727Qe8aer4VO z!tmHAh#h%VXbAlw5RS(oAHRwenizsx2Z;o?o^xZ6KttR-4RP}{XbCjL&C?J!p=r$P zP7-lFuR-BCuL_UlwE>zAOyqT(ke)Y7r0l#&6shy-KzJgrrbeTA?HCOep|NUt3l+K; zqJnfUNNC&gy5SJWp#ym}h;Bd|jOLBO@P&~e4bm9~LRxzCLYT@MfRMCmUP~nLyq1X8 zc`cEZ^I9Us<_#zu;^@jN$MedGymB(H9Ly`v<(0#E)mR9Mj#6-5dzQ2Mh^6CX%Dgr* z7#Irz#~?i#fzpqRkN8F*5M;8q|XT9~}94HMB-v6`71UfsODU ziT3ZFYk4^WGH(mC`@nFhrDL=YS}z=pv>XmayDpq<8JjpBI{9kv*ytr_bKcj&tE9G! zP2>%|y&#H4dwVDCLZ}e319FV~G0dIsD3(hVp6a;fvU#c03zjiwFOO?;PWM%R(m$<_ zE90&4z+z?fwOup2mh8T}_6FA8kWpssO}WSVDwmB~Ysr1JzRDEWEEv2G>zVV{-^|*#Ej~f$ zvR-2?d7#!=Ob<#FR_DBP{~gPLdltu{-E-Go&)VyA&ZBpoJ*=}QS6Y2vt#UcPQmY-# zWrM=ide^y=b?(fSdaoWy9!Uj~$AN^iRu8#v)dMS|+2MSkwn7PN6b{!_W72rlnzW{Z zS$qA5^hXodCq9Z@kIlZEZP?4&_r|qL-m1jKv@$svw=7m~OiyI1TfbIljV~ytPs9%; zyt#Evtfe;IndnGuc%W0b-0uZbr_!A>XEH&yYJ1k*mUZrkA6oRS`^bFVoavnHm|OpA z?Sij6emv#+!cx6#Mpnxuiani5*6<88vMJH=-qEz?LsO>X*3o-)>p!ZzUYWDluN<8| zn$lb|&6v_1A054ZbguM)TD8u^8fqYoE}?l(m(qNoTh=L@oPtYhEYh1;h-d+XPy{_`t;{R+GPB}=e4q#GS*U)c7IfLy^6JL#u|UKNElom9IWOC7Db8u%4^fFC8(?Y$^NXh`a{)6 zhUCY-|RAhZ^thFt!T6C3N-Id&xI{5BBNMwM41(q@A^29aYH{6G}RMFjs-&WxP z@tza(RqzeJs)+I;w?bB2f+dACEzd)k=wlj5YMdR49!4sJ7x+9u8d&Uc&*RfbVsV}> zdPK2^(cnU+PJ0)q?2`NNdNGm9m zz$R@W;A%n*R^bBW#1cG`3ttaxZ%QrnfD*>;0x@t!`&Xa&_x zuiO`9qmWXx86B@KXh{pyqO)ltG<%z8<&UeT(EC@+Ekb%hds5~|Dp zW?cQc;*!#DoBV}ISTY|+yaLdlXb3ULK%_4e^7V%REiO=;2n`HI0T=>wC_3uv8$_{` zLk2-yg{5|ZaAfpiFfbm9JlnXfd8^-tfZ^6-Tbq60ZRNaOU0Vy(bTE2>4il)P8F8X! zg8V)V33UfJKo<*~SJE_2Fx|iX-|+lS=_6vrq!%lJ5+_P0%|0pwEB*+8pwDu$9LS21 za|lRYiqI&;<#nNf@F*R;p~~wx;VZ8PaRkIx>V^{Kx==^A&v&Q zj0jiJ3()Q$4n+VQ196RSLXfQhy$AC=9nI?^!6-CPUL66^M+bCh>v=HE@1nOOYa`a3 zbX?vX0pvB(<%%1e%oMWMKZ^DqPT>q2y^!aqh%yXGzY~@b5 z5Llg8uD@H+#8x!j+A-_AxjS32BcVz3B=xz9bw%NGb!_?GggVil)GgNdt_{u%rlXnm z>zA@ME%Vha34KbLGy%WTs(Duf5}cbkm#NR3ztJ$eYp(s1y|)d&cKkbYw&plUP>$r` z#p>E?Z_K=rab(ZnI()%gz%*m7Ty_FGnC+dgPkSW2$! zoZgw(oi$gd9bcH&<-E|AGx~VP&(S>r*3Wg*{&PAKn`bq71xY2 z#&mtAXTjStyPoy#kYw`#eQjc9BIBBEU8voW^*l4@Vm5>%9ukQRP1v#k&43g0u5qZf{qdXw&|O?PVug z41Z;`qUk>5gP{M^qD8Y!d*V4`pLFRAdQb)a-TxjeVgZ{}41uTkfl#?+x~u>Lv{L>& zs{u_+A1&aLgRp_=r^+biOCF}M)I_Z0Ccl`783q84kzbsjxy>)lO);~$G#`>f_VkPi zmr#_dFu_|^NnxhcMJcSSrXUM;NggGV6sSQedKe31J@=-huC{1l@eXk%(m1+mRbDIT zDGjz_%pUei(iQL@u^@~^XlWq@V;sVY7d?y(FeoD4^%wd{skr>_VS$OW7I}u`#R9G! zi3vgi=OZmuv3gprMTNASZ>?#yr2mApoNujZd0`DXK$$ropSE8Ub1+)^M=-_zcoA9(KTJiB&{7a9vwY=ZDJ=?Wu`)@H|39~8Q&AIv z_whAn${yci!Z_l4&Mo1#hMt2juLu6T;x}9TMgs!=H_$WXjFKS;Ca5^{yvqX04(_e9 zaQ3+lSP-fyQ>-E!hdA;cfqKJ?Z^}8CQ~0<^N$KQ7F0)V@;mb?})-#e+GGYqkN8Wr1 zl?=KpiIw3YiIu^f#V@E(KEamGW0ZxjsTEp5OWHz3ft#tI>lv@?7q?vCv*Nv#!L%9k z4-~P=u!^z7DjAO~uS${E<-dh*_D*4>F>jHf> z;{}zP>P#9&P7R|P+AWkqw3(U$buCj%sYxI2layD~`IEPxU&&NIQ3YHKJDQ(KgxQnHdOtUTab@|XNdZhfp?vIeST>haql)Ns`` zP!T=9qA{(y1}eNALW;u3+dk!EOcbb6z6KKzy7pSqM^q2n% zb`%M3-4V%nlAA4x))rH~sX8uCs)R2m?D>gF-#0lfMXLoE@o{KBIZo@sZx!0<;x{WB z*N>#nzFFD!JYl|kO^WiBzNu?ylPO=U6jq!nP^w*8&zxbq-XpzAk>44a~+{?p3K8Zh3_7q!MfK zLNOos^7jZ~LVbi3(UXsgS&{F{0+nd5;K}uX00T&Qu85KFRMQS9E2<5P9;UEM6>8Hs z^mCB8whLyq2yK+GTD1j6K6N^y^M4o-Eyz`*EX( z=c+%c@RtV+(3mDc(FsSFg51F+qP-r#10t|f#}^=n8b&X`xg^-#vc-4m(kQ1g$1PK+ z7{}l!s;n=ChPh)W$ntEE9I*jSdt(4jZUhE`lwXo~MZ&&780qOC9?F3fAvnxZC>Is# zhw~|Tc8KgEYazSF;F!l`&=-pM20|Bu;Vr%wp$tT2?mIi-qd;K{C;%5);KLsb!2?CW z|KyPq&z_<$1PjrBp@F_5N_L`_C))Mj!Uh=y9ey~1K8|7dD$_^M=mz5yjUR)*|6e!0 z`r^dd7x#B|Pd2<2d*iJ=TekJ%b}(X}Y4({O4$P~EU~`l{9E6Q%k*Hsl*Yu49#`1bl zt0NSU*Ny~+M(F|I4$snlAkbbK4D}7dmZ#yd!2s(1$H~d2yl#Tnp!(O6b8@h^OcfaS zx6mlp(zw-__MuS+Mqa~hR054WQT}uI04g2wIyiwh5*VjZA5Oo7lPwr6QdWRfK&{QUh+3{ zScHWfd*L@Q!iF#?06C=w_29T@UOfK7sk|D-Q(kutkd}c+zC_se1qak{FPH&0&XFy4 zMvfco4WoBs#mo}!G|C?IUNms2m)8JQD>1hL{z8qDt!F4*(x^WLWCqU|=5+vG^a8Yk zqGR4nipOoX%$vyT#OKSG8_*!_OV1xX(hY5hHQ~BK6PfHChiXsuPKc?16mTFcIqqaL zaRrSAVdIj~kRiWy!$ItNTL(G=r&B&@Gxi=!OUi zS;E(7EjE1s63{;dW6~-hGNhcJLr`Qh=yqUtTaBW!_FB_SQ=0l{==#uX{V$t7X_})x zANp))zWhkMWYOjMvE{=^X7^9u21R<-^-SCVU_qHDZd~;FGtF7w&aV|_V+(7kg56e? zsLMwbrX&+#ecNYyvYwssuEjFX)z^}*rOsvQX2O|3wrp#>Q$To*Wt21Bnf9z}OS}Wa zb|-g(g5S+nw`5&gA;{)T>`Fyh*ZKupJu;t2PNcn=Q*2#p*0XK4hxI&@)ZF6%gz>DW zG1JO=niCq_z2v@Yft^ZKDJtEOX}#VxU%mN`Wy`V$3j3f!VYOX(e){=@Kh>UWPMuG- zq>p3**N@LSuD>vEX+tRB_Y(`-^<1X7{wq7|)59%JR`ds{Z35M|-OB*zT z%Y#f)hgoNR{7|l}ob?64u+6vvAjAJdcXE-h1a+#ek4}`+xOUt*7&iUXG1!~dbY;9mTVQN*6Fv? zhK%F7`3u`7z>SjHoCATlnsg&TZp~jfwvfPk{6?{3SyyAm!MZkO&VS+BdJn)L-Ha~v zR;G34?VqcDssBX(E7j+^&vd_{Kfm&9R;bm3XP~F!li%OJV!&rzo4DbQJKM-BKth&k8t*H1Th}K{OH~`Ly)g4a z=4iHRXTrGTs!A(=_}n6FHuPTiX6k1*{BqMLo8|(aY?*I8$Tl6!)*VV5U97FUHa;_+ z(Y*h5vMX0sldk*WzYtRF_}ShYduPwzcy7LF?;ItQBGL7wrvf>|W@4Gs+1g!+E`%ik zG|iQ+OYdPzw;-yfozbR3853KxeYTygd1kKs_8xY3_pi^hyL;xnFMXv}mAUcT;J$Cv zRyh*}*x(0nA`a(svwn8tzPUiQ`ar@2yD(v&=3us}YT@yZvWxiIq$mk_K%h6 zXR_X=OmMdS)AO?(H_ox%-QfSSc3rNjK7I1zy7VjAs^(cW7yXHmt=hd%)toC|mk#{6 z1~~krHQmQ^__TfYAr3$3$*6e_Tr}YT9CM{rsgv)XNcXU%8{a#zTnSZLu2Pg%V~^eA zUexq!v*UM459CT=$bQ_Kp)xz!b@0M&hfd=OUYUL6PU*fcD{Gd#zI4~eJ+qq3t8D!a z_~OnO_`ZZ@gYPK3_EK({woe_8;fA9hpwNtWZr2@eM-F*sPJP-c@J<y69fc>QAuS*pc`yxQ{ z!^z=y!_$XhHge`1H3{d{>ST4!UI`!il7dxs)t0nn?RCp~gR=y-ExRjo-ny^M=qXXS z%D=LKD}Hd9OcRHv52qS3uK3{v-1S<5yIxbx87AJjVA&`5E77+BCmq|BW7EezQ1dUf zchjwtvz2o_pVVYGA6T%oBmLvzzqFO*V4pT_ckW-XZ^*gaSNA3NrB!J@~S3m7MdT)zj%*6$U$)`^;xhmq@n!pT6X&OfFH^u!?1cowKY<9VCc zcp76SiB3sQZ>wX-Nl}U3bv3lx#OX&QDOS_enmE0NB!v|1mcy>ij75r1$4Vr6Tk}d> zdsV${5k0SkwXLeR6%ip0?Y1!nS@fd>Hl2PG?3&kI@!BTAM|2shV%G+~ML8r)@U1ni z6uUNX2o}e04f#s3Yr{j>wVlz>?}6qH#mJ(Eu@h~dLoyzp9BnO}Qd@yt7tU}?uxlws zE~f=8(l0;0RE$G{gv#W`ZJ&&-hL;y>qh*onZ$Apr=Gw0mTDP&NX~E02?o&auOKWS9i+A)L}aa zqbyQ0RmB(u^poLZr5NZ`wHOciNYK%+(uk;=%vgFydHDycl*3b0j@GFfF&~DHmF6~8 zE5=WGxzyb3v4YAcQmriQ<-3=2fD&rx9g>pCeItwJfT^mf>PbXLrMo-i(iMMOt70zs z*7^2{CoDnDl#i64hN+3IGMh}*3O&pC$n5i^GlJ}W1^nCqD1WRTuuoL^7Clf?)BzVg zjGlWFam2w4Bk}QX=*ln-6+;LE9?Jei`H-}QdGxaOb-UfNJ7qDJ_bqD*t z#8#6*uPL<@^Oevd>{av#Exdx~(IO)7Qr=sVeP_%@Iow+01^uMQmS>=D%!Ym~Afcpv zc|Rbd{)#~RLl`DpPgaaz;$ap6z8s{3{FxtF026>nlK?*OaHJH#d;u8YshX9@ryPI@ zXLoquvcL~d{XZJH zN_jrqHHKJOdIUP>$$(CJ6q0mKRv!^=*Mn<14#GjB7PzdVV<0kG6zq}-{+(*`XkIxAK&HBXBuZbxa^g1z0(55qcOD)2`|afUyZtwm z^hJzmkV8A^7^Zw1jS4hM&_F4bog*3sK<}pb6BaECu zenOJLjTpT!N+3Oedz=Fpp~HYtIKb!+ zk$ecr)xeiKHkQG#8))FiByYhCAr*%YT6ktWT8ME3Eu2OApP}(BG(G_%PpZh{hQ!UI zhNKDvGo=455;I7wgB&0i`WN7dpcE*)v8&tk0U)RU8jMM^02)HU{s=xJ5gi<<1IQ3= zs#ptTcqFqo+pv@M?##M&5!BFC2B)rS8ZxGA&2~f$H&1tinzsD0pkW9=fnfj$%eIK1 z;gNJ;=6I$q>uP@Lpke8i?&k0Aanx!3t>A3e&Cvz-bGJRLyGtbF4nF0~wkx}*ch8%Bpx!5NtB3XY z-v+?1!w0&pd|-2rn=z3n)l}Z1?S$mJ{GY}#2}vpJ_M~d zU{Zb-dLOQXs7Xz*rT(~a$y^FIRqRVO!YQ&%Uzj(*MG@1_=dA9;`RO-PUFnx*j(=fo zB!TyA4m?YkGG=Y-(ygp*L&ouitqJkDXOhpP{OR_Y=3CC6d2V=q?);_u6F0zx`p@*Y z4cT2svaLt6{$p$fK#a$K9sR;}GFMfXe156Q2Zpygq5aZqUo5Y@Rz6dnJ~CgvW%}q+ zd0qVI*E$7UodP$Rc$3~#Q`WH|e(+11Q-JGK?=uO@3QvwZb2blvHwVF`55B)IVR*C$ z@oxa#b9QVCyB{&7=abK;8la6Tnln9YMayi%oS)s+al41zc6h$D3y?avtwpDBI032i zmc+XNsjH~E=AH4Tn*g6L-x@y(XcHh~jd0NNYlXvForK+diPlAzJ29DVPrkk2+PDY_ z5biw+n0a@$V*6}>t=O47bPs|XW*X8>*^14xN&s^chrV>Vg|Z)pbB9M4DqC`1K;*Js zf96$y_)g;&!s{=D^|0P83tm6m>jJlY;D!L!)hIAHlu=&qT&M&X*q3&_Z{J@euUWfyC%cQ-tyYATc0o;+cu=Zx?3qIUE z>%L>(1(>swj=uGa78`aJXIkE%+k@TTV#q866qkfWk5p?ZlsvLu!vE>zZZFCjymGn2X(n|{4f;}Of4Jk6J3sO}D7_4d z7BfJ2>BD?EEijyW^$2lr;e-xzqx7id5NZn8p-7>Vr7(l^eOl5UpxG&Y}G?Y~Pmr{(7G& z;rnR~z5hsBnckPDU2E^lr+&iTC%P)=5t;XqDd9)PKehLjVI%aumGu5ULS8Z>=8?Tm z?t^~9-haf`;hVnuaO1Fv>wnIC+`IosTG`&0`xv#mC zJDCNVddJWvfwyQ+82}Nn0amVsxebCT8)&5~#dyIbo>0H#5b6!L0qg|4!7;R1pb~AN zUT_M-F@#E&qK9(catUQ7G_6Gh;DxtHZl>h!TnF6%J|yjS&Mh^kj4QZ9n-o7&h0D-D zLn`*sGsSc;_wqrImtF1zs~A6F@Rv&N-+hrN{6erPoyPlue1YLnIFdn*NB9O|d%G_( zF){*M{o!~-2yU|_|CM6A**5{V-ufm@g5IRlujbA`;4mPrQ`~i@#E+{qaxkKsoOK|l zASNAe#kj)_aI%4OhVfYiz6-W+5lp)(`G`@%QTCy>o{v6%9;UJuap@>qBJ3qi{rpQ?WUSnm%a|N81 zifHhD1S$QcobnFtpvBq~O+ z7xN;hATCZ{eD5q?e3?3hdt@`3yN$b9_^sZZb?;fQ?S&1>7eBj*0wiAM8YSE6>+h~> zW8v4+mbLGI`$Z2ZOF*Us{exkt(g#wg*^xN;y=PHXb2nY^4Ypd}^)`Vt zjr&+S+D=&y3DEBwm)^uH|=4)d*QB6*b;04<-!B2zS5c0FFR3n z2sie?Zd)qT@oC-s`t58*TSA|6ZoKQ<%sLAaEQq`7P?|L*O{q54?h_>2;&9MlxJtfv zXc;aOElotecjoCpkZMQO&N6NKSKHc`Qx4_-Z>iA2G4mW=@ zm>!RZI9Si7tfTpBh1z&r8E;=ItNL+ITA4bPJOi%_Xc1tyZ=y5RnSL4cy05cUTV^$L z9iJcj?AWiBf7Ts8e8+NZS&u1UOdHKtjMK);=A6NFML(@i^u_fHh6?mqr>zN!fAMJ6 z-LzoXBm@sE7;4aMnYJWOE*Q%18O(PLUe@3xNzGRb(}wSxh;9LHG{@Pb+pq3E)#=xC zqp9rnoAJ`>a9||Z+nYD__Ku8F7lzSo>Fqs#Au!Cx=zDvq(LM+^OD-Iz-N27-N8=nC zKScxe{PceX;|5$liS7evpk9I)C~QVB$#)cAscN-`<%3FvtLmL&IWUfYtvRLCdhZXb zwrN|J$CL_tY0m1%SseGRFRQgB_rtn=l@>1ldQtl=rPjr9N5*~=e9JG4j7^Y9EboA8 z0P(9j96Aeka-$1A&%`G44S3){+(;yEp!;6rT)GQm0Jp%=uFV1=2tO literal 0 HcmV?d00001 diff --git a/pyLiSW/__pycache__/Sample.cpython-312.pyc b/pyLiSW/__pycache__/Sample.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6823344da0a4b865c56e5107d3f14a68fc623073 GIT binary patch literal 11863 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 literal 0 HcmV?d00001 diff --git a/pyLiSW/__pycache__/utils.cpython-312.pyc b/pyLiSW/__pycache__/utils.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ee31715b064cfe46b6aa5adde9e6ae93db7532d8 GIT binary patch literal 6693 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 RI}4^=3rzPN168_i`8QnWSQ-ET literal 0 HcmV?d00001 diff --git a/requirements.txt b/requirements.txt index 6ac4317..e0f82a8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,25 +1,25 @@ -asteval==0.9.29 -black==22.3.0 -click==8.1.2 -cycler==0.11.0 -fonttools==4.33.3 -future==0.18.3 -kiwisolver==1.4.2 -lmfit==1.2.0 -matplotlib==3.5.1 -mpmath==1.2.1 -mypy-extensions==0.4.3 -numpy==1.22.3 -packaging==21.3 -pathspec==0.9.0 -periodictable==1.6.1 -Pillow==9.1.0 -platformdirs==2.5.2 -pyparsing==3.0.8 -python-dateutil==2.8.2 -scipy==1.8.0 -six==1.16.0 -sympy==1.10.1 -tabulate==0.9.0 -tomli==2.0.1 -uncertainties==3.1.7 +asteval>=0.9.29 +black>=22.3.0 +click>=8.1.2 +cycler>=0.11.0 +fonttools>=4.33.3 +future>=0.18.3 +kiwisolver>=1.4.2 +lmfit>=1.2.0 +matplotlib>=3.5.1 +mpmath>=1.2.1 +mypy-extensions>=0.4.3 +numpy>=1.22.3 +packaging>=21.3 +pathspec>=0.9.0 +periodictable>=1.6.1 +Pillow>=9.1.0 +platformdirs>=2.5.2 +pyparsing>=3.0.8 +python-dateutil>=2.8.2 +scipy>=1.8.0 +six>=1.16.0 +sympy>=1.10.1 +tabulate>=0.9.0 +tomli>=2.0.1 +uncertainties>=3.1.7 diff --git a/tutorials/17_YCrO3.py b/tutorials/17_YCrO3.py new file mode 100644 index 0000000..a6f3dd2 --- /dev/null +++ b/tutorials/17_YCrO3.py @@ -0,0 +1,175 @@ +# -*- coding: utf-8 -*- +import sys +from pathlib import Path + +sys.path.append(str(Path(__file__).parent.parent) + "/pyLiSW") +from Atoms import Atoms +from Bonds import Bonds +from Sample import Sample +from LSWT import LSWT +from utils import gamma_fnc +from matplotlib import pyplot as plt +import numpy as np + +# Information about YCrO3 can be found in the following reference +# https://iopscience.iop.org/article/10.1088/1361-648X/abd781 + + +if __name__ == "__main__": + # lattice parameters in Angstrom + # a = 3 + # # determin the effective lattice parameters + lat_params = [5.5225, 7.5474, 5.2521] + # propagation vector + tau = (0, 0, 0) + # vector perpendicular to the plane of rotation + n = (1, 0, 0) + # temperature + te = 0 + ycro3 = Sample(lat_params, tau, n, te, gamma_fnc=gamma_fnc) + + # ------------------------------------------------------------- + # Add atoms + # ------------------------------------------------------------- + s1 = 3 / 2 + aniso = [[0, 0, 0], [0, 0, 0], [0, 0, -0.01]] # force moments along c + # atom postions with effective lattice parameters + atoms = [ + Atoms( + t=(0.5, 0.5, 0.0), + ion="Cr3", + spin=s1, + aniso=aniso, + theta=0, + n_Rp=(1, 0, 0), + ), # moments along positive c-axis + Atoms( + t=(0.0, 0.5, 0.5), + ion="Cr3", + spin=s1, + aniso=aniso, + theta=np.pi, + n_Rp=(1, 0, 0), + ), # moments along negative c-axis, rotation needed + Atoms( + t=(0.0, 0.0, 0.5), + ion="Cr3", + spin=s1, + aniso=aniso, + theta=0, + n_Rp=(1, 0, 0), + ), # moments along positive c-axis + Atoms( + t=(0.5, 0.0, 0.0), + ion="Cr3", + spin=s1, + aniso=aniso, + theta=np.pi, + n_Rp=(1, 0, 0), + ), # moments along negative c-axis, rotation needed + ] + + ycro3.add_atoms(atoms) + + # ------------------------------------------------------------- + # Add bonds + # ------------------------------------------------------------- + j1 = 2.725 # meV # AFM is positive, FM is negative + # my_bonds = np.array([[1, 2], [0, 3], [1, 0], [2, 3]]) + j2 = 0.1 # meV + # my_bonds = np.array([[0, 0], [1, 1], [2, 2], [3, 3], [3, 1], [0, 2]]) + bonds = [ + # j1_1 bonds + Bonds(ycro3, idx0=1, idx1=2, r0=(0, 0, 0), r1=(0, 0, 0), j=j1), + Bonds(ycro3, idx0=1, idx1=2, r0=(0, 0, 0), r1=(0, 1, 0), j=j1), + Bonds(ycro3, idx0=0, idx1=3, r0=(0, 0, 0), r1=(0, 0, 0), j=j1), + Bonds(ycro3, idx0=0, idx1=3, r0=(0, 0, 0), r1=(0, 1, 0), j=j1), + # j1_2 bonds + Bonds(ycro3, idx0=1, idx1=0, r0=(0, 0, 0), r1=(0, 0, 0), j=j1), + Bonds(ycro3, idx0=1, idx1=0, r0=(0, 0, 0), r1=(0, 0, 1), j=j1), + Bonds(ycro3, idx0=0, idx1=1, r0=(0, 0, 0), r1=(1, 0, 0), j=j1), + Bonds(ycro3, idx0=0, idx1=1, r0=(0, 0, 1), r1=(1, 0, 0), j=j1), + Bonds(ycro3, idx0=2, idx1=3, r0=(0, 0, 0), r1=(0, 0, 0), j=j1), + Bonds(ycro3, idx0=2, idx1=3, r0=(0, 0, 0), r1=(0, 0, 1), j=j1), + Bonds(ycro3, idx0=2, idx1=3, r0=(1, 0, 0), r1=(0, 0, 0), j=j1), + Bonds(ycro3, idx0=2, idx1=3, r0=(1, 0, 0), r1=(0, 0, 1), j=j1), + # j2_1 bonds + Bonds(ycro3, idx0=0, idx1=0, r0=(0, 0, 0), r1=(0, 0, 1), j=j2), + Bonds(ycro3, idx0=0, idx1=0, r0=(0, 0, 0), r1=(1, 0, 0), j=j2), + Bonds(ycro3, idx0=1, idx1=1, r0=(0, 0, 0), r1=(0, 0, 1), j=j2), + Bonds(ycro3, idx0=1, idx1=1, r0=(0, 0, 0), r1=(1, 0, 0), j=j2), + Bonds(ycro3, idx0=2, idx1=2, r0=(0, 0, 0), r1=(0, 0, 1), j=j2), + Bonds(ycro3, idx0=2, idx1=2, r0=(0, 0, 0), r1=(1, 0, 0), j=j2), + Bonds(ycro3, idx0=3, idx1=3, r0=(0, 0, 0), r1=(0, 0, 1), j=j2), + Bonds(ycro3, idx0=3, idx1=3, r0=(0, 0, 0), r1=(1, 0, 0), j=j2), + # j2_2 bonds + Bonds(ycro3, idx0=3, idx1=1, r0=(0, 0, 0), r1=(0, 0, 0), j=j2), + Bonds(ycro3, idx0=3, idx1=1, r0=(0, 1, 0), r1=(0, 0, 0), j=j2), + Bonds(ycro3, idx0=3, idx1=1, r0=(0, 0, 1), r1=(0, 0, 0), j=j2), + Bonds(ycro3, idx0=3, idx1=1, r0=(0, 1, 1), r1=(0, 0, 0), j=j2), + Bonds(ycro3, idx0=3, idx1=1, r0=(0, 0, 0), r1=(1, 0, 0), j=j2), + Bonds(ycro3, idx0=3, idx1=1, r0=(0, 1, 0), r1=(1, 0, 0), j=j2), + Bonds(ycro3, idx0=3, idx1=1, r0=(0, 0, 1), r1=(1, 0, 0), j=j2), + Bonds(ycro3, idx0=3, idx1=1, r0=(0, 1, 1), r1=(1, 0, 0), j=j2), + Bonds(ycro3, idx0=0, idx1=2, r0=(0, 0, 0), r1=(0, 0, 0), j=j2), + Bonds(ycro3, idx0=0, idx1=2, r0=(0, 0, 1), r1=(0, 0, 0), j=j2), + Bonds(ycro3, idx0=0, idx1=2, r0=(0, 0, 0), r1=(1, 0, 0), j=j2), + Bonds(ycro3, idx0=0, idx1=2, r0=(0, 0, 1), r1=(1, 0, 0), j=j2), + Bonds(ycro3, idx0=0, idx1=2, r0=(0, 0, 0), r1=(0, 1, 0), j=j2), + Bonds(ycro3, idx0=0, idx1=2, r0=(0, 0, 1), r1=(0, 1, 0), j=j2), + Bonds(ycro3, idx0=0, idx1=2, r0=(0, 0, 0), r1=(1, 1, 0), j=j2), + Bonds(ycro3, idx0=0, idx1=2, r0=(0, 0, 1), r1=(1, 1, 0), j=j2), + ] + ycro3.add_bonds(bonds) + + # ------------------------------------------------------------- + # Simulate dispersion along (H00) + # ------------------------------------------------------------- + proj = [[1, 0, 0], [0, 1, 0], [0, 0, 1]] + axes = ["(H,0,0)", "(0,K,0)", "(0,0,L)"] + qe_range = ( + [0.00, 2.01, 0.01], + [0.00, 0.01, 0.01], + [0.00, 0.01, 0.01], + [-30, 30, 0.01], + ) + sim_qespace = LSWT(qe_range, ycro3, proj_axes=proj, axes=axes) + sim_qespace.dispersion_calc() + sim_qespace.plot_disp("x") + + slice_range = ( + [0, 2.01, 0.01], + [0.00, 0.01], + [0.00, 0.01], + [-30, 30.01, 0.01], + ) + sim_qespace.inten_calc() + sim_qespace.slice(slice_range, plot_axes=(0, 3), vmin=0, vmax=5) + + # ------------------------------------------------------------- + # Simulate dispersion along (HH0) + # ------------------------------------------------------------- + proj = [[1, 1, 0], [-1, 1, 0], [0, 0, 1]] + axes = ["(H,H,0)", "(-K,K,0)", "(0,0,L)"] + qe_range_2 = ( + [0.00, 2.01, 0.01], + [0.00, 0.01, 0.01], + [0.00, 0.01, 0.01], + [-30, 30, 0.01], + ) + # Qlab = {'[001]' '\Gamma' '[010]' '\Gamma' '[100]' }; + + sim_qespace_2 = LSWT(qe_range_2, ycro3, proj_axes=proj, axes=axes) + sim_qespace_2.dispersion_calc() + sim_qespace_2.plot_disp("x") + + slice_range_2 = ( + [0, 2.01, 0.01], + [0.00, 0.01], + [0.00, 0.01], + [-30, 30.01, 0.01], + ) + sim_qespace_2.inten_calc() + sim_qespace_2.slice(slice_range_2, plot_axes=(0, 3), vmin=0, vmax=5) + + plt.show()