From ae63ac0b25a3049e8f0191e8aadc83b02035ec55 Mon Sep 17 00:00:00 2001 From: Axel Henningsson Date: Thu, 24 Sep 2026 08:56:34 +0200 Subject: [PATCH] Add Gaussian model documentation, example and theory --- docs/_images/many_crystals_quartz.png | Bin 0 -> 242973 bytes docs/_images/single_crystal_quartz.png | Bin 0 -> 90777 bytes docs/_images/testing_rocking_curves.png | Bin 0 -> 119516 bytes docs/_sources/gaussian_model_theory.rst.txt | 582 +++++++++++++++++ docs/_sources/index.rst.txt | 16 +- docs/gaussian_model_theory.html | 626 ++++++++++++++++++ docs/genindex.html | 48 +- docs/index.html | 399 +++++++++++- docs/objects.inv | Bin 1256 -> 1895 bytes docs/py-modindex.html | 2 +- docs/searchindex.js | 2 +- docs/source/gaussian_model_theory.rst | 582 +++++++++++++++++ docs/source/index.rst | 16 +- xrd_simulator/gaussian_crystal_model.py | 676 +++++++++++++++----- 14 files changed, 2744 insertions(+), 205 deletions(-) create mode 100644 docs/_images/many_crystals_quartz.png create mode 100644 docs/_images/single_crystal_quartz.png create mode 100644 docs/_images/testing_rocking_curves.png create mode 100644 docs/_sources/gaussian_model_theory.rst.txt create mode 100644 docs/gaussian_model_theory.html create mode 100644 docs/source/gaussian_model_theory.rst diff --git a/docs/_images/many_crystals_quartz.png b/docs/_images/many_crystals_quartz.png new file mode 100644 index 0000000000000000000000000000000000000000..f68ae1a053528c5b11f45c7ea5a8e72de065fe9a GIT binary patch literal 242973 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

?QQWWoA?oao|O1^I)0;NgMgBKp;u9_vh)<2K3 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 literal 0 HcmV?d00001 diff --git a/docs/_images/single_crystal_quartz.png b/docs/_images/single_crystal_quartz.png new file mode 100644 index 0000000000000000000000000000000000000000..23c3baf5ed32b518a7b4eb47902c4f691ad84dd0 GIT binary patch literal 90777 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ℜsvfd;%loQ<87TyGw2tT?y7MeD@=Lyb7g4+WI@KGkxBf6MZd`*Mhh zlv}s7kp@{m4XPiCj{FN=2t90XrCA4iX(fp_cOWto{`E^tBtlHNIMw_rD zv7AU9(N$CS$J3oQ6xBe(0NkbK@FXsj0ncjon#Qok_;35|9&SIs;KqI%IxS&LunsfS z?|{tyC)5zb@~TqZ*vT%)`n)V8ANM>Imf6DtvD(33Vn3T8raMc>z*}Z$qRbP#=KKwr z+(v}SX#`F6SuCt%ip?yI(iBPr==9k^dszgHniWGW7lZY{`Z6>)CpIOWO&Xf&<#qId zX8{}6zuS?Nx41H(oZQk!KG6Qa!n*=uuAyGWi`smj+lkonmWcp9*_{jU3?DiNX*U9! zSH$hEjonm-E5sPQw$Oi$E2Yk^4O2<*8b=f}S>a5``u7VmJ8KWH)0(8eds2UctfW*8 zsYCYT6aq9r4iCKjq@&#tO*=x*cp!^6Z9ziyR5nFdEp0BudTk)@QYRIW@dOou2No8Y z>nf3K%bj|-ZZS(YHn^NU(TE9eQHCzPUo_*Zwn39$RxYWDw)NWHAv;9u_MiEOaTVt3 zs6Qs~A$C)Yi5x>DQ=VO#fpTDhVg58~&fcHE;5SRcM|2#SUMh=ua@Cu>ZDvqx2i0`D@(#{z*Cd!bp9e?dpszTNYCOdlYP{Wo}v8esO!%{23M+Qvf_h2+;K&(u}(TX4h@ON zU5`1o7R(#${pBmlMMoN>sQ_CdQjkLe&ti-sM1M1jK4k2QaMg`mRnS#=?UkTq58Add zzaVoQ-TQHKaYDLAGnZzi{_|UEf3qN*Kh&8MGpoIClOWs=IAzF_rT2OjYw`eM5ZeJ` zp&>7CT+^Yqs$sVlepdG0w=~G?lEA!0HAi)bBUH1z)iCJ{T}JVN=u8mh0_T6OAO8gd zZ$irIuF38>ogK;){V9?_x>6*+;u5Q3!p}oz>s?AOmml{eJ3Utq3EIMawKgASvSj?V z^R6qV?~O9)gaEqjE3VkHodXTW?{G8vLo+Fk7(-IgM!U1EdUi4mK>Q=LDeGQzfS!qW zUcTNL;iI2+Qd*6aw_M7Y9pagi(f4xs&jg>G1e%$m6r=YH*Pf@?NO_$>OQ==+C4UZ< zK&_9)puA^!;M2@Mbp#_AOA35@86?7>Fh8z)FlaD9mUW{^G{uB_p!0MTm(x&PlyRp> zh3ce^ELnN3fGXyom<9&SDKWnJ>a}vUt^RA}F)-&j)Z_7Oi6JMIw)v9;VGeNUM7*zd zx)b^#UMGpG%w{mIwpP5qcKgrp!uh6zNWOI6kFGoio*Kx zB@MzE)B^P+nz1IWp?lWN(ZMRNZ&@rLyV5HiwE`~&mQUNI0~cuu6$};=iz8@L$h5d| zOo5>WE(*PsrFS+uY$k7%J)b=;e7aV{@p&H#VzJUvIih=#*s*0oxa31*%RxlgH(dEf{g zo;tA(XckRc$*=W*>|+MZkIHHh69QUr$;%&`^kbU&PeqlZo@EE8r1Ut81VUUxs<2_s zxUfM;3FCe9rWmnjH3aHs_Z8)4^3m#z3#}(`YvsK-FH<;P*=s8ArJV$rzHEvigJ9crRT>*3UO<=h=zhI1x0g{T&>#{d(}&%Q>YsGJAOgQlyMzjZ@; zYU%jj#~D7zx@Hl=AF+f87xJHNze&EW-NyiPTlU1lHXW`?zkvy40n}f)-)3+!MR=Jr zMfUwYC8ML4Ww%wG&Ma<;me|IZ2YtFq+0nx;tjcux35F;kv$}UBpq-=;h&WI+ir7Ej z@&)Ou3-k{NYzRY{>*E|dAZwmUi2OfHy#-X3X%{X`BPk^%jR**m(p`c`NjE48N=bus zC?H5FNH<8Abb}}@AuTN+FAdUt_B;RguXAQCW{oq<6Zdo9JFk6Rs7CaY>7DO_Nc<}) zJxANK=*nmPqp)OUxEX$ZimQpIn&nxGB;aFgpbq*Xu(+Mdgm&1ZmO)l*wcvrPfod(* zAUE^m31a#49>ON(U0ZB3FE&>8(8z6@-EDdH3>r?crbSiH+5CdPku*hVbN zM}cIdG*Q79Y38pv>NN232HJAu5l;hu>9cL_bSyO#k{!gpa$g#i_;^>It*$oE#htpL zw|>$C0kt9q|S(5e4)0wwEr72AN{QhZtYz!h#YUhuq()*%qk{ ziL*Vy+eG(Lu%H@{x@$Z&ycN@eV4-rX65$}BI5XUlcJH2jr0ipGHas?o%9?OjW)q`) z8zoMC z)}8!qJMb$>e%~BWqX3NNqFG?h3vzVXkOH3&Wi{M zMy~kXcbjEQ^6|v%s5t(2D5LT8D0%uYDq38AGb`;G=vxF<2hY9jm^hM~ay$t^Z^2SS zi`@2pUz4pU%-5bkV2o@0L9HoJprX-+J(#oCw{T zo?orWL{E%6X(61ajeS+Jv~kr`f*5cj2*7cZ58$PIcvqH?C|+s9=(@18l`5Z#dUYd! z5Cy|2TuaQ8Co}Aec_eo+!hmZGaV(+1Z$k3EiFeYl{B=O3&h7|Xoz(4zoM`(jZ79!+ z5O@`+?=l1fv++xn2wVf+Mlo#}-IMKXrqv~|D~+JYx<3qB-?zSGsF&oMe?U1krbLtc zXX=h+S}FTXJf%Enq>J;<0H4P>=Rwa~SutTT;NHQNa23@2+=ATEB${Ob38)&$sN=Q{ zcTsK+Md&l4-N%x+bjSDfIVV0)sgnNiF$CTH+oRC_4OyF+#%Cwr-V%xiv|QD?mAGb< zrCXv=Xg>-*vF+w%7=Ow6mAg?3Lr&0h`I0AKdh1*8oCI^smqfdk*jCiklm`VBDt0TG zy9#8{b0^*`7?whx2Nuw9pH6t5Jfp)oHmI;QE3vL{a8Sx`^`${LGhy{6U!kJ1B zG+zBhS#Ineg^7Ju^n<3Fiai~3sAq175Wg2W;H}RHb90g!4CpIrsnbJ)Up*? zN=v^&bEeE`QPyv}EIp8p;HyTRd{5|h@_RwM?WsoIaJDn8UB0M48;=P_DL>*czsvs_ z(`w^pU~q&(F}HCF-V|2OkB*}P4L^+8lUq#wf4I<$)XO)~1+&DIWB&Qn6Y;ASxy|;m zH)K=tsQORtnV*u+KCye8AzD!Z49lIexu_vz`W%Q0agm6C0>>Wn$e?PAHl0W2ZpRL* zA;LkDs~3p@!$T)^l-}u29T^4N2*1Q+{F1iAj1>ILO@crl2igqqy= zz))`U$cGs7$CKTNz%kqwH~-3-PklrBg#K&1(E_+CS~oUXDo~p*+UDB=@n*YkeD6*~ z!)0K`I=dM(86NOPdJsk2-OAekU)0kss!%P@-_FmNJUz>aQ2%Ocv{v$#dweb>j^^2& zdzIaYbq7Cn@af+N&Eqpev~2*y`x#<$FoF~&+Y%M{71!WR@> zm{{8}IW3XA z`{Y_ajLABX5kKzg7M)))7bRp)#=}IFD$P4Ynm>I$hh?oui5VNzO!N_7i5lgD+-lf+ z!nS>PEXdeXpP@jH5i9}?)ev?=5&B~LP#f$WLsSuD~g}+ zN%uLTa`W0}I|T(+N-;N16eRZgWN*pzn3aWv*XwB0GD^&00mW({g;7W-{@~!?=+-0_ zO_ki0p+?v5V;UxW7U@5^Jhej4QImrz)EY`IyGt@!-W8G@Jow2Z`$@dIf@u(wgkX{y zd&QE8V>OVQM&m2#uMpW%DovGgU;NnDie;ao7)nXYubtV9QN~;!ycpOir7iAWa1hpS z^_8for~qQoj*S**ESA5XZy~352a$tM(b4`LiwhubYUg$h&)U=7z1vVyS{exqmBjS) zgWuni@+SLCMecex4%cHf{I(6;zLI#4x-YCULC9e9*Y}?kRb-!z>cSiazbCmNX9=rL z6`Eo@IeLxufm1^-%B7FrgK&)SLkugg7VgCX+;yG@AN-5;*(fnSS0V=4 zGtFr)q$=@csW$>Wo?wTD*M4;%l!VDiNrR~y$!ptjQwphaDeSsVhLkCY zH}kEZ-~|Ta2i4W8BNMl&sr4J(?zdj7a7)O%2cg?A;J!=+#z@b|+rkbRdK%xJRXEJL zPE-I_ZtzX|0pK$|t@S$>qVrfly~gt$!oe2ucg8lc%E@o!mpQnTkU}s*z~&rye+b8) z#J@$Fu|x=wiYOlL8XkEd=k3dqNxGHyaQKBH4Rz$VG?F@IS{1Am<=}s5^2Q+77MZHC zCM(p08xyQ|;v||X4zM-x>x+GTPV%pnm8XA`UqfZS-kDWh;xKl??)+#gyRI&Q-)bN_ zI$GM!?mmc8V8Wm7h=@!%&j8u;&aGGv;1NA(zv>LS)zkOt zcPbOnKQM%XTayKQuxA>e31Iwt-`OymOyBAj%r@)Sz4B);qz1?iFwz=W{BVL4Z zLl~Fgh(ZE>cM_q6s;GT=2U_Gu6vm3)^=$w z|3H>uSyAeY7#10G0U+R3>!SrtK<|1*F;oBkNZp1X9X;Uj5HqSt^~dl#PlzOLov{S) zEfAGgerWsagur|>!XQSf^6AEPf|Z5FA7)G&GBVedeQlW)UymZJ7G2N%i1KT1uJ00P zcfJ__s1=aS8bzq5pKWLAV&INQ!3Dv_9l)A;pRUBGh);RfzJ-w=Jb;|ey3Z3xYipAM zHjy5fX$2G`XWG)X*&efWrM(=D*_L#dZZHTtQBi*8=n6J4g`#+R6c zDAU7_{RTie-pZdCH`A^K}!?!Onu4O6dU;jH3`skuIwbVX?r@ZArL~G2=_11%e_S8G6mk#r9 z1m&uy=T0Bj|7b*t5ZRAb-M6{M+2qfr%e+cbyaggY!O zZzA0%LSS#$I^rm99H!%RAi7s=Wuu<`MSF!=FL z@p$c#F1ICR*6Xioo_b?%+nXf7Hm@qRkI`YZ!E1VK+|A2TU~V4I=YHYKivl@p&I>Va z=F>BhSFYynmTbA-_QR%rq=+~N1FJZ>vvSG?uq6wCi6qNYOJ(BX8gM>GsY`#lITQwgrlu#DgkRUY(g3aaH{}=4-;|z>p^#nlx)#6^N9m)FWI!^?nFVIv! zXuOQmGi79C%tSBKzriSOE-JI~a$oA2->Am+)n~0g#;&fe2OASn zW>^2>FV^*1|215KWbsmAQ7KvmP+)__;(O6c26{<2ZO5(GKDc;zr*PCHqMYlE6MkBz z!2$iuZ8o>L^XQTlvRk9N(SR&FJ}ssXb;ew#$nh(XQue^Sg96gV%creRDUrAMbJOnx z9RyamvL8k;-F-M{U9R8c&YNFWc04oj@xSNjYrP0xJzih8#v-KYR`+Y5C>o1TB(Xd= z7%d=5C#ZO$p?C9W3{m_mm05D``}O6#K4{g<>T|{ju#`FX(&2rOwsI*(Rm=K>;bxnM zqdxUI>KosNlm1Jz@W8GKnZq-}c+rHUx#LTH&Z{Vzx5{0E6r`C+HTUL62J*C*@rg?e zt8t6QesiX4K6{qM%77Z3nAp>NJl6;38nj!!+X|ABl8!vP#I7;~ny@RecpL=kvh3ia z=y7!1@U|ln&(HD>gNgs!X{bGI8az=!lh4cJ0xa%}?mRg!J6ByPZTn@xI}?v47jSN~ zuq)*+&HC|3kF116)b`%_6VA`t2gL!JvgsQIcC=Dv*VZ*1Bd4NK#mNtAub&E-kG zmJrB}cfhx~@WT`hP{O?0&Vdz!6*UzpsK0|YU$%~ zrk0j>pFDX&Mo#WYtEa8~eW5+b$R}-bQvaDnGHX+%zOjA@MZ+#7;?8G_wgj~I60XTb zqc}&<8@nZX{q03X9n*H;8u`puqoEDK$jrP0%oS9{YF{Y)tXF<1{7bM4D?@t0v{I8)QX$1w$X0Kz*-Gz4K z42)?P*{!wbjU{6NTV>Y+FEYf0smxUZ4~U2Ov2X{ZXFU&Ux>9S^r2Y*I-fd@Z#G?)6 zM&Z;*e!K0Repe$s{6|v63w?FOi(l_QsT;IuK7Q#;PPuwq=^5wOrodP@`f-sqzDu;@zVlc(pxacLqw0}k-vg+ba z@g_W|q5KwyE)QsS4+>`3E3+3CHu1~T3p@A+2BHB{9t9DT0UYe3HtvxyyCHdXVo_#5 z9`ICF(Ukj_)ZerSzagBX**5Y9`>#1lmNKjgUx|0atLiCI1kFizt4VF+0(^Xl8SxLO z$0ZR{A{5F8cjZ5!V-telR4_TIv99)m`GzBik68KnKg~6Jp?eB0u8rhPRlWMOnjkdq z{R#Ntzo@6vJwp?J^baval_<0rp{xgo8MG2&M;HyJ+w&)% z!U)xF5Ys*XA|IV9>64Ty=I%+Y0|umh(E-A<4tQ4auDICPau5_sd-FHZaxgRY+1bGw zax@T3Sukuy-|O>vr0O~76WkqiYz2vrdhpbzJ?g&SK&>5SG_PbIKE$e>bu&USiwRJh z5x{6J%Rvjlvra|ar)|08FjcJZoz3x^VD850FCd=E3d5GBjhZF;6@mTz{p3LiKX?kHkc`3C=QuD?)C2<=#fH^k z5M)m|_gB3dK{~^ex#O0uGQUe3<;RcTEXOE%fWiY;-P?-GtYOy$eV&MbD*4$gQC;-U z5ePyDhP>eLNXH>E23+lss*1`rz6G*!-F9D&$taS^!4`>W-G)!}g>I6jCxe*UGTQfz zWAPO57P|#C8i)H>WDT$lhxuQ88fyRe;Na^Qr$9ap7I`sb9&ofXKS+PIi;Y6gW!(L{ z+QtAveh?!0q^I!=qO<;Vsr06%CdWiTO4l?3wd->rbixd2r-1`=UbL9Uc6cFc(eca&6t_hVA@ImHeH*o zppaK2a)bpri3iFZ8it0-YHEa#3+@%l$zXHCj-UcvJ&8X{OK&a@Ct&R#5t-_6de$uH z9}wQg5iRg}abH+4yLRK#g7*oIW>=pMM#!1845$A7@I<3DmgLOiKRHX3SL^K+H%Xip ztRxo3!WX8~7AD`8-jow@E+mxjNbpY^rVQG~QXW!%iw$ywQ!nC8I^k#huOlctG%WCi zg9$_q0@s|1lipQ9O6G-|y*P*xdt~}zsr3cot)v1XvDV0CQ-bqOAW}}jOQ(xf^;6NCh}Sw2|X8=2Ou^_0YCABEBj^- zJY$C?E~f~&@buUHXCtIsOQekDiH>X1)C{*(8pNDV&1(ZB2vfDQ1aG`pQ|fvmnv&Xu zxz1)Qf-6Nscr4$ZuGn$rQEn%Vy(XuSIlb)_Kw~maUQ2q5=>fD_FP7!aMrjcFuO&R? zl|(aVr>R^pStICCH3$dp^VrgjvdZ?D=L=?+QOU~RBlUFQr8ZfO%iNG=^>h)Zm(Wrw z4T>53kT$oSM&OxAyshcNz|_kYjg1J zZyZEq3Qr3|)x+kcnnrvfp7qRh`amm?*^7 z;z=%h(#8|od_(DYkC!Wu6a&#cdbaH=8T^r;u=eSBQQUH{wG;VPSKYY(_u|fTx#s7x z!(=L-_T`a#>jvY11=d5k{^u^A|Necy`gZsIC6BEb8XJJC?sAQ?kYokT1ibe=VDlvS zRgOK|nIJ1b#W)t_q&YHibE^p*gT!N{U`4m!XuQ{AA?2yd}^_OqI?cb@zw*SIOYblV?&=r zy7@cAlmz$+6G832U$jXJnFNhJi9)kr>sOu-yPe$eRNiR(Qt>XfzT1<_*ocdZMWPq} zP>5g~U5z7JR5T2g#ZaM+R(P%_Xvw1*@TB>`-kq2H&ieuckt^=era!G)J_mv8tG7g` z6gQuYWKJ0KoMkx^V{)(&ZyJ-ZNApozCLP`*i@zW0*GDlxbnP?Dd#l`;`A6%fLdRc^ z@`hH5m>D%PCgD57xkR*1;b-qZN~|#MY5PeS=Jl z1e+qOhzC9B>8SCq>t@^+0{PRr5p(whNW_eJ+cdgWLO9WJZ;_2=)$$M?Y&fpI`j{Kj zpvH57ue*Hc!bkEfqOH$g&`E+q+KAAVBQuVDBDE72l>N1^yo=2B z?&l|IP{8h#*XKn|jCQ1|IPM$~t4;W)r?s$YdZ2bErW563+XD@-SQ_D zmmjv?zD>>|SpGfmC*e4$yd}C8+|?n$-#6Ngs51mO2#9Ba^FcAKQ7n#^@h(g1< zOKU=^`k1@{jXyffo?~*i^(Rrt+`}45;n5SCD;|ISgVpDZ|ANFb%))Ul=ag@&xX?r0 z_Zzn*14X|DLvIfH`429(X}RZv_cWx58~Ca+Cx)@af;{zNZXC$%H2v98B1WVdk=&*? zQ$MHH`Q`N`acP(|QrSw!w~Dr&wTSpY|RH*J9~;std`yQPBrjeVSfUj)Z& zb?3)QJMzi?_%7xdg!!GV6J(fAIu3qO83{O$T(9#TbH;nPm}g74I@CEXHh+*?cN>;a z(vZE;`W^Msh4u;7XkD8p)@VCXJO|PGP$P3)=tZ!mRT%bNl%6&j7rF8DV{WVjw46-E zu-?5g$JZ!p2zf&tCG>}(+f2B#JzF0(T*;zQhdVNA4b;DI@M_RcFO0gO%?IqLaJfj= z-DvjhK)Hu=u_F@Ki~~R-I>2KhFiw% zsupYie0+yPG`)M}coK%o>e-yAl<(}LQ)RK)8f1g?ZVZ2=WWbz#RiNm%8pKWxK*j^_ z3{9Chynn}mqAJS+A03>t@+2GPyUaQBoVjNa&r~Xg#0ZqT{EH}s!*^DLZerg1N$#@(!#wi;Z?SzsBufoXL&pc0ohVfV19IOsX+o!quHM|1bgyv(za{6h3#be~~~V6?!> zxKtvhgFgX`()2DwUy~NbWwsk?sErjf+j950gv0$`uZcdsBx~R3Z%}L|IIvpDu`y0J z@i$2it5M1CmmQqkccpqquwKYmBE|V3@WN5UmxR{*_(ill>LJn2TVDeQZ&6{pHY$30 z`hl5BmYG$xoK`wUu424kTZLny2-EQSsh+I$09o^!qQuMW7wY|Y8pyHl+@pNm)<$Rk zd~rUvnl5YI`~#|-1*0{aXGF17A;WK+J&`tTbH3>1Rp%Rw-^|1l@}&RC@?d46egnK%X^Wy9bWz(#;x7G7W@63!o`&G%ue0w0<9?4$<^-K(ecsVcC*Jt* z2;BlhboXzOs6*^Gb96pue@BFYd`y~3l_PnmcdNV*cs=3(lHqDSl2j?VOx}Cy1fKE= z_wa^MDhN}hy@jKPD6a2jPPIM3LXRa>IZ#!&DR$a{`{h%#Mc~1lC@}~6r8gm?yvJkz zx8Vy7B0TqTQfX>q2MVya5Gw?E!~7MI53aUKf7Nf}Z~MPZE!}Tn*C5D<9dM^gjhu_< znAm=Yw|Pqg@$ErBsx$ORFb>*|GXiNh^V-$}XV{eb6$bBw?H~Vm%Sb_zKs5UfyfMbB znaB_I<{uuG8IduKZW6s1dBasnfcW&*)NhM};z7#rCqFFoDa+9H4J#_+1!3G~W6#cq zt#^1HGI1QdMcgA{d_}(3O7r;Jtgf&Qnl*Q-nAYI?w9jS}CnGwdRnlTHohCr7-NR=dgbF!Ph5`#bwc zF&;+wiSb)4C0Ry1{#WLl{>wP#qAC*xUH6!h(Nhi^eiGgMp0IcR>$k(hon?}-6PjQt znTUr2pES&{JN#p$Zyvw=M8xDoCCzuIpK+}vM&)XX{G=Z>L@?Vu>;@)PydxTZ8~ zURmL#3Ni-l#n{#+8U`WPsFjA3TDX`v8c$Kj(zY&BG(O(6QuOaYX$&wWWqKPbjx~hs z+5f}ai_pTa;vJSEX9#`Y+pOd0#6Y{4`($DR&HEki&@i|%aPL_I0(*2k(>dydDwd5S z(0zol!=L1M+ww|01UZNw zK|KwtJnTJjww~)uDfBz2Y9xuS88{M7TMQ>F@yJJ98 zv)hx$9ZBs&jTG9Svz$Ml?9*^9JfJBE>}byTo!TLHgP0xpfZCiqSP29;J)WsP^|Zyw zLr**yzxA*$;JNT*QC1rrVlXY;CLqBt)OG2vl)r zIN%nx1Q$M)Ccc_5*={1iemd)t?}9R>6sW|=6apubG7M|ROZ9l@vQd-b0S(p>X(F?H zmQ5wgXyR-FL>SA&X z)KUR2i_@`sccrEhh?uHK{E4HJ2%1$L$c$OD9DQB|Rwql-GV+NTI7(wRY`#d{J!aaI zz0t_Lx#k2@!*J7do zCNQhPS*RSM&$j1oUQ&9}mJqclqx~9QRlB3+ZqKc7{;=>ZQ6?$o9dvdLt2VA&t-e^1 z#RcDTJDG{_n7g>m0v2X2v|Jk(Vj%&9Y~Qmsf{w-mh7k=_NqB>wQD{*RFNrd;S3}Te z-HIP#3kKebb$IP#ee=&eQI;2SzKkF1jL9r4GRbIoc>CU+S8==Q_e8nhlhP(c?R=wQh94=90skiGKfb_~%c8J;2%-FF3_8BQM z)PwRFOqrjR+fBZ-io_~>sE8i^cEk>h%P(`}eHLgsyyM?NiXO(h~H z>K6lHvHXF{lv0W=m%OlJh81>$I{{B--i*=v{taFHA<|iP!68};1KsgADu^ipcEr>@ zma0}#x{(tLLX}}zwameuNQ|*tXA*S5YFG_7d*0lY@9MsLBpb@rjsInir`x|@n1?UA z&xA)l)4g|1Vd7OeF7Z7zm#$`V35y}w=U8{L0Cqoz7(O#R_(z&}IQeGgeVWBky3B|4 zD4~JViBzdf4!i0?gnsH+!o>)JV9(kA2_lhH7N%`<8;G*-_+)H9n)aq(e!nwZO|89{ zMVG4Lf(B^uPTe^x#@~a@B@Q`m3#y0>X==~AaRjN%%Hy-{T<#i7xDpmjNk=BhCJ$IX zY$~UxpP!G#*lW-x^qR}!;wPYgc$j_;_dr76koS1TnL|C)<)1^DQ%Qp_cwo3U+?Lbn zcg~;_PBg3Yz*E$V#*Vna#( zLMz(|*rR!GQ@)oxen)im@pCrv`f{38_Ten3ICt-`5pyas_Cnx19Ps`{W5Ge$0cDswhR#MclpblT|9hl8;%)h|~Gl}1OZV%a`^G(P+0qgGREm*FofY>dzB zZ==O<$aL_rb5fd2Bh+32qSsI^Hms~{SFv?`jp@0qA^BtPDjdo=%i{B|1QM z-zGg1waI3Wk{987oK;DM*eIh)&Hk=-j)v>zB3+PFN)_ucc!5xw&Y&CE47ud0`|dy0 z%wQ?1I=z6)=*tI=`z zL4)boiB=TGTd`y>D;%*i{(Kqi;EPL|lm|a!U%u>G>PXF63Ls|{{klnLehFzc}nw%-jr-;EWW69Pr}2;CJWwjW>-&fRxZo{NM9V^mzEOaAm35I3G#4tznS5tD!5P@= zN|DeJ9ZBp>I?R-JTMGK_tV7I2BoC>G z#z+g$-|eP8e@bi`s~K_qaQsXr7avHUp7bi;iMyS%*>0f_MN-Y#)Hm0#d*2m|06>42IE_JdiWb7vZ(dHf0ljw7U0?O z(0oF&<2aqv+}wke@#1ZL+^zkMJ1rZBb&@`3yIoRO!y5omjrzA) zIq0-L$`0c6NWQtChKYYZ$Fqu0pJqXqcJ~0Nc_h%j0=qfCGTWkNrkq=X~vVejCdD%(+>lMf2e-1*F8Yj990hTVrbN zyl?VYkskk>f6upD&bKYQHYY2B0HF~6iB%n`*#2*&Z*97^Z1oDdGa$b{XBl;V?04-B z^5!dtwYtUn?O#-rk)pIAQWuN>r?PdQ;<$IuWAPou$FL@VazF)Ic9V%x3PzGc%j_OrdvW0MD+b$-i!b68+` zg-3C>OIt3FjF1w|u%igQ-|w&$45?DV#KbH%uK&oa7>R7&Lcdwg$;nClczVkX z*^qwVHM3PaKLE5+>!&8{KMHk8YrwW;{1aK$F}{qBGtC?bX!R7y2dRmbGSXQ!i%RrtMIQq2;75 zdHQ|h3U~+qozGv-ZPavx+}xjW9(-bK+z*<_^-GarN-8S&`UXWsMW^r^0}ZYlb8{MMx|9Jwqm_?(%55r@tS+m-ot{wg*=BWbpbz{p;7SP207GCCFD* zO%^1kpy+~k`n`E50YD$y$@2D%niyuqe?xLN-^|un4bmYS^3c^na*!cAZ6PFrzR-|q zI{5XNGPoVi#mMH>N?*K|p5ChKbiHfnG;IAo*pb+6uw8qAr7}q(p1bR$*Rm4X=GnbE z-{JQ)uIJgR(p_gv`fM57~*lhdqph|J6&@>XC;Z}DcbASOF<-c zu9#S|*~K3UPSYmJ_`VepOMsLCSEj#BX?^EDlKru4RRoZSuvPC!Nu|FU`LZ`|^xAP) zfkL3@0oq#7O-Tkp!SN#FrLL%B(Z8pw=~jTr%K7r;V{&qz#PQ6?GnV0T-hcDmZJl%u3%t51-G?6x|F&;_xvd^ z!DHTr0=+~9YwN<*x@wyVP2@(I=}+WuPTK&G%5%6WpgxcQq8;DkMoR)sV#&ETtF)Fs zlip3)T3(#&At8dxD=Y7+RG?qEEH-~i2;dWAmth6KBp|;7bl3ihbgsF4wH~_%wzYYn zYhTO**;>2axxSQo7)kTU(2yE<$d>C@)9?(Z!o$Km&bMllebS+|DA6@KF~M&$&N=73 zuL`E?A+Qv}UU)v=;^Rw8`ttE-&b@p40N~TFw!SqyJe+1B_qkviYxhr9QH+c-gFM;Usn1D9K(pdB^6-vuvn{Q#4s zk|G>q(G`h#LFtEN!9_xpV&mg0;Z5MLrtPwVf~TYTPrN~g{sX<#9KVL!RmK1?PYQb- z6;G`4SPjsWS&WyN4aTx-<(HOP_QtY{@Ava_>X)|_(XK^>b2Ws5HCRm%bqxc%-uS}; z`IdZqd`-QsR}Aw&Zr7_SG>bG8-Mzhk;BYPjuiW7|rP<2r>ZjDypX*~qQ#E$C!FgD_ z^#cMn*~d!Aen#oZlbF?nU%xbw4dPpR#*41ThK5P2lzAgPz&PviH_x%5c#Fpx!(*yFN4v;C9Idlv)vMnn%{yIUroM z2h$|R;GNd%w_sao`~QX$GT4P-q@eIFEGkMbO6sa^wdUJ5Sc8qsxt<|(u1A{*dw2?>*%SA~W5;-aH7t`72~-q;(}JLU2v|4eh{ z(C9kJ{_^D^;2I3sb4SPY%u3)<&n&xAuA8{xAFC!kcm!sk-+3CKw6_-ClzwhH-)`*X z!5{R>jnxEyqXqQ1dyO;7YlAH>kH+=~P+` z9$na1=#yoPml#c~?{7}ms#66ox^7E=p}r>|pku)KxsAe@{SXXgwTG(Y1gW}srlzK* z_KO#}n#z8Jz^D0S!q_>&tP5ir{ib*ZL=8H2b|tGd5N|a9*f^>OctZYvz^>+;9Qhwz zT}4)DZ|*Xzi29sW6&4gcQDzqai%}-}d#fFrUK^ZdnoUi|q6X3e7b>E;evtaNzaKZU zb};&My7u*PLu+Pcra|)&Kn2*PVc&Y$_x1H@L5SA6FrOsp({Kj3jMdXi*uA~Bf<S`s>4MXH* z52x#$s8zgCeBTcww(nQ&V~NLfu$Bf@FNt>`y3y!s1>B5%%cz2%> zrWB+VO`HBZn63^7!l2SJ0uI46M_E(gti2UP8~};jtmrz~i}LG7;(h@Y)Vys}X-R-Y zO#WN$Nt*_mb799n7>({bgi2FjYuwt;CrV8o`}j0ZoV$Y|BE5AB`9zdM78fzGvGT3H zms}qGr>iYbDe-B9%ctsZ0?+16hrau@yAYnFft@HjA1^lO03+HoR|Kz)Wa0&rdBNpn zY58U1rIigVaUXDQb|R@7(;y(AAylk%G683rHr$nvK#3&7EZfO}5W)f=o4)tGfamrP zGVK0rWdG_2d5kM;r}+L0_+o5^w6<^32rsy{e4vv^f>VTjnZ$fi>v!!NNh|jE@Qo_C ztCW-gh`SihkI%eNva~iSj*QrUT@TW%dLzIEC!Rw67S}0=~Sh;GsnH zrkfa&x4a%gs#Boelt-?|B`}8~(LxZ7qnuH@1Api)Fo^$g5%rP0n_$dE!QHfr1_&Ij z$`=$s@VNq+0PpdPvw9_!KcHm2!5*5fYVXW7*KdC9LvvFDTNwpc!lSE%ty0?bPkB&a z+E%dAW$l;c#FRA6QWTIUm%XT44S)asm9ApV_|^2+7kF@jmtgPP>85@C$|q>|d-+fV zpZY;4g#8dG*;R|p0O~{m0@F?iWhQOO`|{F#!ys*G*eKnfIhx(^r3mR*G$3E@yQ`59ORStO@ zsO$E7=5Pw`BaFLY z;o${EMK*hfx5&saN{V}Wdce!20Y+5=;#lyb{a{)a>#w_GnEl;XN1pS=Bqpx0LokUk z9d?VO4jJ(Z5J7}a$@>graC(5bGiFjzE;|H7jX7$`(vW+ne*~6LOXSuJ%?BolQHv1H5ViM3M#u1{Z&Y zTA%*yPc+@A!o$Tie zd|6+$>Z2=w)@c|S-5#Y=rJm8%MmNU9ogdm)n} zSl(6FdE}VPz<}kqw>ZdIhYysz--=WghptFt9(}dPDb}^A3~f9={!AkI?i*66;I;4m zZKR_u8(19lyK?qCTwgi$0ketR1YoJ1;L$vL=YMVB{k8D|RD5%997KCaNG(Jy@}8ce zx<$7tr)D;v`PtWdi`-3c+nj8#v70{GdhNI2>ILU&s@jGE2L}gb#<7bQ;{OCdoAvQC z-=P^`2b}IR&5Hf`C21N`6(H|625SQ&KtW>Lbsf&<0C9!5CzM5_B-55TVLR@1!1 zdkT>+FdSpI{E8YwXmpYQbIyPMsv$!uKKq{Wi7w?I}kO~_7(?- zVex|@Iq}0$t&-0h7dBe?8!<>2D&+HU1eaaUAqd!XB|sh?WZHzpQ$vu8lk8kray)2~ zhFp(9scUf{FsIpR+K_xH;o2GYMobDs-R2_`yfE0;Zw`9ocmeWqHQXqhiyShAg z2AcP;E^C@u+1W-ug9ESs+aEr=?br}}_HuNidonx+Q-b+Y&a3! zsy6(3TwI)K-KA;8NpX8%iL)~@+V&-0uTjHs4Tsd>_r~ML zkM|A##e)6JQV73j5q$TR4jj_c!}T#q6ZE_4X)3z9y4};Xt2SGg{P-QtbeQW2<^~|T z08zde^7A3hYs1dP;36b{ECK=o%jt5Dw^|{Tg~GrxyWZnI%Kv>KB*+zf1&`aNe%bV= zPoJ9C&A_ZcI7|D_Ed)UgmYq__o(2iZY_Nl^c!!l$C^>L!3K_nDk^6=Oy!u}4r=K4r z0Ek&VC?9Gb_>?>uKPKF-eh4Pa1Yo+?&u9@1-q%xACFqKz-H(M-H83|bGXQEniIBIN zIc()6pC8so(ZX$DPGPr~WnqA2*kD>V;+c}Mxi^Z@M!DlRXQxn zN~<#;O={iHW#!i99nTcb9SyAkL7BFFnq!ZeUJOD(6zcPuh+b4P*D3Jd|7@i;8B z3DS>fnmAvaI6}QhysNJ4N2&?-nUmf6L|Hm(YaF2^BE40?S*G z<8!UV%nykG_75g_v3kOE31Y{;Q&#DAjvLeaA~b}YJoayG_OJP?GvumLdVuaf@+J%r{nBhW?UUWmVE8kER}Sh_ zKR>;>@`lK_1+wV<3t#vgaZpx?)A52ZxA!^U8@>Q=k^(+w2ma5?UfUftsq}6IP1pSW^e_FaOv;`2xnP7AQWcUlzYF9;G!a z>$cOj6fQL9(NU=tq^WE-+n|F?j(}wUyYn=p;&D^9x=?gDisk3vcsvU`0tytI5I$&1 zUF}6B&)Qc`C2h^@LiWhkRy21F5cw>ae=CJxIaX73A{99c`rm3tAW`)9BqdF^Ag_be z6%gOrQ0-`TJHQ>~-5UPAeOsCR5UifSw9g-7Fq76`bWCd{pf~{ul-Cx%8%zWhAV)_B zy1<0jPFao7m29f;ug~B2_V#K*fVPj}Gvl^BQ*d^?QwAAcw&h@22{?i=o3iG= z$Gq)4ujj<8J@)>P@0`QXz!*fYV{rdb@Gm+}PG1e{95VGXWZ83}Se{8jLNdw{Z=41E z^qC+yR7^-ONmI@zx%Zv)9yhl-=z4&oQFt>D1r=$J$f-KV?Dg5k+9YAetR!BGV1UaX ziTa_v`5=YN0^{Q2^RVzKGx+%Vbs#Wrfb?AAcpj?CxEg?F|0jCv2X@*k@(l#XV=#F! z3bw5nlEgCPg9}U;k8FCKBP$P}KHv&K_=3$%TLGu#Zt@`27Gdv`@;pwM0kVer67sn& zcdoC>RujOOOjyGl&UzR}sRj(?YCAeQu0sKL*OLym{%0s3BL$QS!F3^3Vt%68LtyhoSy@>V z4yh&-=X8*}0+fNEc8D}kMT~O6`H(pLcYSC@xlY^Fz6o@(mpY#s)YjDeXjpC@(A(Xu z0d*AJv9U4e-Mrkky9tG}$xTUcXjAu2dO6CpmpUV~kOm2*30a^*Rw}4@%>7r-yss~h zv5P;js;3>KknZj6S@M z;gLKpOTg6#*v|;Vsm}$2mIw9GF=!`EyTuu?OYlHlG7sjKGXDJeBfcW~=3kDcask-t zLUye$`N*Fi;S@!_muCeaXOR!i^NqwHD3XD!ZJJ~xXk)0eQ0FQ&7NTWKa4y3vdrr6y{Rx5lG`6#`_gsGG zxxCL#5$1Rj@JqSe+9{qrS65rxLgW%MONjmkCa&@uUHfi&nG8su42PMnIi4>H@#uIsgFjQ97DiLKh7S8a*;z*3J zyX_FOK_G)=P>&L#0L#Fltxl1ckl0nI)rp9}kygTjk}&x|KOC3b+}tdze7eXE=3LdP zbl_;b9I&3uMOP1vMw^6c3Rbam52J0o;2BSSdKeeR6$k=}wq~gs~=(69fkYDhMvQ`GrO6>h+VvZccAfx$ts(_q`GFZwh{xz@)4HVpmjB^3#$ zp4S0&p?1VdBog^`9h}?t4AVW8%7S{6&ZJ8DDJc^UNj5kJVeGDQoN5AydYHkeCq_#2 zco`rW@MuY7sc9wX0>VBTyHaoil2BB(Il#Jz-R5yum-1Lg_rviyi`AO5{`*&}MiT|1 zMKN&<@0}I!fs&Gwk0a`-bH0iD(P8gFg+$%oPN)^cH1nXpC&Kd}lp4j*8TOOdnU0Zgg29`-@%ynD_-Scouu2wpbtDy3 zW7WN|r8%PKkx>g(D}UBfH!R{NBxJ)ZyFWvx_=0%(qxR$%_oPXsEE1Tz*ckzV#X3Tp zLvlF?x~C>pmpP<5skKvHvzroeTZzZB_SwO?deq}>-^Rl6Joh=kX8+TUq*6BCJQxC? n?`gRCp^du%Hap_K>>+5w_3K!Kk0YUcnt|oHu)L< zVmMo9!Snd~Zg;+(Q6d!c1ugBDpMIO0n@rkuVe%Q=6Rqy{i0DM3RM-}0^ZgXwOlfIp zZ)elEtO*#^%cz){qn;`7=6%Yxnl;<|Rif*2+RLO_6(Dpq_oY2_%F1TU`SD^(5&A2~ z^}akyZN{jo!y{T~u9B1EP?3jSulVPzJRG@yCgupK&}*F>AO9XB@+f0!`T|Sv1frqq z_-Xt8?_V#ww$nG+-bZ}U3vqO0Me7UGH~Z@x6YbNBXCEJ9|A|j^$K$hz-3j zid6dTTNDHYgv8|JhDSIw*c1P!YyU;(F(FABocqU_J6Y>*chGAPmzLJ8;-_+7_IzdE zc8d7)aO|&D^8w|Hbj;QuW95gLGOg_Miq<3kY`?#j`re0JTccS+Pmk9k$xK>Z?bpjg zUt)yQ&*s~`ueW*$4c=Kjfm@}gr_XagUM@eC`L}|JBZ>L-?f-!f67#!mU12vJ#CyE% ze5!tWyc6hO_Bodi!6YAi`zmXr&N994MT%}$01TY6{&650%OCK;#$bCcj#pMJ{Z~H` z^8N{c8yFce9nIv^A)7th9J)PfJ{%cWFQzN)-XQ|6Am&|1J zBM@Pft1&r>l;^A)O9VUW4Kb%hthwF1moQKNjNtZGAM~#XSagxU>)5w{s>tXpA#?qu z^ugSm=Z?>YgoNZ~HIx!ul==4nn1hbHBOTYAk&&mFQ4LpDE=s=}qlEMLJ!d>n?Sr#m zU$_uacptDMd@WHa_L}d!SwlnkD)O+an0>X}?)~i}9FpC1edp~K>2$dckL!MUBY!^w z1B0rzcDmPIN%5}hoRL+G(3QniYN9d&Zur+omKK>?A7R(;Fi2nHXr)V46!@fsE`O<@ zz6T*Klitc4#Ry&{$I>hbUd3hHgY5d}BT{LCqHyz1>zBBZy}vMc7IR@g2F%-cKK$C5 z_@YLKr(B%vRa#nBW|MOJu6IUwJGt*69BScqUVC)E&aST+DagS$|&db!oLNd{pkdJ&O9?dbYyWDH{Pa zW+Ul0@G?mG^e|2fwvF_n?N{^G*;imQ)nN8OVyR6PD{92ae2ARQ=CV$10Z*z`>bEBv z5y{dQW_#_?CnYBr4Gs-uFpDa)J8!*%{xjR>>}_G9a){Aa=)TcL^U~}tF1anplY8yt zjouL&_$a~bQ9j*-PN^#?<-Pe#lox_UdGz@bY=A~f#W#*oUJ2Xzy0`R&zgRo(ClA=c z59IEPd7SbpDn;)c=Zh4wN)a*1QtQI(j+%~I_E`!o)4h({uQShu|L%NAoPF2pd%aW) zxtx?^<+BAfBx`VRP`NnEEnV5FKXt6!b95_uHCe|_Np#S^bELfwln(IX+0MslOBLA? zP@y!L4LW=xuPsOK?T36`oPlaVCqMP;=c}9poL*?+S8-6o7Qh)r1`8ZDNwh!y-QO!r z(N~_;b&fi_d)NbYLSw?>m$M%yi5iyhP42vH;}RZpUrB_0n$me4^J{r!+pfyAYJV*@ zJLBgH-)=kuOGW$U^Lz6g-v(t_+j_|D?RL(z|I?kpWgn^i*I5I9y-QFiY7J`%?}n0@ zo##R3C)dsGFEmz?@Hu^$ygW2`=={6KSeV!hf&Ya>=~E?d@)}(N8ogN#T_|rKM)~*4 z3Zz_|`%H;K_GZd6_#bc96GjCdE~XmkL=PTA$(&>+t3e}Cg0b42ER-#|N*n8O_#YTkPp3`$|$>6sZjSAQtNn^TG< zip3lNchcA9dH%J$d~?6Dvj~)<`$K#G?(K8W(eqm$XeL1)U=2b%&$mt=?~c#E!(p*m zPChpqNtbeTbez1r{%uZqwO}uz?{g~Ub+PkfIE|xuzoNCl>a)nh#WV9PS7?Va?0mSQ z6%nD-n=L6T`!JHuHR`$EAG6Kse~ZT2b^;46{g8xLiZ6M1Qb31-d9STKSYtXg2d?gB z%>OY+85L59N6KvjF+5sqCUY4V8+Bc(X4By)n*OFyYt)Shf-?J;|6G;P{oTrw+cJ;4 zF6ahk4}UM|EBQeBE_J5F4Ubx$G+Id+in$c!O#hou5y$-9EMr zR^30N4-YdGMn+LlaWAKd&gQ7;z`96VmD@be@>)?Xqu0*b#s+@gO*n(Z+&SCXx<57o z1X5lejEs=~h>`UcWx9v~Hz|+ZM$>vUElJdC&^%k*k2~bo|7iu}2mnB20?=?a%rVC1 zcA$CGw2n#PwL`tF3E%@CAKzQwzR$#Psao0TYnjfYt0AOzhLZ(v7oCQf71VRL-m9o| zgG3(a34fOG8lPFKCKy!g1?NYQr-Sx>=cLf2OJ>%2qo+rnqVHAW+*VZ;dvW1%wc_ue z?f-ad7Gt8*r>dzbLxpV!65{QwjE(hC6KG|~h(SzRHP3hFwuIp_D1^MQ(Gj)UJRB$4 zTSp%Dy>*7o8Bo#CG9EH@I6{gdV7aeJRvl8o`w{?*B!B&T{&oet2MO=(MuJwgF#@H} z2}}?o#(dE}6s~kd2mgZkjljDRE5QqP&~q*Pm1eV3;gsJ-oHW0s`I67Ygml2J)ihp~ zfcqAxUPg;ej-M$-{J!-i0L-SYPB4_hdR-@SHb6@h66f*=V29*vg`Vf*?Kbp5{Q3hj zz<;jMq2kn|B2Pa0ApH{2t}sZsc{`o#k5eZnCwWhMo_StQYy7UWOqkNw(;LaK@7Ud4 zSafWz)KXX9BCGuRRi?#^0s6|_f&>rHeKp&?>Zg|H<_1(0g`_(D9t2rLY}s?AN7MnQ?QTJ?{->?yFw4INxgYYtYyuZzM-rL_Vsi;^!@NIB=%!pKu0LdD=J5_uR zw%TFNDAe|n3p)E5NlP+OwIYM&jMW{2u|6tr{NZflC*oXBMjinLWmT99F;R-b9oARMXJ=RI%T7yOojYebfwvq1gt583Gldlzyo}nEYV?2snX7{bET{ z*?vVrsOta&ZfJ~P`vN4L5kPyN$@t<|0POr=W_H$v###j$^s@hxuj0KTh$a=A5od09 zbnsrh!Z|V4mF>yv(E^yAE62aKEsnUL>EQQxYi_O!KKT`B4C~Vx2AfOnD=!!st!trm z+MWeK32x{IgQmci#qTN`fe_CR9h|yGBamY;d+b^d`Mb-`}88mQNHcx54*^cpT=V1z*30`9JI%lxbE6enKPkTI^C*($pNt#4G!jt?7 zIsmE|00wa!O#Rr9I;Q&XBHtaR2O9$2;OifQgOFjn; z>HN2O&MANbRbW~=0pG`K&Bp+`YCiAeI-jn$*4Wl{cY@0Rh)4V%`lCuEpWeNvk_vfY zm}^$I`+Q79(be^m`(ce4n)88Gj8yDYfmKOFA!44M&BeAL(A&T&WqPcI(+K}dfN%$C ziozQ)hD*{w5k2&ogZf$hGX3^+a2u!rl^uU00LE%OM}`79&^2@cjnc(k<+%Rl@v_pN z-T%?YxS9y0{$_q8i)`AA=05|XSQzd9Nu(J6zpyYeEUu)a0s^gB(zIZL zD=00ESX(o`)u|>2jL6dPs|CXL+$5lqrob>vP1 z)Sx8>gNf1h$Qk5ymCvmcfD12V<>YR`+JON}N*T--#NFs1)J zyU61WEtu7wg9-EibZBV#Yy)_EZI8Z=PL{qyyDe_$>5^RH@eBvf&Nrvs?kTo5=Qi1W ztL&v&7!gkJj3gLaJ^(=GvOC#3H3Npi?YV}l-~LYzw+kze(2-mGc)6XJ&*?en5hAnt z-nI!QmNqsZss?L8loUV<93COzRHwgx@gXR5{cPwR4_6CrWNG7ZU&|sLE*V7}mN$rf z*g6wSr&p$2FKc^d-kJQZ+`sMa+-5r}*=1VMTv(RC55|lHkrQD=lzly6fj8$fJ<5Cu z?YhliR=Nf6YiVI&xH*^vU8mYn{%=36m)%!LU(K+A?&N5c+L#j>s^DRkw zdwUms&PUq7JDlaJb(3&le9jup7s;mYBD=Vv6 z^C5id3iOA(eSRbg55qy>GuqH`vPTYcE|sm{c0Pz%S4<|?-fpj+c2>?M{>YB{`o5a+CnMl9QfJ0zBbVU(1X(!6>VTAlgX0IlxY0se=Cs#I#9fU3IsAnPvk_gHF)8xSE0 z^Fu>JKSxI7aj6UmXxjeneFJz|5&4t&{T5H>DgYNRIXG&yuIoBYHaPHXUUqQgJYA2V za{ImxPxs7W+iFTk<-YMPsu5{@c+`tHU$@M+CjFB6_g8V*&yJ*|7}k6*H?F+3c6#1B z;Wrl}+x0`zcHC)^Rn}B191Ag^)dC($9SY1cgq8sbRj_6cY7;=O0_D66MjFPqecJlj z)$u2NNvcmLBJUARIOGXCJ6aD{aVQ~a)FLrCLJ=F2mFdZ5e zv1pGOc^5=W2UovhM&!U$=h$oW`-*Z*s#%TC(n5w?|l)DI)dCGyR#lM74w zilWD%F^T%<=D7iPm7%Q~sUWx@6>;R}ePq$b z_KKOmN2qC8XPnDWDYf1eV{bNzrhWSQO=iFO733+qxdtO!9Gjmd9zhNYc7id3lp_d> zS&^umV}eldkHo01`Emn)2q^~sc%Y8$*hIS&`Me_UpGcF`SAX|3Rxe@wLZcYrHy9JJkV67+NxD^`JcjrsjFrACVZ>CPS49hqo!8X}!^f zA!1g{gHT+JS^>Tdtf2@qIYzF-K!aXe=;%-6-B{J($v?X2qmWB`dKQ58*zr#yK$=GWvky|Z(=>RhcEyD2bYb}n7% z%emzE$kGn;)!;Q6xW5_u6(O+L;s8r-f);4BF%ahhbeG46yYo4dn0lEUs7BRsYxei* zP|nX!7|K0b&&r~TgLx~@_r~cIF;SV5DF;JTyVGcggzR-LBU2XYN+oAe#(Q6htwbYEI!+(*wNHDB2=f#TRdW0N(Bw9 zJkZ@ld9aY&&cc-Id+AZ{O9b|6>$$jOqb$`#4|YH$TtsD{C$sk20LjT0OV9ee)a zaO~_@0LdW&AmjQk6~)c9NY<^7NECAw!ch1F#p{)wkNi+54JM#Wr$PEfz<}DGYKqI{ zS?V+bKz)$w)7h5!SLSnwsR#s{VVRVfsBoe&kl5Nhw$?7r)A+i*@%T*$j3T+@we-~& z9c^Fl2@cXuGcu_Cgm$D=_+{f%Cg6 zQ)`H4f+))NsU1Eqh!*w(q1fz5jF&a+2JRhE$Pa)yW%czbpmH2gVwv<>5)%~oOMdSE zpM!*(aCoewcO(oBO(0br-2OLG&8ivQo1m_gX$1dmnzQo}%8{#=7THbhM;hEq?-&R5 zF+@ZJrT{%-(Az?qT7#Xy;`~t^6LeV=t9i3q}VkPC?-^=|hlZE+W z!1mzb;W=C{xhLf0i~&Wn>3Z4w7Et(Lo!$=aF9Yle03E;1+qXa6gfa{#mh)-x1=dnQ z`>gV*EkF-=zbYEx|773tu!YGfPrGIS^L^P(@4MZ?uAiximgv>*x@7ud`PCmvPgns5 ztFPjkw}~!dEs1fUrS&y*kG{N#S_A8UT?cegb96G^*!%l?FnNxPA$b~0LbiR4TjlBS zXaocnYEc$`jMjW#A?^chPhq4{j)$-E(vajwh41*inyU2BI9HZXj6eFz#P5$O4Z|3% z7_d}ztAr5(`0NF|F`si;cRA^0=#X`w%GgE(V};>*U(}-8f~~5W+9^oV6ObHEORlqg z+wam|BLGTHlO=s>8>rOOWSGuiaa444h6a-u(|8?epa}zJRO|EY#X<{|)jUfxHnZBs zJ;)sj?sB(=A)!JGiyr`?4{Rv?b8f+-qs^EpuU{O+*v9E`y;d|<3K zu1HdTNiX#u0nLZlYsi*)9=LLB??xFwEfI3k zOSqt=q;5f>)9P@YxuP8T*t1V}?3-!O{S|ET^Fdg+}lo*VD&)e)!ejK&JvDFxu zp9jaMv0YN^__C2r2G*C3-V;JDt<6tPBVu-w^^rfnEFUuj_*<%bu=zXRu%>z+PLOiH zF6gMRA5s829CL&1M%D1fqb_1+?f^rta(V_0P5v1U$YD1Vq+A~DUH2)kL%8qyQZVPi zlg(8wBsV%#4|b?m13Yk(v$K`d#VWxv)oGUB97kwWIlG28ORVis0u5;x-;2$~SybH2 zp{`a79XX;R$nPPH@L7Kg4hsV&sD=dllw=(1uheaJ^pHILyZ5P->%&+v1#Gpk*OTSX z+w|P*Z!<{Qow_dZTp5hjMi>zBG?bL|g0tg-lr-L&>>B%_B9@>@|3n^qEr+d44P_6% zjFaX43E!3>pN)HcVM5A-QBG|1yaH|k&l>oq#(iegXKLHZMr-`&?r)`T1U5OUG`Jvs zONv#)vKT9-hC|Cf>&8vR0)l+;LIN4Pz5?6j(o>w`QfA3zeQF{&TzIt_>U9V02zhW& z@0A;T1D!DLwB*_9%}i$QscOWRlBu=X$#-fsp49mhzfdYvUPu7Qy3jXlY8K$$J?JUA z_`twAR%Xh@=ATQC2WdgK_?=;X9jr;T$HPw7$_kkX&{|2Pb0PvHz z_hjZL50xz>@Ak?xJN2uX18+M}`exg?870%dF-r!6=9%Qv+4Z^7Lid3KV%fXZC9p)vfHp=(EeVYYHKEX^dxcZ%Vg?P2efGi9y!rqn?vtUiP zy|maHPYxbZf9x1fL{@t9thj$n?JYa`)m&1KH(0%VpT;(_LcEV{**&E^ID33yfd|+x z>N{bpLMszIjo%Os$msdFx9%)bma4N;;l9X48aOHDDA3@ZBE6e3wv75g6x;VtKU;NnH`RyWH#HNg9F>?TiI}9%VlEGoA9}(Y)f*W0XttJbHKElGEvb zkG8@@|4Nl8hOZ>1C$+OBKCk^u+ng-0>KPO!&&O{y=@g8&) z*|Pf-?tM%1=NiWRSFf#aUxJY!7CIM{-m%w&2>tR>Io(~*Bfs?N#I1gW=RkG0BZeB^6+wacEZB$T$3ZOH zJ84~chz7+w9m?7QgUKgAF{c0xz5e9u-L0tRE!__*k7qn&fF z&vVl`r;rRfN#zfdR(9$YiOw_!2f^J&P{tQQ48vd*+1v z1jn6E!vBHo=d`pzc1tb55#@dYaCWtEZ$zT6-@~N_diNhd`@m5Vp*ziJnJZ~&y#;!> z4yM5zjFzUhydLkH^*sbgFe*~+u5ifpPZP1exOs4z*k%f!;+A&25b}i^l&nJDY@)<8-gjOk|o^;Ibr_CWCn#EE`o5R-z8~$&M$$3q3G+^0ZUSjK9>*x zVhO-66!x5f>{`8@?d=3q-Lp`U`;TDcIqH1!gH9h_mwVG@CWLP9I%@Zri$=f|3}>T z7Vb-J;|yDQnHQ1`NQG^IeV9z{;m_o!n4*lsv7}X>BctmCd#G4xi5H^eQPX@VHUk>k zKXO2FMn>eyu{qSPaR;5}!0kl?;xubJ$3NSGb1+vd$YVRpJ-toQ#Dq2~Dr)o&0QqE3 zh*9XeKrtlG6lS;iRXU>9Z&S#{z=4={p;`c2r@=nvR>FeO-!Be-rqKsTzn_(EmX#a4 z>8xni(rrY7#MR&es?;ncvGGU~$T^a_RoX<2H*-ynCJEc1!c|*MmllYOiz692+i8Sv zcB`OZ#N>t@bID6g=^ZH^{c+uHx1MTrT!{ac+&>sk7lvEL8?K(MnyrC*K0!Uf8D+t_ z2MkI^M2NyUtfo0&9E@$)cY|ZBF)&|bnV*5eml?BA1@g>)U45B?>n|S4m8}xIKGuXDL zRj&JOV&8!q=Q|rZFj1&n-F80RiGZJ)fgl9#{ykj}z_vrcZ3Au-OZlpKw6tp0dZ6_nD>n;Un0RxP*fY~; zh?Z_gYF@h&3^D;`PmV@d1Sf>8xFFxPpB7mFc+$1wfIi~1=-6Kk2G8R1ii&6`UftWX z0#2L-zo2K@**(2(Yt`_LjP_)q`%TgwI~BS1v#Q+gkF zOM;arb)QFIkE!-71Y`E5vYTkOx-kP6Q^M30V6)e*@1O#ep|&JY%t|VG(E3cx%z!cx zW7K0k^y}9z-hO2q)K3GWqgOWK{p(0W4-By@2?ubB#Z$u4uxxFL6rJk#sCCtlYG$fU z#yO!@kq4*0)jCIZ(U4uId)JHmLyiyVY)|E5`dSk$>o~z#K&LDpfSOT(|4tg}pir;S zeQRsW3<@AweSN*p{b~Qk)>gwc_NSRX#{?%HTQkRsg&DLIDKU4n82E`*T#C18-_qCP z>xprU?H!d8*1RZw7zxLyi1bj@K4jX#B+rxmx*$UpAP258WT@=`>c|4~^E${q)2?6? zUB_Ph=zUA@i9%i%e?YZE`~w_w#rgSx))mbmK(v1i>=u17l#0M(mR^8rdQ4kY@Atok<8~{`E zyA1BAyQ9_^Fv^D;vJIT9c6*-veAQc19horriC%<5M%xQRZI!_%Jw}+%_s@Ofa8P;H z_pa^GMPoVxJ3Brhn3Fq~E9OC?kR&e+V)pllBFUHx5vP2 zwJ&XW*%#+@Z&)<$`tV~$&-i!8gSwZGc zLrHR+ymoT(@Bzh4kK17>c!50>617jrI@`YqP~1`V7J`NeXc}PI%Q)Mvd@;K3Y(i=- zBm<4#Rt57OmXPWm<^wN=#s?)!t|+CTzhErh{qpMVK1X68$FZ@DBTKVovu@Mur$dga zc7=}=L3s<=ZS^(D%(ig&k6TO{qqEo(K9fYE+2_`I$y8*(6x!Urm;e7Q+ z@aNg;ya4;N=O~!&pF=e)nwAB&?fTMdnjPn#YYHdo9duXReKf6>!J}#UT|t~YFn)Pc zpZK~r(H6U!nL7F;tW%*OFjm`|)07+-DI`q#6*((z5ujWRBm{5UOY#1UI`tg&z@MJX z!*n0ZW=?8!C=(z5m(;$da&_>^v2`?~MHC0%?;*7s$xk$cyi@mz4NKa*ik9wnxTGfb9Ok^Wpe+3vSS2#-%?fP zV~b~4PuCX9#HwSzEGp((JnHmv?R26#C@D(Eu$Mh6Hae^pq3q|bE@^I<=b1B8ZKYxIRU5{ zGd3lqA6PEu7{;np;&&c5aLBLpowcNtkL0M?te5f9@e<}r@R<73f`PJ&ahX!;c7 zD^%F#B}z;EKC5Y5#^O8zbJn}D@C*GIBXIqAZY3s~aL(Y;b9~DTMMavdlzXYQD_r4w zr@fc&+U9&FaPdvk(rsXWiW^P^wRA?bS2iN@`c*E{*O-~w1~+C2ug#j4dm27sA2N)G{)bf2T2sL#K4Hfzv{5B`sU&Oe2nj)s#|b6 zB!+K`$ZRZI9{8KwE^om(h!Jq^qY0da&@nv_Kqw)&v^#}yjD&Zql@s&`M$(rHdG)Cx z301@0o@9qVy*|!q>brTn!rn^H?P&9rwKaOhZ1$a{_OlY7x3{`mwW~rMy}#Nx;jSxJteL?c1?F?rlOEVJJjG>B~uT5lW|y~xqaTu0jNjUVkcef zH{Gsg1T2PcdvQa6w9?S3xt=aXgt}ExYLiio(uE0~ur{FXIZ&|QSskx*iZnMjL#=P+ zPAh8P)F;}#-4%5}<%R(L|M%8Evjez6p~|*1R4^5ckjMcHsivluZCm_u6IN4BxOd%d z6Q45LT3x(7x`3ZF8ad3~adlNVTioM$L}XDz&!Y~n#=<18P`{o^f<^VIW`wf*m!W)G zAT|yy;yVAZ>sOjP(g2&nk3W95b@9TG?rV*1ptE=5$e+m?>MymoEk1k?&hH2hUf|0S z%@5tLvRgD8aaCv`%ZQ1KRe?b&LXsx#CE+5tB!$bBQTjh$^dh}R4hJ_XEC7@DeD;-2*xU?e4yG`3{hyOvx`o&ARh|gpTey@c;sq!? zEafPtMv)O8i%FJ}#&&ak zj$4Wkt(8zG6%m^u1d6F{Z*Q4&n__eP{{A!8l$DjKHy?-L(0V*QTnpJ6_}#t$CxR@M z18hnZnF!=?v9Lt$*`V6ZiqAO)pnw%Tm)_G!(&5Q^+7uhhIZ~1=2RLvlid1fP*UKo@ zu{4>m)Di<T-hrX8_3rBptqd%a7ID%jU^y4W zwl2A@H;0H_$0>=XofDlca`MTx%CAtPr|~Znr#UB^Rgi94>5vybYKm&(bgqmg(yMrE zrJ2()F+B$qI~Z8m!LcKjmYsa{)?<7BI~}Nt2XsawzmH>SP^0A-$mhe%^WEYcWe^15 zNL9vk|ModwGM4wy=&0NL)YO#Dp{JWJ=j=DUWUQqIpB)8f!L2R=%9hzRBl1~60^}6e zu43;s!Ndx!Bh{8`%`Q)QyCY{^b-XcGm1e8v;P(ma)alVhT4V8(BZG&2Nlf$cK=z+2 z)C6-#U;4%eW&mrHWcgqV?A;7@{ONQb`96DB*dpyZ{gD0OpcH-1udbr-A%XbIYaX#g zweRsoO*hxB4jR*u}C&T^{k{%4D;g>de%YRP$r$6k_G^tI-}sI z>V73^82C<>Vw9>*x~+ZH&Mao!s^+haIXy-l$P8&Ubwd zD3LeZ%pH_igqQkP+p%JDZ2Uv(xbzUa#QXzBTVWjbXB*Fs;@z8#ZZI-i`)>;nTu55e zwVFxf2)`s6AC*QlP!>}i7y{5|n(eWMV%NM$z`(fvau#SYr=XkKt8tguicQtMG!X_K zKv1;iONGP1VY-B@tad$<#XQU8P1+x}1Gq3h)iJXQ-f2|iI*<4rmQ>^Tm%GRnRXICxBna+%CIBtDKc1Xw8egsFtRpE^X0A0||w zb{UDdb|8FJcYWkIkNR?z-xvWW7;~g;8lTP-Ti?8B0pn^e>wr_FUBLW#&iz2gAG9BQ zmEzlvwmbt0daDDSy!POzB1&pn)xB_5JF4?dMF;DS@aGm;<7v{=R(=dqd^`MLJ^XMO zODU+i{U2L?$DJK0(-PnW1~`mXXwd1G363h2tB1X}fN8*UIpXW*_6+E6SzVT~ai5+! z`E^{Sf9I3^S$&89#`hFmeP+wA{J=)jk9_mG;gx;*6lLeP5w4IM?%)6$X7wn|T zw!Mz6*<8e9c`w?MMFs<_zJb+WE|tyCn91$B1WNhG(cS}<#GoR}cLp3;W9oi=eSf2{ zD}o}D-Zv0Up3l23J~)?aQzaEy%om$uri;i_SyMttW?9T6Txo%Le#j*$Hb)J#>IkU! zAL^pibspim*qI1|o+AN=mma}+(`TrkQu&M0gF zY6LW_`{5g$2;_IYfCzR;#6)7MI9O0PuC_HGgnK(vx~~kmVhFG;W%Ox8>Szm^C>ZTJ zwq`WLjS6)!O$+kZ{+7+j21Z_fMxJS zC4H-^*h=(fU4iNHYe|V^s1l0K2e}!nZBquhP+J^_hqD|DYKPMFR}q-@F@>kRL~8pL>OcMiAN)U>J)lzah#T7cD91B#a%05=MXg{gm(S zX3xo4+NEY=HMfEM())h3z5!BVap#EIg&7QR+y~GDx50Q{Tvj$bB@B)g`Q5A{LH*Ri zaL*dhMrz+jw;J%FS*DOC7vJQ{1zXq+eH?1ZU0myKAHTLtcBSc1Bp}{eK3O=V4-T#U zoi8O<71$KLtGx)jCOfuYJz3zyBlkj_+Z@3$y4O4vk9ENmctFKl+5BCtU~24@Fze&A zXQs>Hm|&ER&|=*NLpB-S5S@LZJNWQ;(p2U|{Lu0t9{=pw9y=tUZ_+?%5F0J5YKT^B zr+ffkL-z-uLEiw!GL*>!4oFjQLKq4{p=}LkW$oi$1;pu9_F_lcr8tMPsqN!=Ja9+sI1KBl zSt90E@-UMF?KL3-Czp;jD`&_LG1pn!+)148l!VN)eZjmc8p8hR{Yqv>S%ua}O{ppR zv2bR)_ZC}w1))~A0_UehBh9f_A9uPcfL&VsIR{4q^wbYHUdiVB*9Dx>`Z^Wb{WdH>ZvTTv`By58^^4W=<3_J^ETan z6Bjro4y=emj34)8IpvFYN(oUa?~+9Q6ghHrrZlyi@xF&QhUtjTzYUnXuJ3d7sO;WN zSPETo9%+j4jdZ#(vn0Ni);)45DT}FcQXvP$vEkMM!AKe~5sYVm)Z%d37~p1=q_d%= zFQ-Ha6`H|Hxv7eI(MUKF&{=xKtrIOjKYC*=hZI>23bKg1W$lnpR3)G~$txQrRK zQW?=WYp6v)aNM*2X+#5c{sWr}I)z|Udnk=fxEVsW^|CY9EPVyl!3J!wdIO_-uXAH$ z5;nb?|hIQ9}Q1xd0sK{OFe<~6;emT00;GhefuTT?Gm!=G_66@V4# z;V_owGwd{XLg;1Dodt`OC)&DxbbQqL%)731I+cawfT0eYg&{?-bt;ItLB*KTt=NNs z7d~HCK4^=z9Ix}W*~jtO;YW>YwxnuazIlC3*1f2PpUKP1rxZnXfC?I_6ej-;6*vP- z3q4|aMG;XYZ&9HUzSh0(v{@h0#4Y3)*{biUa?sZsmUYEVL3UIhkZOwp+avpGLKkLD zQ`jYipsI|L;gNTX;9Or$#SA^Ph%<4r4EBVDhfy9$=%~sRm8`WX*A^!{rWfaxye4;p zCcfU9C?HIXkaF$+-dK+Ne!vij6SZ@{swOxCo{(#@rE3esO)RT1Bd?$Pwy3dADgmn8 z>NTJac)Kn~=C`?=y@oB*X^wYgeL`WzrZM>=c25WLgXJ@{j{W)m@m(fw+}W8Epq(>R zx$djFF~4Y3x(&`#+hhl;R+qqz)x)QJ^YD>gBw4EuD^O_O$0rZBbkIxt#*}BIBZ{75 ziZZbX+e4P{tUv2UQ{ki;-=Tu(+oz&;>~VC$x+;Gf6jHO_lcd)KPA1V;Bt~e#?0V^1 zXgcRE#%)F82jeA8RjXyeU3tU}48xp!UGC`%NwlIbU6+!BvN!b1GQ;n0 zF5D+^i$NOfS&;D-;%y8*^h;II5D zL#xe3?(awKtpl_3mdT59xeXqX49@(%_7KU2gZF4R*C?W(nRE-fmvCo@Y)y2bQ125q%D@dZF`^hM5QZX^u7t|)5*65560(Q>ioAMAM#eJQeohdH z6D~RLO(cL1Fhl$^RrvgUl&d58s=FhX5fmrGN+#&JB;}6aX437~Z2nY1{8)hzuCX)t zfw$na)N;4`oPfDKx2j!kU4CLn2x17H*(Ar1bny=))?pvMnQst)p1@OKVT=o85p+Ygi~vQ?K;8w z8T^+c%1TNTz$BRlJUHO2%MXjMZ$9l$1n%xwYPlTYJs0}(<)yBKT2q9JKfkA?r`c9X zpA|B2bJ^Wt=+cLM8ab{PUE z)DuP!b33k=91}da5hB7Oj4p7pNGseX-eYn*9#8w?;Ea?4#yFK`$Olg)k0=@Kf3b8H zKv}I_8>U<7RJv1Aq&oxw0i}_W?(S3?38g_0BviUfMF~+FQ91;qq#Gps*FN7rbDT4C z4&%$a_Y*7b`&#KXE3Ih41Tt&db%e)B@~!p_)$v5x0xT<@+)X*z+a%t3uMR3=R%6aX zp+c6#E8Xh70R??!hjB(m){Qcn-SNm+z0|_OtW$AsWv#v<*9=Y2sckrnr%-6VhOl6N z^q^n{J4JZy2d&`#wCk@C<%xQX;Q~i`2d0Md3RCs3l!f|@>kbtaRg5IKq`YS6b{OI( zEWB$O58g`vS^_%3h^-z4N%mHWz5lZ*C;Q9H8> z=E#fLa*}eoD4D#y-s%d5M%FId%K4Wcm}M9F9&F2cRh{0~+l(eJvFLI8(%%tY(wD}0 zogf3Jrhuyd2f7{9qMK)>Wj?1l6Z(eGj2Wx-;qiX*lAimMAwZH zzl|$Alk2`WE+SPy8g3p_-tPq}#xWuV!nMaXkDpVhp_}zzko2!%*xPT3x{*KS+L-2E zQ^9{+!}mThlY*HHufU!ri(23v&BY33rC_L6!Y|)Me2MGp>oy%vjyA?e!NTU=oG;H#4z?9EG6Yr7ZL7-`sagavM?81AswfID!?sd3_VoV1aZm+HBebFalX^E_oZh7MgxB^Ns-yb~h{`xIy zxrn%~JNi7S%Gg`j`mbtro+{TP3+&H{XJ5a5wOdWu4B{w$lhk#;=1q&LO2HX=5q7ZV zdjqR-;;`gfWWIrDyA5?WUX(ncLt#d%;SUdM2@^?``w>I3n>7R($>;phYZ@o7&z?}J zjSvZ_6856`s&rnt-XV#FyBhh9ZEQK;f{Kf4{fh7;wY+-vG4hNn_4yb{h62($j(Scd@^nWZVNo)nzUB#3QP$nA+`JrJiY{D{uX3HdCS2#nGU_cFc3J!+Om;m!p(S zoMc*}GuLMCk*1(HhE23)Uaagg0qrNUCSJ`B!G7;@r&0e%^SWH_+9w{N_t5q&`=oJ5 z2brI05L@n~&66=inRVh!^z}x;fP%-R0s6bV@>H3{kI#y?VGCe*dYF(+IkD; zZ^W7p`Oo^BbtElgwS8FzJj(X=>to%vf93UTJ#%LTTSvq`2!+gER5Wp>EQD-37dOb{ zq~BEWT)9mW3y6#<8U->RBINDRA#aD3*YgE0y-fzjMzjQJI!MI0b@kr&`i~k`5wvGT zjFVmCYvK+y;ip2q#!N&>K3EgBadRWMkZ3Q4EMGsBDwgk2BbB@LFF}%sxuuRy)^e{M zlkV;q$GL{5{u*RAjda^3V=;)IHoht-2zR@a`$HQ1%HT1VGc+`W+O9N-Six>wC+?l}GAlKSrzG78 z-dgm0WhxQV8AH}bZib5ew|OnLNqFe9ZCaXJX6hPG4eJl1xxvtgIAeY0gM9(igCMzp z`tl2u6rPFLXsD294(C>vB-{zLM6_(rEr7*6q$-HWj9=9~&11@;`oYRf6fpiyQVQLmGCJ zELcV4{-AjQ=dpX;pwx1zE(ZsPT}@y{YU*xA`$Z(^$h5&-h*%;M?<~e_{UN;`eTMkv z_n>W@1oRIISCb3CkrHeMvsqy@#%~=V{!PpC2C0&~6mWRGC&9xNJo8a;2)9 z++pfm^{ClzQ4G(Mr#eN^Xo(|!UT@b_me+<)$mRI8xALFGOUG9Q+>znrD+T3uh^(=~ zxi(VLK(v(eb95H1KLLB>eGNnGoc{KnJtrOs9yq#@mN}S}W4^s$_XLA2`Ys4FJRsrs z{6cMu!teG=7UabWAe1+6{g#@RhV*Sdl|Mtg>jwN*HB`_Lzw1o`o^Qa#6oJrR(^#0M z`0){qhez%G8XV;=lde+i{{Dz4i)xDxoN8#{DC;jrD;(agB+1km^q>6<1}zb22a@yh zzy+S@nFO+%ix8oW2V4Z52(hfZoL8Ssl%VtOC=Cuqe}e62&17AS5FwNgtsk?+`ue+% z!Y)uj(2-1hsQZ%$w0;F0-VkMS5fy$Ekms3^_3^n4j%*-u48tYhWvV4+7P~6!7=+s_ zBh$%0QEyK=IXQ{(WX>-eegwXeQg)hkIn++!ml(?KmS*3Z|C+wi_;!dl1$>_3-hWbm z@NK?Fa-xqH`|2PvQv|XL_<>n~g#*Ya9aB>cs3-v3B;Ioy`j@xPc9ZoEo8$Fk%r5MBfY%fV?)q_eeLU80$$7_V)xw% z{U-qxcLd%KK4_2k7x(MSyTn+~} zx7F8V#;`Lh10IT{IQ*gCb2q9!jThf?yglXyN(D6J6G1Hks?r5$Q`o@TMT&_1FC{3U z-|_476MyJ;Oh8R2_q-jPa@N+Mw~9sw&UzU=aM={~w~E_sj@b z1OO2!^&D(W7`nPZq4FEz@<=R?kULqhvPF+faG2>T036F~)L5l#C=OXji* za58g6DE6B9;LjdA=<5PgMn9mk29S@KzdCNB2u-B06>`UX+Z8RUiQ3nIr`7*N_n>ob zdW?{_U@ltMZkU8AWME0p8lO<>ee^VKFR%PXb5~d&T47JLlNCN8`*ei`9-*hJ^~X5- z5;l~cKNdc9y!3Y>zoixUZ&w()(`A?Ruik#}{JyTwz38R5<-d~kWF4JHEiqq-e0(S> z%508%lwxIU>74xD4aAY~J0+n#ga;w70#~;$*0n-c z8aFBzpWL!RtM>S2$@a)s#8+yUKlExz1eQgi62-&-b^bsPeQ5u4R`st#TBcv!Hz#V~ zJr58wfLIz6ffG#C+nWHAFX(JJ0{}R+@Wut;@o3HS4mj)PPs0nx`~-5%!3a!zu(?|x z>M_{Fz^{7ua7Lk+9t;r2P~DGzXu1@`x| z=enUG%Ly)k=^6GBo_F>%pUsn@d4{Jof+bA;wUpfAA)(qx$&R27@3WY{B_}oBO(A!9_3mc|rLE zsVf|0m#*(uV%lf|FAS?4Q;K@=((mYx-DDdGBBfVa6wA4GBPBI9qI$r@;~Q(P*Y~?O z{ePz*0?1KKiD$4BBH--dJq`voASli|c1{pY6N1hJOpdCJ4IBL4z);8ml!o&$&BB{3 z;=6`>q}lTq#*d94xFHS~-O`w`>+F7!A(*+I=j8MOCFpcMa7TWY zjr}^tuP6yu2B|)tBEO#x^>rF8q&7rdFn(=`npu6y3-tW!Px*R7Jox;0_FbUs(JAP; ziXJ$gC@u$c~Eh_2gn1DJ-h`_IoZ zTA|b9WB-Ez(KA>Eet?I}zKN(bo;};UwYYL2;OKd?EPOgTwi!QVS+Hnwk1j866(U)E zHjd>OqUoPpY0I5n-GV~etXR3ma!Zv?4|}V4xMLoY-N#<8Gp*(!jW*Tll%KrP@AY`5 zbB9l-mmeSVkB^LS4~j+Un0^$i^aFYR*5!R`J&SQ!eU7AM^n(w9bX((tbG%fyS9Ms& zh~(^?RE$g~9ca0bI>+P|Hq_=Dm2a z)TIhYp<7VUo$#FTF>{DB;Q0a@<}0+wweH-!-J`4DvmG2L*Nyk}nM|mKcEJnziNx?X zZ!2CKE3<<(^xHQ2$ty<7G1(CjUVENt`4>ym!6!wYx(zLe);P*y7tUcpI8Pw3?nI7e z_-hF>(Yg{z)gBwKj3GhB%kkrxyVU_bvOKU|5!M_ass^B;OwVeb8h^bHk3_5OM$*6g(kB~a)YT*vw46ewoPGNihPTktsc@+V>DnX0P*E{M(0R>W zPAjZJ4l?(RgH3XH?NYV6H=g>T&5@Qffa1t+%V%IPiacLtnV7NigB9=O_tmDK`OV;J zk_AmFl}v~v;5c}oYiSLe2uM|Lm3C4xZHzgUf?r?yDrd>;o}%S>=7s#Rmk!urzB>38 z`lhVxwO4nQN$8n>7f;g=s3~6}77j?@inc`C&#svVu(4ddR8NbV7=VTF4L~2C;UaTR zEUiz40Br6iq3n<8c}>R6tZ3O7Sq53*?=d=YSn5w%=Oi8)?Hf29yba8`X%-h^>|v{> zrDfX{LwxV0c$)oai95(<1OZeyR%JE>tjR2?z}r?mi5io>#w&UgB1HHgtbwO{0H5Ij zT^9)UzkU6RwBr%ybN;`Jo;`0TdvV|G+|(!2A^BXSU&f9BzI9!N&YuOr1Hx&sW7FdS z@5UYRLGF~jdpD)^w1{cs@4}RSooS0=Tpm&Gc1@Upi~cr&L9D&cORu&fukL*c;s<)|?az^x_1i-bH-rSAOa_;{VqmJvt@8+6YD33(uA(ehtaU;43iy%IZbtzGj?&sH?%?PMy1gPshuuE;QC36zr^8Ry!^Tbh=4Si} zZipoWpESP5vb6YkdW=0Y&+c=~cEWTHn9AP}XcPekaox32r-a-OR-`p>>GH&?t%$N0 z;ktVag1zV~ zz&w_4fP&$;Bs~3BM5G{Q46STp1EFS0p2)G)yIOo{Dabt$m6d> zuw?t6;*y>s59q`*bTOrU4p)|;3j69kUA4{Y(jmI@&CkrC!B1VK|3#q&WAAnp^<;@( zN*vER60YU~OAVkph%*GCFv5oT1^vn22!XnbRO>e^`C>3YBO=^rx_}ty%Vu0$1o5?B zcpzY}%8!2?u0X3>ZT>le_o}%OA`W-Ng!}&zBqT6}cRcCq>iBu5Hq5JUQ`tq?<-3S* zXxO}o8}7fL756Lgy&)6#<%bW_D}O@(KDQZk2}d_VHJtv^^vq=*w(l}rbBr=F^DSQ{ zYOGqe8mE!pQ};_K%0Tw?1Mscw5mS~^u>HKHgt+*T+zr8FLQc0IlQi~b-yhfk`*1`{ ztdnN&8Y71_!VOx_D6B^m z0RLl|#`xmr_1K^7M~{8WO7MupQRlV^^eZF6?xquRC(n45>XgK%&3~fg7Y+UNi9RMP zN9N<%g+Nd^m2`Xfkn5}SYr^^Rb(K%lCpf0b)qCP@-F3c?EuaDJ2+JI>S(q2Duy8!-svifuRg86u+T^thSzlUQ8Am=$|p_gfx_!M`7 zBgd8y;WUJr2nZDcqviq!HZ>z7u=WlcMHW8R6A)DUnLL#*xUZv8R$niyWelV@Kd@|P ziMrAu@$!rOV8DsCMGu;`6>O}?kL{dDoam^zPhpk{Y`=G(@!NWapjOML?|+g~74jDXI&wnjW7m*P{F3A1fnyw; zDkF8aT8Qs&^#V?W4#W8gmc-X$o;iO!)kSUxZlj@A1?E+I7ILyaY&UuiG^l7qX%76` zIa0}G5Ryt?omwHrt;+VR08R1rA`1E*XxJflI3iepHJ1xX>%Bb5$umMovoCKUxeXW( zeEuXky&Wourt3xQSBLn$AO_F2zJ{7>GG`@5-9Dyl#-z~|>Q`&hQhqaAqN4J0?yX(r z>vida4_esygv$rv^8s7q+Nhqcr```_dvMmMP=(ecDTe#U<(_4dE){f_rDHF;)AuHx zRrAt^MB3ov94g~7|B(aGZ>^3I=WKPL=_kZUSodu+ESd$!AQRTO(Mm} zaN#Qz;X@odZBJL%k1-w}^iRt_v{0{UdsZnC9KH#scotrlRM1Tj)BS0RyEDL*YOLgb zFMpD;e`wl^fBG#`gTvxBd!hRE(h)ykuj35 ze|*n>X+ynP1b42R=F$fjMxF5f~{P zfG_g$2H{r8g#7^IK_$*^CcUE&f4L$~mnYQ^HUHm~UvCEVSY-HE{ zmi|`~Aewpds<*e*>LeudHq~*r^&8vLJo9KriRN?r_47^%T{ojWOlnNt`p%{k`8p?c zbv*HDHr&&K*=r!6*F>hfVMXo zxyXJF#H_Ec-+k-t3@AL^l8$MU{PcG}=1PQ5k{((HMbD;Z%HL+(of!-&CehgoSdw`k zzN&1Q!>oMIm%G!a%_BZ3Y+bte98}-BVW+`ZA+w)sooQYa$+4`& z-v|!NL`z*?d{s{NK`lIP5))gbY_Ub%ZOy>_mL8tDid*vvj!6fL`}M6epPn+iN-82; ztaTiytFp3IgCUKL2nR5uUs8khDvXfwPxDH)qaWONFA2nfT|S?afI7*k6O6B6S(^Wl zctfcEqs;dwkH*>Cw|()>3&^On9c$X3;F4%O$+a8~Hn-mAa^Vl(zJC+-xdko{ zZ}OKc+q`c=LsCP}S$#)d2cjY?6~wR_ZBozz!35<%EQDc*eiHtqgWTiS=SHVwB7<$Q zO(Tvaa=KWiuA{jck2?)A<>K^u<@~DV3;;}!MR{IrQUm5N15QYM|n=<|qf1lai` zx5y|n5HXX*Jg10Bri)1?j!CADNnRj)L5=fbAt`yC@WnRai*?cY(sSmbv)4su%ug=_ zBGTRV&X*#T>uv}6Ftmy?n6}JR-^}1q32Jr>$sAp$63DIpavapcZnCxpnL84mYZ*i4 zuJ)Eq*L|9=08*U~q+J03NhT%0%DU}r)GIAI>qQDK)xyJ)=)ibwj0CB z%S?NwrW%B&es)(BhDa1)vS2o%)Wj2`od%0Dwr@WO(jVdHP%>528NqAA0@AE$wBq=y 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

oJJ=>LT=co|K}*n5~*>t3^4i;9CADc{Y^ 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. Complete the +right-handed basis with + +.. math:: + + \hat{\mathbf{k}}_{\perp} + = \hat{\mathbf{k}}_0\times\hat{\mathbf{k}}_{\parallel}. + +The coordinate :math:`\varepsilon` describes the relative wavenumber +deviation, and :math:`\zeta_{\parallel}` and :math:`\zeta_{\perp}` describe +small angular deviations of the incident beam. + +Reciprocal-space coordinates +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Define the nominal Bragg angle and the exactly aligned scattering vector by + +.. math:: + :label: gaussian-nominal-scattering-vector + + \begin{aligned} + \theta_0 + &= \arcsin\!\left(\frac{\lvert\mathbf{G}_0\rvert}{2k}\right), \\ + \mathbf{Q} + &= 2k\sin\theta_0\left( + \cos\theta_0\,\hat{\mathbf{k}}_{\parallel} + - \sin\theta_0\,\hat{\mathbf{k}}_0 + \right) \\ + &= 2k\sin\theta_0\,\hat{\mathbf{Q}}. + \end{aligned} + +The vectors :math:`\mathbf{G}_0` and :math:`\mathbf{Q}` coincide when the +reflection is exactly aligned. For a small misalignment, their difference is +parallel, to first order, to the rocking direction + +.. math:: + + \hat{\mathbf{q}}_{\mathrm{rock}} + = \cos\theta_0\,\hat{\mathbf{k}}_0 + + \sin\theta_0\,\hat{\mathbf{k}}_{\parallel}. + +Use dimensionless rocking, strain, and rolling coordinates to write + +.. math:: + :label: gaussian-reciprocal-coordinates + + \begin{aligned} + \mathbf{q} + &= \mathbf{G}_0 + + 2k\sin\theta_0\left( + q_{\mathrm{rock}}\,\hat{\mathbf{q}}_{\mathrm{rock}} + + q_{\mathrm{strain}}\,\hat{\mathbf{Q}} + + q_{\mathrm{roll}}\,\hat{\mathbf{k}}_{\perp} + \right) \\ + &\approx \mathbf{Q} + + 2k\sin\theta_0\left( + (q_{\mathrm{rock}}-\delta q)\, + \hat{\mathbf{q}}_{\mathrm{rock}} + + q_{\mathrm{strain}}\,\hat{\mathbf{Q}} + + q_{\mathrm{roll}}\,\hat{\mathbf{k}}_{\perp} + \right), + \end{aligned} + +where + +.. math:: + :label: gaussian-rocking-offset + + \delta q + = \frac{ + (\mathbf{Q}-\mathbf{G}_0)\cdot\hat{\mathbf{q}}_{\mathrm{rock}} + }{2k\sin\theta_0}. + +This offset measures the reflection's misalignment and is equal to the +rocking angle to first order, with the sign convention above. The incident +coordinates :math:`(\varepsilon,\zeta_{\parallel},\zeta_{\perp})` and the +reciprocal-space coordinates +:math:`(q_{\mathrm{rock}},q_{\mathrm{strain}},q_{\mathrm{roll}})` separate +bandwidth, collimation, misorientation, and strain effects. + +Outgoing-beam coordinates +~~~~~~~~~~~~~~~~~~~~~~~~~ + +The nominal scattered wavevector is + +.. math:: + :label: gaussian-nominal-outgoing-wavevector + + \mathbf{k}_h + = \mathbf{k}_0+\mathbf{Q} + = k\left( + \cos(2\theta_0)\,\hat{\mathbf{k}}_0 + + \sin(2\theta_0)\,\hat{\mathbf{k}}_{\parallel} + \right). + +Define the radial direction perpendicular to :math:`\mathbf{k}_h` by + +.. math:: + + \hat{\mathbf{k}}_{\mathrm{rad}} + = \cos(2\theta_0)\,\hat{\mathbf{k}}_{\parallel} + - \sin(2\theta_0)\,\hat{\mathbf{k}}_0. + +The outgoing wavevector can then be written as + +.. math:: + :label: gaussian-outgoing-wavevector + + \mathbf{p} + = \mathbf{k}_h + + k\left( + \varepsilon'\,\hat{\mathbf{k}}_h + + \psi_{\mathrm{rad}}\,\hat{\mathbf{k}}_{\mathrm{rad}} + + \psi_{\mathrm{azim}}\,\hat{\mathbf{k}}_{\perp} + \right). + +Here :math:`\psi_{\mathrm{rad}}` and :math:`\psi_{\mathrm{azim}}` are small +transverse angular deviations from the nominal outgoing direction. + +Linearized conservation equations +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To first order, + +.. math:: + + \lvert\mathbf{k}\rvert\approx k(1+\varepsilon), + \qquad + \lvert\mathbf{p}\rvert\approx k(1+\varepsilon'). + +Energy conservation therefore sets :math:`\varepsilon'=\varepsilon`. +Momentum conservation gives :math:`\mathbf{q}=\mathbf{p}-\mathbf{k}` and, +after substitution, + +.. math:: + :label: gaussian-linearized-momentum + + \begin{aligned} + &2\sin\theta_0\Bigl[ + (q_{\mathrm{rock}}-\delta q)\, + \hat{\mathbf{q}}_{\mathrm{rock}} + + q_{\mathrm{strain}}\,\hat{\mathbf{Q}} + + q_{\mathrm{roll}}\,\hat{\mathbf{k}}_{\perp} + \Bigr] \\ + &\qquad = 2\sin\theta_0\,\varepsilon\,\hat{\mathbf{Q}} + + \psi_{\mathrm{rad}}\,\hat{\mathbf{k}}_{\mathrm{rad}} \\ + &\qquad\quad + + \psi_{\mathrm{azim}}\,\hat{\mathbf{k}}_{\perp} + - \zeta_{\parallel}\,\hat{\mathbf{k}}_{\parallel} + - \zeta_{\perp}\,\hat{\mathbf{k}}_{\perp}. + \end{aligned} + +.. note:: + + The incident-divergence terms have minus signs because the incident + wavevector is subtracted in :math:`\mathbf{q}=\mathbf{p}-\mathbf{k}`. + This corrects the corresponding signs in the original workflow. It does + not affect the monochromatic, collimated specialization below, where + both terms vanish. + +Monochromatic, collimated specialization +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The current model assumes + +.. math:: + + \varepsilon=\zeta_{\parallel}=\zeta_{\perp}=0, + \qquad q_{\mathrm{strain}}=0. + +The last condition excludes strain-distribution broadening; it does not +require the uniform subgrain strain to vanish. The conservation equation +reduces to + +.. math:: + + \begin{aligned} + &2\sin\theta_0\left[ + (q_{\mathrm{rock}}-\delta q)\, + \hat{\mathbf{q}}_{\mathrm{rock}} + + q_{\mathrm{roll}}\,\hat{\mathbf{k}}_{\perp} + \right] \\ + &\qquad + = \psi_{\mathrm{rad}}\,\hat{\mathbf{k}}_{\mathrm{rad}} + + \psi_{\mathrm{azim}}\,\hat{\mathbf{k}}_{\perp}. + \end{aligned} + +For a nondegenerate Bragg geometry, the three coordinate equations are + +.. math:: + :label: gaussian-scattering-constraints + + q_{\mathrm{rock}}=\delta q, + \qquad + \psi_{\mathrm{rad}}=0, + \qquad + \psi_{\mathrm{azim}}=2\sin\theta_0\,q_{\mathrm{roll}}. + +Thus, the scattered angular distribution samples the RSM along a line +parallel to :math:`\hat{\mathbf{k}}_{\perp}`, offset by :math:`\delta q` +from its centre. For a Gaussian RSM, this gives a one-dimensional Gaussian +angular distribution. The finite real-space extent of the illuminated +subgrain is subsequently projected onto the detector to produce a +two-dimensional spot. + +Anisotropic Gaussian orientation distributions +---------------------------------------------- + +Tangent-space approximation +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Consider a narrow orientation distribution centred on an orientation +:math:`g_0`. Approximate orientation space by its left tangent space at +:math:`g_0`, so that a small rotation vector :math:`\mathbf{r}` acts in +laboratory coordinates: + +.. math:: + :label: gaussian-tangent-rotation + + g\approx R_{\mathbf{r}}g_0 + \approx + \begin{bmatrix} + 1 & -r_z & r_y \\ + r_z & 1 & -r_x \\ + -r_y & r_x & 1 + \end{bmatrix}g_0. + +The Gaussian orientation density used in the workflow is + +.. math:: + :label: gaussian-orientation-density + + f(\mathbf{r}) + = \frac{2}{\sqrt{\pi}}\sqrt{\det\mathbf{T}}\, + \exp\!\left(-\mathbf{r}^{\mathsf{T}}\mathbf{T}\mathbf{r}\right), + +where :math:`\mathbf{T}` is a symmetric positive-definite concentration +tensor. + +.. note:: + + The prefactor above retains the workflow's normalization convention. + With ordinary Euclidean tangent-space measure, + :math:`\int f(\mathbf{r})\,\mathrm{d}^{3}\mathbf{r}=2\pi`, not one. + It should therefore not be interpreted as a unit-normalized Euclidean + probability density without rescaling. + + For an exponential of the form + :math:`\exp(-\mathbf{r}^{\mathsf{T}}\mathbf{T}\mathbf{r})`, the + corresponding normalized Gaussian has covariance + :math:`\tfrac{1}{2}\mathbf{T}^{-1}`. The implementation directly inverts + ``misorientation_tensor`` to obtain :math:`\mathbf{T}`. Consequently, + the square roots of the input tensor's eigenvalues are Gaussian width + parameters, not standard deviations. For an input eigenvalue + :math:`a^2`, the standard deviation is :math:`a/\sqrt{2}`. + The real-space Gaussian uses the same exponential convention for + ``shape_tensor``. This distinction matters because the class attribute + descriptions currently use the word "covariance" for these inputs. + +Pole density as a line integral +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +For Miller indices :math:`(h,k,\ell)`, define the unit lattice direction in +crystal coordinates by + +.. math:: + + \mathbf{h} + = \frac{ + \mathbf{B}_0[h,k,\ell]^{\mathsf{T}} + }{ + \left\lvert\mathbf{B}_0[h,k,\ell]^{\mathsf{T}}\right\rvert + }, + \qquad + \mathbf{p}=g_0\mathbf{h}. + +Here :math:`\mathbf{B}_0` is the reciprocal-lattice basis matrix. In this +section, :math:`\mathbf{p}` denotes the mean lattice direction, rather than +the outgoing wavevector used in the scattering section. It is parallel to +:math:`\mathbf{G}_0`. Let :math:`\mathbf{y}` be a unit direction in +laboratory coordinates, parallel to a sampled reciprocal-space vector +:math:`\mathbf{q}`; it is not a Cartesian coordinate-axis label. + +The pole density, also called the pair-correlation function in texture +analysis, describes the density of lattice directions along +:math:`\mathbf{y}`. Its calculation normally involves an integral over a +circle in :math:`\mathrm{SO}(3)`. Within the tangent-space approximation, +replace this by an infinite line integral, parameterized as + +.. math:: + :label: gaussian-orientation-fibre + + \mathbf{r}(\lambda) + = \frac{\mathbf{p}\times\mathbf{y}}{\mathbf{p}\cdot\mathbf{y}} + + \lambda\mathbf{p} + = \mathbf{r}_0+\lambda\mathbf{p}. + +The parameter :math:`\lambda` here is a line-integration parameter, not the +X-ray wavelength. Substitution into the Gaussian density and completion of +the square give, with +:math:`d=\mathbf{p}^{\mathsf{T}}\mathbf{T}\mathbf{p}`, + +.. math:: + :label: gaussian-pole-density-integral + + \begin{aligned} + A(\mathbf{y},\mathbf{p};f) + &= \int_{-\infty}^{\infty} + f\!\left(\mathbf{r}_0+\lambda\mathbf{p}\right) + \,\mathrm{d}\lambda \\ + &= \frac{2\sqrt{\det\mathbf{T}}} + {\sqrt{d}} + \exp\!\left[ + -\mathbf{r}_0^{\mathsf{T}}\mathbf{T}\mathbf{r}_0 + + \frac{ + (\mathbf{r}_0^{\mathsf{T}}\mathbf{T}\mathbf{p})^2 + }{d} + \right]. + \end{aligned} + +Projected concentration tensor +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +For directions close to the pole, make the further approximation +:math:`\mathbf{p}\cdot\mathbf{y}\approx1`. Define + +.. math:: + + \mathbf{M} + = \mathbf{T} + - \frac{ + \mathbf{T}\mathbf{p}\mathbf{p}^{\mathsf{T}}\mathbf{T} + }{d}. + +Let :math:`[\mathbf{p}]_{\times}` denote the cross-product matrix, +:math:`[\mathbf{p}]_{\times}\mathbf{y}=\mathbf{p}\times\mathbf{y}`. Then + +.. math:: + :label: gaussian-projected-concentration + + \mathbf{T}_{\mathbf{p}} + = [\mathbf{p}]_{\times}^{\mathsf{T}} + \mathbf{M} + [\mathbf{p}]_{\times}, + +and the pole density becomes + +.. math:: + :label: gaussian-pole-density + + A(\mathbf{y},\mathbf{p};f) + \approx \frac{2\sqrt{\det\mathbf{T}}}{\sqrt{d}}\, + \exp\!\left( + -\mathbf{y}^{\mathsf{T}}\mathbf{T}_{\mathbf{p}}\mathbf{y} + \right). + +Equivalently, using the Levi-Civita symbol :math:`\epsilon_{ijk}` and +summation over repeated indices, + +.. math:: + + [\mathbf{T}_{\mathbf{p}}]_{ij} + = p_k\,\epsilon_{lki} + \left( + T_{lm}-\frac{T_{la}p_a p_b T_{bm}}{d} + \right) + \epsilon_{mnj}\,p_n. + +This absorbs the cross products into the projected tensor and makes the +subsequent Gaussian expressions more compact. + +Reciprocal-space map +~~~~~~~~~~~~~~~~~~~~ + +The pole density is defined for unit-vector arguments. With no +strain-distribution broadening, extend it to a reciprocal-space map supported +on the local plane :math:`q_{\mathrm{strain}}=0`. + +Introduce the two-column basis matrix and coordinate vector + +.. math:: + + \mathbf{U} + = \begin{bmatrix} + \hat{\mathbf{q}}_{\mathrm{rock}} & \hat{\mathbf{k}}_{\perp} + \end{bmatrix}, + \qquad + \mathbf{u} + = \begin{bmatrix} + q_{\mathrm{rock}} \\ + q_{\mathrm{roll}} + \end{bmatrix}. + +In the dimensionless reciprocal-space coordinates defined above, the +workflow's local RSM is + +.. math:: + :label: gaussian-local-rsm + + f(\mathbf{q}) + \approx \delta(q_{\mathrm{strain}})\, + \frac{2\sqrt{\det\mathbf{T}}}{\sqrt{d}}\, + \exp\!\left[ + -\mathbf{u}^{\mathsf{T}} + \left(\mathbf{U}^{\mathsf{T}} + \mathbf{T}_{\mathbf{p}}\mathbf{U}\right) + \mathbf{u} + \right]. + +The Dirac delta expresses the absence of a distribution of lattice spacings +within the subgrain. Sampling this Gaussian at +:math:`q_{\mathrm{rock}}=\delta q`, as required by +:eq:`gaussian-scattering-constraints`, gives the scattered angular +distribution for the reflection. + +Illustrative tests +------------------ + +Comparison with a tetrahedral crystal +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The workflow compares a one-degree rotation of a single quartz crystal +shaped as a symmetric tetrahedron with a Gaussian approximation of the same +crystal. The crystal is much larger than the detector pixels, and the largest +scattering angles exceed 60 degrees, making radial spot elongation from the +projection geometry visible. + +Seven Gaussians approximate the tetrahedron: one isotropic Gaussian at its +centre and six prolate Gaussians along its edges. The Gaussian model uses a +small orientation spread. + +The comparison shows similar peak positions and shapes. The Gaussian model +also produces additional weak peaks because its rotational integration uses +a Gaussian time window, whereas the tetrahedral model uses a top-hat time +window. + +.. figure:: ../_static/single_crystal_quartz.png + :alt: Quartz diffraction patterns from tetrahedral and Gaussian models. + :align: center + :width: 100% + + Comparison of the tetrahedral crystal model with a seven-Gaussian + approximation during a one-degree sample rotation. + +High-resolution rocking curve +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +A second test resolves a rocking curve and checks the shape of the resulting +three-dimensional reciprocal-space map. The workflow figure compares the +simulated profiles with the expected contributions from grain size and +misorientation. + +.. figure:: ../_static/testing_rocking_curves.png + :alt: Reciprocal-space map and profiles from a high-resolution rocking scan. + :align: center + :width: 100% + + High-resolution rocking-curve test showing the reciprocal-space map and + the contributions of grain size and misorientation to the simulated + profiles. + +References +---------- + +.. [Kerbl2023] Kerbl, B., Kopanas, G., Leimkühler, T. and Drettakis, G. + (2023). 3D Gaussian Splatting for Real-Time Radiance Field Rendering. + *ACM Transactions on Graphics*, **42**\ (4). + `doi:10.1145/3592433 `_. + +.. [Brehm2023] Brehm, W., White, T. and Chapman, H. N. (2023). + Crystal diffraction prediction and partiality estimation using Gaussian + basis functions. *Acta Crystallographica Section A: Foundations and + Advances*, **79**, 145–162. + `doi:10.1107/S2053273323000682 + `_. + +.. [Poulsen2017] Poulsen, H. F., Jakobsen, A. C., Simons, H., Ahl, S. R., + Cook, P. K. and Detlefs, C. (2017). X-ray diffraction microscopy based on + refractive optics. *Journal of Applied Crystallography*, **50**, 1441–1456. + `doi:10.1107/S1600576717011037 + `_. diff --git a/docs/_sources/index.rst.txt b/docs/_sources/index.rst.txt index 29d8fe8..61bc367 100644 --- a/docs/_sources/index.rst.txt +++ b/docs/_sources/index.rst.txt @@ -1,7 +1,3 @@ -.. toctree:: - :maxdepth: 2 - :caption: Contents: - .. include:: ../../README.rst ====================================== @@ -50,16 +46,16 @@ motion :members: :inherited-members: -templates +gaussian_crystal_model ====================================== -.. automodule:: xrd_simulator.templates - :members: - :inherited-members: +.. automodule:: xrd_simulator.gaussian_crystal_model + :members: + :inherited-members: -laue +templates ====================================== -.. automodule:: xrd_simulator.laue +.. automodule:: xrd_simulator.templates :members: :inherited-members: diff --git a/docs/gaussian_model_theory.html b/docs/gaussian_model_theory.html new file mode 100644 index 0000000..6e2c069 --- /dev/null +++ b/docs/gaussian_model_theory.html @@ -0,0 +1,626 @@ + + + + + + + + + Gaussian model: theory and references — xrd_simulator 0.0.0 documentation + + + + + + + + + + + + + + + + + + + +

+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Gaussian model: theory and references

+

This page describes the scattering model and approximations underlying +xrd_simulator.gaussian_crystal_model. A worked example is provided in +the module documentation.

+ +
+

Gaussian subgrain representation

+

Gaussian splatting represents a three-dimensional scene using Gaussian +primitives whose projected contributions can be rendered efficiently by +rasterization [Kerbl2023]. Here, a polycrystal is represented by Gaussian +grains or subgrains, each with a Gaussian real-space density profile and a +narrow Gaussian distribution of lattice orientations. Under the approximations +below, each subgrain produces Gaussian-shaped diffraction spots on the +detector. Related Gaussian-basis methods for diffraction prediction and +partiality estimation have been demonstrated in serial crystallography +[Brehm2023].

+

Several effects can contribute to diffraction-spot broadening: grain size, +detector point-spread, incident-beam bandwidth, incident-beam angular +divergence, lattice misorientation (mosaicity), and distributions of strain. +When these effects have Gaussian profiles and their deviations are small +enough to neglect nonlinear terms, they can be combined within a Gaussian +model.

+

The model described here includes the real-space extent of the illuminated +subgrains and their mosaicity. The incident beam is monochromatic and +collimated, and each subgrain has a uniform strain tensor. A uniform strain +can shift a reflection but does not describe a distribution of lattice +spacings within that subgrain. Small sample rotations during an exposure are +approximated by additional Gaussian orientation broadening.

+
+

Note

+

The Gaussian-splat rendering path does not apply a separate detector +point-spread convolution. The gaussian_sigma and +max_gaussian_kernel_radius detector settings retained in the worked +example therefore do not add this broadening to its Gaussian spots.

+
+
+
+

Scattering theory

+
+

Scattered-beam distribution

+

Let the incident beam have a phase-space density \(p(\mathbf{k})\) +centred on \(\mathbf{k}_0\), with nominal wavenumber

+
+(1)\[k = \lvert\mathbf{k}_0\rvert = \frac{2\pi}{\lambda_0}.\]
+

For a particular reflection, let \(f(\mathbf{q})\) describe the subgrain’s +reciprocal-space map (RSM) around a reciprocal-lattice vector +\(\mathbf{G}_0\). The scattered-beam distribution is written as

+
+(2)\[I(\mathbf{p}) += \int \mathrm{d}^{3}\mathbf{k} + \int \mathrm{d}^{3}\mathbf{q}\; + p(\mathbf{k})\,f(\mathbf{q})\, + \delta\!\left(\lvert\mathbf{k}\rvert-\lvert\mathbf{p}\rvert\right) + \delta^{(3)}\!\left(\mathbf{k}+\mathbf{q}-\mathbf{p}\right).\]
+

The scalar Dirac delta enforces elastic scattering, while the +three-dimensional Dirac delta enforces momentum conservation.

+
+
+

Incident-beam coordinates

+

Following the coordinate construction used by Poulsen et al. +[Poulsen2017], write the incident wavevector as

+
+(3)\[\mathbf{k} += \mathbf{k}_0 + + k\left( + \varepsilon\,\hat{\mathbf{k}}_0 + + \zeta_{\parallel}\,\hat{\mathbf{k}}_{\parallel} + + \zeta_{\perp}\,\hat{\mathbf{k}}_{\perp} + \right).\]
+

A hat denotes a unit vector. The vector +\(\hat{\mathbf{k}}_{\parallel}\) is perpendicular to +\(\mathbf{k}_0\) and lies in the plane spanned by \(\mathbf{k}_0\) +and \(\mathbf{G}_0\). Its sign is chosen so that +\(\mathbf{G}_0\cdot\hat{\mathbf{k}}_{\parallel}>0\). Complete the +right-handed basis with

+
+\[\hat{\mathbf{k}}_{\perp} += \hat{\mathbf{k}}_0\times\hat{\mathbf{k}}_{\parallel}.\]
+

The coordinate \(\varepsilon\) describes the relative wavenumber +deviation, and \(\zeta_{\parallel}\) and \(\zeta_{\perp}\) describe +small angular deviations of the incident beam.

+
+
+

Reciprocal-space coordinates

+

Define the nominal Bragg angle and the exactly aligned scattering vector by

+
+(4)\[\begin{split}\begin{aligned} +\theta_0 +&= \arcsin\!\left(\frac{\lvert\mathbf{G}_0\rvert}{2k}\right), \\ +\mathbf{Q} +&= 2k\sin\theta_0\left( + \cos\theta_0\,\hat{\mathbf{k}}_{\parallel} + - \sin\theta_0\,\hat{\mathbf{k}}_0 + \right) \\ +&= 2k\sin\theta_0\,\hat{\mathbf{Q}}. +\end{aligned}\end{split}\]
+

The vectors \(\mathbf{G}_0\) and \(\mathbf{Q}\) coincide when the +reflection is exactly aligned. For a small misalignment, their difference is +parallel, to first order, to the rocking direction

+
+\[\hat{\mathbf{q}}_{\mathrm{rock}} += \cos\theta_0\,\hat{\mathbf{k}}_0 + + \sin\theta_0\,\hat{\mathbf{k}}_{\parallel}.\]
+

Use dimensionless rocking, strain, and rolling coordinates to write

+
+(5)\[\begin{split}\begin{aligned} +\mathbf{q} +&= \mathbf{G}_0 + + 2k\sin\theta_0\left( + q_{\mathrm{rock}}\,\hat{\mathbf{q}}_{\mathrm{rock}} + + q_{\mathrm{strain}}\,\hat{\mathbf{Q}} + + q_{\mathrm{roll}}\,\hat{\mathbf{k}}_{\perp} + \right) \\ +&\approx \mathbf{Q} + + 2k\sin\theta_0\left( + (q_{\mathrm{rock}}-\delta q)\, + \hat{\mathbf{q}}_{\mathrm{rock}} + + q_{\mathrm{strain}}\,\hat{\mathbf{Q}} + + q_{\mathrm{roll}}\,\hat{\mathbf{k}}_{\perp} + \right), +\end{aligned}\end{split}\]
+

where

+
+(6)\[\delta q += \frac{ + (\mathbf{Q}-\mathbf{G}_0)\cdot\hat{\mathbf{q}}_{\mathrm{rock}} + }{2k\sin\theta_0}.\]
+

This offset measures the reflection’s misalignment and is equal to the +rocking angle to first order, with the sign convention above. The incident +coordinates \((\varepsilon,\zeta_{\parallel},\zeta_{\perp})\) and the +reciprocal-space coordinates +\((q_{\mathrm{rock}},q_{\mathrm{strain}},q_{\mathrm{roll}})\) separate +bandwidth, collimation, misorientation, and strain effects.

+
+
+

Outgoing-beam coordinates

+

The nominal scattered wavevector is

+
+(7)\[\mathbf{k}_h += \mathbf{k}_0+\mathbf{Q} += k\left( + \cos(2\theta_0)\,\hat{\mathbf{k}}_0 + + \sin(2\theta_0)\,\hat{\mathbf{k}}_{\parallel} + \right).\]
+

Define the radial direction perpendicular to \(\mathbf{k}_h\) by

+
+\[\hat{\mathbf{k}}_{\mathrm{rad}} += \cos(2\theta_0)\,\hat{\mathbf{k}}_{\parallel} + - \sin(2\theta_0)\,\hat{\mathbf{k}}_0.\]
+

The outgoing wavevector can then be written as

+
+(8)\[\mathbf{p} += \mathbf{k}_h + + k\left( + \varepsilon'\,\hat{\mathbf{k}}_h + + \psi_{\mathrm{rad}}\,\hat{\mathbf{k}}_{\mathrm{rad}} + + \psi_{\mathrm{azim}}\,\hat{\mathbf{k}}_{\perp} + \right).\]
+

Here \(\psi_{\mathrm{rad}}\) and \(\psi_{\mathrm{azim}}\) are small +transverse angular deviations from the nominal outgoing direction.

+
+
+

Linearized conservation equations

+

To first order,

+
+\[\lvert\mathbf{k}\rvert\approx k(1+\varepsilon), +\qquad +\lvert\mathbf{p}\rvert\approx k(1+\varepsilon').\]
+

Energy conservation therefore sets \(\varepsilon'=\varepsilon\). +Momentum conservation gives \(\mathbf{q}=\mathbf{p}-\mathbf{k}\) and, +after substitution,

+
+(9)\[\begin{split}\begin{aligned} +&2\sin\theta_0\Bigl[ + (q_{\mathrm{rock}}-\delta q)\, + \hat{\mathbf{q}}_{\mathrm{rock}} + + q_{\mathrm{strain}}\,\hat{\mathbf{Q}} + + q_{\mathrm{roll}}\,\hat{\mathbf{k}}_{\perp} +\Bigr] \\ +&\qquad = 2\sin\theta_0\,\varepsilon\,\hat{\mathbf{Q}} + + \psi_{\mathrm{rad}}\,\hat{\mathbf{k}}_{\mathrm{rad}} \\ +&\qquad\quad + + \psi_{\mathrm{azim}}\,\hat{\mathbf{k}}_{\perp} + - \zeta_{\parallel}\,\hat{\mathbf{k}}_{\parallel} + - \zeta_{\perp}\,\hat{\mathbf{k}}_{\perp}. +\end{aligned}\end{split}\]
+
+

Note

+

The incident-divergence terms have minus signs because the incident +wavevector is subtracted in \(\mathbf{q}=\mathbf{p}-\mathbf{k}\). +This corrects the corresponding signs in the original workflow. It does +not affect the monochromatic, collimated specialization below, where +both terms vanish.

+
+
+
+

Monochromatic, collimated specialization

+

The current model assumes

+
+\[\varepsilon=\zeta_{\parallel}=\zeta_{\perp}=0, +\qquad q_{\mathrm{strain}}=0.\]
+

The last condition excludes strain-distribution broadening; it does not +require the uniform subgrain strain to vanish. The conservation equation +reduces to

+
+\[\begin{split}\begin{aligned} +&2\sin\theta_0\left[ + (q_{\mathrm{rock}}-\delta q)\, + \hat{\mathbf{q}}_{\mathrm{rock}} + + q_{\mathrm{roll}}\,\hat{\mathbf{k}}_{\perp} +\right] \\ +&\qquad += \psi_{\mathrm{rad}}\,\hat{\mathbf{k}}_{\mathrm{rad}} + + \psi_{\mathrm{azim}}\,\hat{\mathbf{k}}_{\perp}. +\end{aligned}\end{split}\]
+

For a nondegenerate Bragg geometry, the three coordinate equations are

+
+(10)\[q_{\mathrm{rock}}=\delta q, +\qquad +\psi_{\mathrm{rad}}=0, +\qquad +\psi_{\mathrm{azim}}=2\sin\theta_0\,q_{\mathrm{roll}}.\]
+

Thus, the scattered angular distribution samples the RSM along a line +parallel to \(\hat{\mathbf{k}}_{\perp}\), offset by \(\delta q\) +from its centre. For a Gaussian RSM, this gives a one-dimensional Gaussian +angular distribution. The finite real-space extent of the illuminated +subgrain is subsequently projected onto the detector to produce a +two-dimensional spot.

+
+
+
+

Anisotropic Gaussian orientation distributions

+
+

Tangent-space approximation

+

Consider a narrow orientation distribution centred on an orientation +\(g_0\). Approximate orientation space by its left tangent space at +\(g_0\), so that a small rotation vector \(\mathbf{r}\) acts in +laboratory coordinates:

+
+(11)\[\begin{split}g\approx R_{\mathbf{r}}g_0 +\approx +\begin{bmatrix} + 1 & -r_z & r_y \\ + r_z & 1 & -r_x \\ + -r_y & r_x & 1 +\end{bmatrix}g_0.\end{split}\]
+

The Gaussian orientation density used in the workflow is

+
+(12)\[f(\mathbf{r}) += \frac{2}{\sqrt{\pi}}\sqrt{\det\mathbf{T}}\, + \exp\!\left(-\mathbf{r}^{\mathsf{T}}\mathbf{T}\mathbf{r}\right),\]
+

where \(\mathbf{T}\) is a symmetric positive-definite concentration +tensor.

+
+

Note

+

The prefactor above retains the workflow’s normalization convention. +With ordinary Euclidean tangent-space measure, +\(\int f(\mathbf{r})\,\mathrm{d}^{3}\mathbf{r}=2\pi\), not one. +It should therefore not be interpreted as a unit-normalized Euclidean +probability density without rescaling.

+

For an exponential of the form +\(\exp(-\mathbf{r}^{\mathsf{T}}\mathbf{T}\mathbf{r})\), the +corresponding normalized Gaussian has covariance +\(\tfrac{1}{2}\mathbf{T}^{-1}\). The implementation directly inverts +misorientation_tensor to obtain \(\mathbf{T}\). Consequently, +the square roots of the input tensor’s eigenvalues are Gaussian width +parameters, not standard deviations. For an input eigenvalue +\(a^2\), the standard deviation is \(a/\sqrt{2}\). +The real-space Gaussian uses the same exponential convention for +shape_tensor. This distinction matters because the class attribute +descriptions currently use the word “covariance” for these inputs.

+
+
+
+

Pole density as a line integral

+

For Miller indices \((h,k,\ell)\), define the unit lattice direction in +crystal coordinates by

+
+\[\mathbf{h} += \frac{ + \mathbf{B}_0[h,k,\ell]^{\mathsf{T}} + }{ + \left\lvert\mathbf{B}_0[h,k,\ell]^{\mathsf{T}}\right\rvert + }, +\qquad +\mathbf{p}=g_0\mathbf{h}.\]
+

Here \(\mathbf{B}_0\) is the reciprocal-lattice basis matrix. In this +section, \(\mathbf{p}\) denotes the mean lattice direction, rather than +the outgoing wavevector used in the scattering section. It is parallel to +\(\mathbf{G}_0\). Let \(\mathbf{y}\) be a unit direction in +laboratory coordinates, parallel to a sampled reciprocal-space vector +\(\mathbf{q}\); it is not a Cartesian coordinate-axis label.

+

The pole density, also called the pair-correlation function in texture +analysis, describes the density of lattice directions along +\(\mathbf{y}\). Its calculation normally involves an integral over a +circle in \(\mathrm{SO}(3)\). Within the tangent-space approximation, +replace this by an infinite line integral, parameterized as

+
+(13)\[\mathbf{r}(\lambda) += \frac{\mathbf{p}\times\mathbf{y}}{\mathbf{p}\cdot\mathbf{y}} + + \lambda\mathbf{p} += \mathbf{r}_0+\lambda\mathbf{p}.\]
+

The parameter \(\lambda\) here is a line-integration parameter, not the +X-ray wavelength. Substitution into the Gaussian density and completion of +the square give, with +\(d=\mathbf{p}^{\mathsf{T}}\mathbf{T}\mathbf{p}\),

+
+(14)\[\begin{split}\begin{aligned} +A(\mathbf{y},\mathbf{p};f) +&= \int_{-\infty}^{\infty} + f\!\left(\mathbf{r}_0+\lambda\mathbf{p}\right) + \,\mathrm{d}\lambda \\ +&= \frac{2\sqrt{\det\mathbf{T}}} + {\sqrt{d}} + \exp\!\left[ + -\mathbf{r}_0^{\mathsf{T}}\mathbf{T}\mathbf{r}_0 + + \frac{ + (\mathbf{r}_0^{\mathsf{T}}\mathbf{T}\mathbf{p})^2 + }{d} + \right]. +\end{aligned}\end{split}\]
+
+
+

Projected concentration tensor

+

For directions close to the pole, make the further approximation +\(\mathbf{p}\cdot\mathbf{y}\approx1\). Define

+
+\[\mathbf{M} += \mathbf{T} + - \frac{ + \mathbf{T}\mathbf{p}\mathbf{p}^{\mathsf{T}}\mathbf{T} + }{d}.\]
+

Let \([\mathbf{p}]_{\times}\) denote the cross-product matrix, +\([\mathbf{p}]_{\times}\mathbf{y}=\mathbf{p}\times\mathbf{y}\). Then

+
+(15)\[\mathbf{T}_{\mathbf{p}} += [\mathbf{p}]_{\times}^{\mathsf{T}} + \mathbf{M} + [\mathbf{p}]_{\times},\]
+

and the pole density becomes

+
+(16)\[A(\mathbf{y},\mathbf{p};f) +\approx \frac{2\sqrt{\det\mathbf{T}}}{\sqrt{d}}\, + \exp\!\left( + -\mathbf{y}^{\mathsf{T}}\mathbf{T}_{\mathbf{p}}\mathbf{y} + \right).\]
+

Equivalently, using the Levi-Civita symbol \(\epsilon_{ijk}\) and +summation over repeated indices,

+
+\[[\mathbf{T}_{\mathbf{p}}]_{ij} += p_k\,\epsilon_{lki} + \left( + T_{lm}-\frac{T_{la}p_a p_b T_{bm}}{d} + \right) + \epsilon_{mnj}\,p_n.\]
+

This absorbs the cross products into the projected tensor and makes the +subsequent Gaussian expressions more compact.

+
+
+

Reciprocal-space map

+

The pole density is defined for unit-vector arguments. With no +strain-distribution broadening, extend it to a reciprocal-space map supported +on the local plane \(q_{\mathrm{strain}}=0\).

+

Introduce the two-column basis matrix and coordinate vector

+
+\[\begin{split}\mathbf{U} += \begin{bmatrix} + \hat{\mathbf{q}}_{\mathrm{rock}} & \hat{\mathbf{k}}_{\perp} + \end{bmatrix}, +\qquad +\mathbf{u} += \begin{bmatrix} + q_{\mathrm{rock}} \\ + q_{\mathrm{roll}} + \end{bmatrix}.\end{split}\]
+

In the dimensionless reciprocal-space coordinates defined above, the +workflow’s local RSM is

+
+(17)\[f(\mathbf{q}) +\approx \delta(q_{\mathrm{strain}})\, + \frac{2\sqrt{\det\mathbf{T}}}{\sqrt{d}}\, + \exp\!\left[ + -\mathbf{u}^{\mathsf{T}} + \left(\mathbf{U}^{\mathsf{T}} + \mathbf{T}_{\mathbf{p}}\mathbf{U}\right) + \mathbf{u} + \right].\]
+

The Dirac delta expresses the absence of a distribution of lattice spacings +within the subgrain. Sampling this Gaussian at +\(q_{\mathrm{rock}}=\delta q\), as required by +(10), gives the scattered angular +distribution for the reflection.

+
+
+
+

Illustrative tests

+
+

Comparison with a tetrahedral crystal

+

The workflow compares a one-degree rotation of a single quartz crystal +shaped as a symmetric tetrahedron with a Gaussian approximation of the same +crystal. The crystal is much larger than the detector pixels, and the largest +scattering angles exceed 60 degrees, making radial spot elongation from the +projection geometry visible.

+

Seven Gaussians approximate the tetrahedron: one isotropic Gaussian at its +centre and six prolate Gaussians along its edges. The Gaussian model uses a +small orientation spread.

+

The comparison shows similar peak positions and shapes. The Gaussian model +also produces additional weak peaks because its rotational integration uses +a Gaussian time window, whereas the tetrahedral model uses a top-hat time +window.

+
+Quartz diffraction patterns from tetrahedral and Gaussian models. + +
+

Comparison of the tetrahedral crystal model with a seven-Gaussian +approximation during a one-degree sample rotation.

+
+
+
+
+

High-resolution rocking curve

+

A second test resolves a rocking curve and checks the shape of the resulting +three-dimensional reciprocal-space map. The workflow figure compares the +simulated profiles with the expected contributions from grain size and +misorientation.

+
+Reciprocal-space map and profiles from a high-resolution rocking scan. + +
+

High-resolution rocking-curve test showing the reciprocal-space map and +the contributions of grain size and misorientation to the simulated +profiles.

+
+
+
+
+
+

References

+
+
+[Kerbl2023] +

Kerbl, B., Kopanas, G., Leimkühler, T. and Drettakis, G. +(2023). 3D Gaussian Splatting for Real-Time Radiance Field Rendering. +ACM Transactions on Graphics, 42(4). +doi:10.1145/3592433.

+
+
+[Brehm2023] +

Brehm, W., White, T. and Chapman, H. N. (2023). +Crystal diffraction prediction and partiality estimation using Gaussian +basis functions. Acta Crystallographica Section A: Foundations and +Advances, 79, 145–162. +doi:10.1107/S2053273323000682.

+
+
+[Poulsen2017] +

Poulsen, H. F., Jakobsen, A. C., Simons, H., Ahl, S. R., +Cook, P. K. and Detlefs, C. (2017). X-ray diffraction microscopy based on +refractive optics. Journal of Applied Crystallography, 50, 1441–1456. +doi:10.1107/S1600576717011037.

+
+
+
+
+ + +
+
+
+ +
+ +
+

© Copyright 2021, Axel Henningsson.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/docs/genindex.html b/docs/genindex.html index 38ad151..8420211 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -145,8 +145,12 @@

D

@@ -190,9 +194,15 @@

G

  • gaussian_kernel (xrd_simulator.detector.Detector attribute)
  • gaussian_sigma (xrd_simulator.detector.Detector attribute) +
  • +
  • GaussianBeam (class in xrd_simulator.beam) +
  • +
  • GaussianPolycrystal (class in xrd_simulator.gaussian_crystal_model)
    • +
    • GaussianSubgrain (class in xrd_simulator.gaussian_crystal_model) +
    • generate_mesh_from_levelset() (xrd_simulator.mesh.TetraMesh class method)
    • generate_mesh_from_vertices() (xrd_simulator.mesh.TetraMesh class method) @@ -256,6 +266,8 @@

      M

    • mesh_sample (xrd_simulator.polycrystal.Polycrystal attribute)
    • miller_indices (xrd_simulator.phase.Phase attribute) +
    • +
    • misorientation_tensor (xrd_simulator.gaussian_crystal_model.GaussianSubgrain attribute)
    • module @@ -265,7 +277,7 @@

      M

    • xrd_simulator.detector
    • -
    • xrd_simulator.laue +
    • xrd_simulator.gaussian_crystal_model
    • xrd_simulator.mesh
    • @@ -296,6 +308,8 @@

      N

      O

      @@ -315,6 +329,8 @@

      P

    • peaks_detector_intersection() (xrd_simulator.detector.Detector method)
    • Phase (class in xrd_simulator.phase) +
    • +
    • phase (xrd_simulator.gaussian_crystal_model.GaussianSubgrain attribute)
    • phases (xrd_simulator.polycrystal.Polycrystal attribute)
    • @@ -333,6 +349,8 @@

      P

    • Polycrystal (class in xrd_simulator.polycrystal)
    • polycrystal_from_odf() (in module xrd_simulator.templates) +
    • +
    • position (xrd_simulator.gaussian_crystal_model.GaussianSubgrain attribute)
    • @@ -341,17 +359,19 @@

      R

      + - - + diff --git a/docs/searchindex.js b/docs/searchindex.js index 77a7d7e..c49dbbd 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"Anaconda installation (Linux and Macos)": [[0, "anaconda-installation-linux-and-macos"]], "Anaconda installation (Windows)": [[0, "anaconda-installation-windows"]], "Citation": [[0, "citation"]], "Credits": [[0, "credits"]], "Documentation": [[0, "documentation"]], "Installation": [[0, "installation"]], "Introduction": [[0, "introduction"]], "Pip Installation": [[0, "pip-installation"]], "Simulate X-ray Diffraction from Polycrystals in 3D.": [[0, null]], "Source installation": [[0, "source-installation"]], "beam": [[0, "module-xrd_simulator.beam"]], "detector": [[0, "module-xrd_simulator.detector"]], "laue": [[0, "module-xrd_simulator.laue"]], "mesh": [[0, "module-xrd_simulator.mesh"]], "motion": [[0, "module-xrd_simulator.motion"]], "phase": [[0, "module-xrd_simulator.phase"]], "polycrystal": [[0, "module-xrd_simulator.polycrystal"]], "templates": [[0, "module-xrd_simulator.templates"]]}, "docnames": ["index"], "envversion": {"sphinx": 64, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["index.rst"], "indexentries": {"__call__() (xrd_simulator.motion.rigidbodymotion method)": [[0, "xrd_simulator.motion.RigidBodyMotion.__call__", false]], "beam (class in xrd_simulator.beam)": [[0, "xrd_simulator.beam.Beam", false]], "centroid (xrd_simulator.beam.beam attribute)": [[0, "xrd_simulator.beam.Beam.centroid", false]], "centroid (xrd_simulator.mesh.tetramesh attribute)": [[0, "xrd_simulator.mesh.TetraMesh.centroid", false]], "contains() (xrd_simulator.detector.detector method)": [[0, "xrd_simulator.detector.Detector.contains", false]], "coord (xrd_simulator.mesh.tetramesh attribute)": [[0, "xrd_simulator.mesh.TetraMesh.coord", false]], "det_corner_0 (xrd_simulator.detector.detector attribute)": [[0, "xrd_simulator.detector.Detector.det_corner_0", false]], "det_corner_1 (xrd_simulator.detector.detector attribute)": [[0, "xrd_simulator.detector.Detector.det_corner_1", false]], "det_corner_2 (xrd_simulator.detector.detector attribute)": [[0, "xrd_simulator.detector.Detector.det_corner_2", false]], "detector (class in xrd_simulator.detector)": [[0, "xrd_simulator.detector.Detector", false]], "diffract() (xrd_simulator.polycrystal.polycrystal method)": [[0, "xrd_simulator.polycrystal.Polycrystal.diffract", false]], "dof (xrd_simulator.mesh.tetramesh attribute)": [[0, "xrd_simulator.mesh.TetraMesh.dof", false]], "ecentroids (xrd_simulator.mesh.tetramesh attribute)": [[0, "xrd_simulator.mesh.TetraMesh.ecentroids", false]], "efaces (xrd_simulator.mesh.tetramesh attribute)": [[0, "xrd_simulator.mesh.TetraMesh.efaces", false]], "element_phase_map (xrd_simulator.polycrystal.polycrystal attribute)": [[0, "xrd_simulator.polycrystal.Polycrystal.element_phase_map", false]], "enod (xrd_simulator.mesh.tetramesh attribute)": [[0, "xrd_simulator.mesh.TetraMesh.enod", false]], "enormals (xrd_simulator.mesh.tetramesh attribute)": [[0, "xrd_simulator.mesh.TetraMesh.enormals", false]], "eradius (xrd_simulator.mesh.tetramesh attribute)": [[0, "xrd_simulator.mesh.TetraMesh.eradius", false]], "espherecentroids (xrd_simulator.mesh.tetramesh attribute)": [[0, "xrd_simulator.mesh.TetraMesh.espherecentroids", false]], "evolumes (xrd_simulator.mesh.tetramesh attribute)": [[0, "xrd_simulator.mesh.TetraMesh.evolumes", false]], "frames (xrd_simulator.detector.detector attribute)": [[0, "xrd_simulator.detector.Detector.frames", false]], "gaussian_kernel (xrd_simulator.detector.detector attribute)": [[0, "xrd_simulator.detector.Detector.gaussian_kernel", false]], "gaussian_sigma (xrd_simulator.detector.detector attribute)": [[0, "xrd_simulator.detector.Detector.gaussian_sigma", false]], "generate_mesh_from_levelset() (xrd_simulator.mesh.tetramesh class method)": [[0, "xrd_simulator.mesh.TetraMesh.generate_mesh_from_levelset", false]], "generate_mesh_from_vertices() (xrd_simulator.mesh.tetramesh class method)": [[0, "xrd_simulator.mesh.TetraMesh.generate_mesh_from_vertices", false]], "get_uniform_powder_sample() (in module xrd_simulator.templates)": [[0, "xrd_simulator.templates.get_uniform_powder_sample", false]], "halfspaces (xrd_simulator.beam.beam attribute)": [[0, "xrd_simulator.beam.Beam.halfspaces", false]], "inverse() (xrd_simulator.motion.rigidbodymotion method)": [[0, "xrd_simulator.motion.RigidBodyMotion.inverse", false]], "kernel_threshold (xrd_simulator.detector.detector attribute)": [[0, "xrd_simulator.detector.Detector.kernel_threshold", false]], "load() (xrd_simulator.beam.beam class method)": [[0, "xrd_simulator.beam.Beam.load", false]], "load() (xrd_simulator.detector.detector class method)": [[0, "xrd_simulator.detector.Detector.load", false]], "load() (xrd_simulator.mesh.tetramesh class method)": [[0, "xrd_simulator.mesh.TetraMesh.load", false]], "load() (xrd_simulator.motion.rigidbodymotion class method)": [[0, "xrd_simulator.motion.RigidBodyMotion.load", false]], "load() (xrd_simulator.polycrystal.polycrystal class method)": [[0, "xrd_simulator.polycrystal.Polycrystal.load", false]], "lorentz_factor (xrd_simulator.detector.detector attribute)": [[0, "xrd_simulator.detector.Detector.lorentz_factor", false]], "mesh_lab (xrd_simulator.polycrystal.polycrystal attribute)": [[0, "xrd_simulator.polycrystal.Polycrystal.mesh_lab", false]], "mesh_sample (xrd_simulator.polycrystal.polycrystal attribute)": [[0, "xrd_simulator.polycrystal.Polycrystal.mesh_sample", false]], "miller_indices (xrd_simulator.phase.phase attribute)": [[0, "xrd_simulator.phase.Phase.miller_indices", false]], "module": [[0, "module-xrd_simulator.beam", false], [0, "module-xrd_simulator.detector", false], [0, "module-xrd_simulator.laue", false], [0, "module-xrd_simulator.mesh", false], [0, "module-xrd_simulator.motion", false], [0, "module-xrd_simulator.phase", false], [0, "module-xrd_simulator.polycrystal", false], [0, "module-xrd_simulator.templates", false]], "normal (xrd_simulator.detector.detector attribute)": [[0, "xrd_simulator.detector.Detector.normal", false]], "number_of_elements (xrd_simulator.mesh.tetramesh attribute)": [[0, "xrd_simulator.mesh.TetraMesh.number_of_elements", false]], "orientation_lab (xrd_simulator.polycrystal.polycrystal attribute)": [[0, "xrd_simulator.polycrystal.Polycrystal.orientation_lab", false]], "orientation_sample (xrd_simulator.polycrystal.polycrystal attribute)": [[0, "xrd_simulator.polycrystal.Polycrystal.orientation_sample", false]], "origin (xrd_simulator.motion.rigidbodymotion attribute)": [[0, "xrd_simulator.motion.RigidBodyMotion.origin", false]], "path_to_cif_file (xrd_simulator.phase.phase attribute)": [[0, "xrd_simulator.phase.Phase.path_to_cif_file", false]], "peaks_detector_intersection() (xrd_simulator.detector.detector method)": [[0, "xrd_simulator.detector.Detector.peaks_detector_intersection", false]], "phase (class in xrd_simulator.phase)": [[0, "xrd_simulator.phase.Phase", false]], "phases (xrd_simulator.polycrystal.polycrystal attribute)": [[0, "xrd_simulator.polycrystal.Polycrystal.phases", false]], "pixel_coordinates (xrd_simulator.detector.detector attribute)": [[0, "xrd_simulator.detector.Detector.pixel_coordinates", false]], "pixel_size_y (xrd_simulator.detector.detector attribute)": [[0, "xrd_simulator.detector.Detector.pixel_size_y", false]], "pixel_size_z (xrd_simulator.detector.detector attribute)": [[0, "xrd_simulator.detector.Detector.pixel_size_z", false]], "polarization_factor (xrd_simulator.detector.detector attribute)": [[0, "xrd_simulator.detector.Detector.polarization_factor", false]], "polarization_vector (xrd_simulator.beam.beam attribute)": [[0, "xrd_simulator.beam.Beam.polarization_vector", false]], "polycrystal (class in xrd_simulator.polycrystal)": [[0, "xrd_simulator.polycrystal.Polycrystal", false]], "polycrystal_from_odf() (in module xrd_simulator.templates)": [[0, "xrd_simulator.templates.polycrystal_from_odf", false]], "render() (xrd_simulator.detector.detector method)": [[0, "xrd_simulator.detector.Detector.render", false]], "rigidbodymotion (class in xrd_simulator.motion)": [[0, "xrd_simulator.motion.RigidBodyMotion", false]], "rotate() (xrd_simulator.mesh.tetramesh method)": [[0, "xrd_simulator.mesh.TetraMesh.rotate", false]], "rotate() (xrd_simulator.motion.rigidbodymotion method)": [[0, "xrd_simulator.motion.RigidBodyMotion.rotate", false]], "rotation_angle (xrd_simulator.motion.rigidbodymotion attribute)": [[0, "xrd_simulator.motion.RigidBodyMotion.rotation_angle", false]], "rotation_axis (xrd_simulator.motion.rigidbodymotion attribute)": [[0, "xrd_simulator.motion.RigidBodyMotion.rotation_axis", false]], "s3dxrd() (in module xrd_simulator.templates)": [[0, "xrd_simulator.templates.s3dxrd", false]], "save() (xrd_simulator.beam.beam method)": [[0, "xrd_simulator.beam.Beam.save", false]], "save() (xrd_simulator.detector.detector method)": [[0, "xrd_simulator.detector.Detector.save", false]], "save() (xrd_simulator.mesh.tetramesh method)": [[0, "xrd_simulator.mesh.TetraMesh.save", false]], "save() (xrd_simulator.motion.rigidbodymotion method)": [[0, "xrd_simulator.motion.RigidBodyMotion.save", false]], "save() (xrd_simulator.polycrystal.polycrystal method)": [[0, "xrd_simulator.polycrystal.Polycrystal.save", false]], "set_beam_vertices() (xrd_simulator.beam.beam method)": [[0, "xrd_simulator.beam.Beam.set_beam_vertices", false]], "sgname (xrd_simulator.phase.phase attribute)": [[0, "xrd_simulator.phase.Phase.sgname", false]], "strain_lab (xrd_simulator.polycrystal.polycrystal attribute)": [[0, "xrd_simulator.polycrystal.Polycrystal.strain_lab", false]], "strain_sample (xrd_simulator.polycrystal.polycrystal attribute)": [[0, "xrd_simulator.polycrystal.Polycrystal.strain_sample", false]], "structure_factor (xrd_simulator.detector.detector attribute)": [[0, "xrd_simulator.detector.Detector.structure_factor", false]], "structure_factors (xrd_simulator.phase.phase attribute)": [[0, "xrd_simulator.phase.Phase.structure_factors", false]], "tetramesh (class in xrd_simulator.mesh)": [[0, "xrd_simulator.mesh.TetraMesh", false]], "transform() (xrd_simulator.polycrystal.polycrystal method)": [[0, "xrd_simulator.polycrystal.Polycrystal.transform", false]], "translate() (xrd_simulator.mesh.tetramesh method)": [[0, "xrd_simulator.mesh.TetraMesh.translate", false]], "translate() (xrd_simulator.motion.rigidbodymotion method)": [[0, "xrd_simulator.motion.RigidBodyMotion.translate", false]], "translation (xrd_simulator.motion.rigidbodymotion attribute)": [[0, "xrd_simulator.motion.RigidBodyMotion.translation", false]], "unit_cell (xrd_simulator.phase.phase attribute)": [[0, "xrd_simulator.phase.Phase.unit_cell", false]], "update() (xrd_simulator.mesh.tetramesh method)": [[0, "xrd_simulator.mesh.TetraMesh.update", false]], "vertices (xrd_simulator.beam.beam attribute)": [[0, "xrd_simulator.beam.Beam.vertices", false]], "wave_vector (xrd_simulator.beam.beam attribute)": [[0, "xrd_simulator.beam.Beam.wave_vector", false]], "wavelength (xrd_simulator.beam.beam attribute)": [[0, "xrd_simulator.beam.Beam.wavelength", false]], "xrd_simulator.beam": [[0, "module-xrd_simulator.beam", false]], "xrd_simulator.detector": [[0, "module-xrd_simulator.detector", false]], "xrd_simulator.laue": [[0, "module-xrd_simulator.laue", false]], "xrd_simulator.mesh": [[0, "module-xrd_simulator.mesh", false]], "xrd_simulator.motion": [[0, "module-xrd_simulator.motion", false]], "xrd_simulator.phase": [[0, "module-xrd_simulator.phase", false]], "xrd_simulator.polycrystal": [[0, "module-xrd_simulator.polycrystal", false]], "xrd_simulator.templates": [[0, "module-xrd_simulator.templates", false]], "ydhat (xrd_simulator.detector.detector attribute)": [[0, "xrd_simulator.detector.Detector.ydhat", false]], "ymax (xrd_simulator.detector.detector attribute)": [[0, "xrd_simulator.detector.Detector.ymax", false]], "zdhat (xrd_simulator.detector.detector attribute)": [[0, "xrd_simulator.detector.Detector.zdhat", false]], "zmax (xrd_simulator.detector.detector attribute)": [[0, "xrd_simulator.detector.Detector.zmax", false]]}, "objects": {"xrd_simulator": [[0, 0, 0, "-", "beam"], [0, 0, 0, "-", "detector"], [0, 0, 0, "-", "laue"], [0, 0, 0, "-", "mesh"], [0, 0, 0, "-", "motion"], [0, 0, 0, "-", "phase"], [0, 0, 0, "-", "polycrystal"], [0, 0, 0, "-", "templates"]], "xrd_simulator.beam": [[0, 1, 1, "", "Beam"]], "xrd_simulator.beam.Beam": [[0, 2, 1, "", "centroid"], [0, 2, 1, "", "halfspaces"], [0, 3, 1, "", "load"], [0, 2, 1, "", "polarization_vector"], [0, 3, 1, "", "save"], [0, 3, 1, "", "set_beam_vertices"], [0, 2, 1, "", "vertices"], [0, 2, 1, "", "wave_vector"], [0, 2, 1, "", "wavelength"]], "xrd_simulator.detector": [[0, 1, 1, "", "Detector"]], "xrd_simulator.detector.Detector": [[0, 3, 1, "", "contains"], [0, 2, 1, "", "det_corner_0"], [0, 2, 1, "", "det_corner_1"], [0, 2, 1, "", "det_corner_2"], [0, 2, 1, "", "frames"], [0, 2, 1, "", "gaussian_kernel"], [0, 2, 1, "", "gaussian_sigma"], [0, 2, 1, "", "kernel_threshold"], [0, 3, 1, "", "load"], [0, 2, 1, "", "lorentz_factor"], [0, 2, 1, "", "normal"], [0, 3, 1, "", "peaks_detector_intersection"], [0, 2, 1, "", "pixel_coordinates"], [0, 2, 1, "", "pixel_size_y"], [0, 2, 1, "", "pixel_size_z"], [0, 2, 1, "", "polarization_factor"], [0, 3, 1, "", "render"], [0, 3, 1, "", "save"], [0, 2, 1, "", "structure_factor"], [0, 2, 1, "", "ydhat"], [0, 2, 1, "", "ymax"], [0, 2, 1, "", "zdhat"], [0, 2, 1, "", "zmax"]], "xrd_simulator.mesh": [[0, 1, 1, "", "TetraMesh"]], "xrd_simulator.mesh.TetraMesh": [[0, 2, 1, "", "centroid"], [0, 2, 1, "", "coord"], [0, 2, 1, "", "dof"], [0, 2, 1, "", "ecentroids"], [0, 2, 1, "", "efaces"], [0, 2, 1, "", "enod"], [0, 2, 1, "", "enormals"], [0, 2, 1, "", "eradius"], [0, 2, 1, "", "espherecentroids"], [0, 2, 1, "", "evolumes"], [0, 3, 1, "", "generate_mesh_from_levelset"], [0, 3, 1, "", "generate_mesh_from_vertices"], [0, 3, 1, "", "load"], [0, 2, 1, "", "number_of_elements"], [0, 3, 1, "", "rotate"], [0, 3, 1, "", "save"], [0, 3, 1, "", "translate"], [0, 3, 1, "", "update"]], "xrd_simulator.motion": [[0, 1, 1, "", "RigidBodyMotion"]], "xrd_simulator.motion.RigidBodyMotion": [[0, 3, 1, "", "__call__"], [0, 3, 1, "", "inverse"], [0, 3, 1, "", "load"], [0, 2, 1, "", "origin"], [0, 3, 1, "", "rotate"], [0, 2, 1, "", "rotation_angle"], [0, 2, 1, "", "rotation_axis"], [0, 3, 1, "", "save"], [0, 3, 1, "", "translate"], [0, 2, 1, "", "translation"]], "xrd_simulator.phase": [[0, 1, 1, "", "Phase"]], "xrd_simulator.phase.Phase": [[0, 2, 1, "", "miller_indices"], [0, 2, 1, "", "path_to_cif_file"], [0, 2, 1, "", "sgname"], [0, 2, 1, "", "structure_factors"], [0, 2, 1, "", "unit_cell"]], "xrd_simulator.polycrystal": [[0, 1, 1, "", "Polycrystal"]], "xrd_simulator.polycrystal.Polycrystal": [[0, 3, 1, "", "diffract"], [0, 2, 1, "", "element_phase_map"], [0, 3, 1, "", "load"], [0, 2, 1, "", "mesh_lab"], [0, 2, 1, "", "mesh_sample"], [0, 2, 1, "", "orientation_lab"], [0, 2, 1, "", "orientation_sample"], [0, 2, 1, "", "phases"], [0, 3, 1, "", "save"], [0, 2, 1, "", "strain_lab"], [0, 2, 1, "", "strain_sample"], [0, 3, 1, "", "transform"]], "xrd_simulator.templates": [[0, 4, 1, "", "get_uniform_powder_sample"], [0, 4, 1, "", "polycrystal_from_odf"], [0, 4, 1, "", "s3dxrd"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "function", "Python function"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:function"}, "terms": {"": 0, "0": 0, "001": 0, "0010000000000000002": 0, "02": 0, "0440173": 0, "064": 0, "08726646259971647": 0, "1": 0, "10": 0, "100": 0, "1024": 0, "1107": 0, "1129": 0, "12": 0, "120": 0, "123": 0, "1396": 0, "142938": 0, "153": 0, "180": 0, "181": 0, "191023": 0, "1982": 0, "1e6": 0, "1\u00b3": 0, "2": 0, "200": 0, "2023": 0, "2343": 0, "2345": 0, "25": 0, "255": 0, "256": 0, "26": 0, "27": 0, "28": 0, "282": 0, "285227": 0, "28523": 0, "28706938": 0, "29": 0, "292": 0, "2d": 0, "3": 0, "38400": 0, "3dxrd": 0, "4": 0, "4189": 0, "42": 0, "421": 0, "4234": 0, "450": [], "5": 0, "50": 0, "500": 0, "5000": 0, "512": 0, "55": 0, "550": 0, "56": 0, "5707963267948966": 0, "5x5": 0, "6": 0, "75": 0, "768": 0, "769": 0, "80": 0, "90": 0, "9164": 0, "926": 0, "93fisher_distribut": 0, "95689793": 0, "A": 0, "By": 0, "For": 0, "If": 0, "In": 0, "It": 0, "The": 0, "To": 0, "__call__": 0, "__file__": 0, "_render_airy_peak": 0, "_render_gauss_peak": 0, "_render_projected_volum": 0, "_scalartype_co": 0, "about": 0, "abov": 0, "absolut": 0, "access": 0, "accur": 0, "across": 0, "activ": 0, "ad": 0, "addit": 0, "addition": 0, "advanc": 0, "after": 0, "again": 0, "against": 0, "ahead": 0, "ai": 0, "airi": 0, "align": 0, "all": 0, "allow": 0, "along": 0, "alpha": 0, "also": 0, "an": 0, "analysi": 0, "analyt": 0, "angl": 0, "angstrom": 0, "angular": 0, "ani": 0, "anoth": 0, "answer": 0, "append": 0, "appl": 0, "appli": 0, "appropri": 0, "approxim": 0, "ar": 0, "arbitrari": 0, "arbitrarili": 0, "area": 0, "around": 0, "arrai": 0, "artifacts_dir": 0, "as_matrix": 0, "assign": 0, "associ": 0, "assum": 0, "assumpt": 0, "attribut": 0, "augment": 0, "auto": 0, "automat": 0, "ax": 0, "axi": 0, "b": 0, "ball": 0, "barebon": 0, "base": 0, "basi": 0, "beam_loaded_from_disc": 0, "beam_side_length_i": 0, "beam_side_length_z": 0, "beam_vertic": 0, "been": 0, "befor": 0, "being": 0, "below": 0, "beta": 0, "better": 0, "between": 0, "bin": 0, "bodi": 0, "bool": 0, "boolean": 0, "bore": 0, "bound": 0, "bounding_height": 0, "bounding_radiu": 0, "bragg": 0, "break": 0, "build": 0, "built": 0, "builtin": 0, "bung": 0, "butterworth": 0, "c": 0, "calcul": 0, "call": 0, "callabl": 0, "can": 0, "captur": 0, "case": 0, "cd": 0, "cell": 0, "centr": 0, "centroid": 0, "chang": 0, "channel": 0, "check": 0, "cif": 0, "cite": 0, "clamp": 0, "class": 0, "classmethod": 0, "cleanli": 0, "clone": 0, "cmap": 0, "code": 0, "coeffici": 0, "col": 0, "collect": 0, "color": 0, "column": 0, "com": 0, "combin": 0, "command": 0, "complic": 0, "compon": 0, "compos": 0, "comput": 0, "computation": 0, "conda": 0, "consid": 0, "consist": 0, "constant": 0, "construct": 0, "contain": 0, "control": 0, "convex": 0, "coord": 0, "coordin": 0, "corner": 0, "correct": 0, "correspond": 0, "cp": 0, "cpu": 0, "creat": 0, "creation": 0, "cross": 0, "cryst": 0, "crystal": 0, "crystallit": 0, "crystallograph": 0, "crystalograph": 0, "cube": 0, "cubic": 0, "current": 0, "custom": 0, "cylind": 0, "d": 0, "data": 0, "def": 0, "default": 0, "defin": 0, "degre": 0, "delta": 0, "demonstr": 0, "densiti": 0, "depend": 0, "describ": 0, "descript": 0, "desir": 0, "det": 0, "det_corner_0": 0, "det_corner_1": 0, "det_corner_2": 0, "detail": 0, "detector_center_pixel_i": 0, "detector_center_pixel_z": 0, "detector_dist": 0, "detector_loaded_from_disc": 0, "determin": 0, "develop": 0, "deviat": 0, "dict": 0, "dictionari": 0, "differ": 0, "diffraction_fram": 0, "diffraction_pattern": 0, "diffraction_tim": 0, "dimens": 0, "dimension": 0, "direct": 0, "directli": 0, "dirnam": 0, "disc": 0, "discard": 0, "discret": 0, "disk": 0, "distanc": 0, "distribut": 0, "dive": 0, "divid": 0, "do": 0, "doe": 0, "dof": 0, "doi": 0, "domain": 0, "domin": 0, "dot": 0, "down": 0, "draw": 0, "drop": 0, "dtype": 0, "dure": 0, "e": 0, "e2": 0, "each": 0, "ecentroid": 0, "efac": 0, "element": 0, "element_data": 0, "element_node_map": 0, "element_phase_map": 0, "els": 0, "emit": 0, "en": 0, "enabl": 0, "end": 0, "enod": 0, "enorm": 0, "entir": 0, "equal": 0, "equat": 0, "eradiu": 0, "erron": 0, "espherecentroid": 0, "essenti": 0, "euclidean": 0, "euler": 0, "everi": 0, "evolum": 0, "exampl": 0, "exclus": 0, "execut": 0, "exist": 0, "exist_ok": 0, "exp": 0, "experi": 0, "experiment": 0, "extend": 0, "extens": 0, "exterior": 0, "extract": 0, "f": 0, "fabl": 0, "face": 0, "factor": 0, "fail": 0, "fall": 0, "fast": 0, "favorit": 0, "feedstock": 0, "feel": 0, "few": 0, "field": 0, "fig": 0, "figsiz": 0, "file": 0, "filenam": 0, "fill": 0, "filter": 0, "final": 0, "find": 0, "finit": 0, "first": 0, "fisher": 0, "fix": 0, "flag": 0, "flavour": 0, "float": 0, "follow": 0, "forg": 0, "form": 0, "format": 0, "found": 0, "four": 0, "fourier": 0, "frame": 0, "frames_to_rend": 0, "freedom": 0, "full": 0, "fun": 0, "function": 0, "g": 0, "gamma": 0, "gaussian": 0, "gaussian_kernel": 0, "gaussian_sigma": 0, "gener": 0, "generate_mesh_from_levelset": 0, "generate_mesh_from_vertic": 0, "geometri": 0, "get": 0, "get_uniform_powder_sampl": 0, "git": 0, "github": 0, "give": 0, "given": 0, "global": 0, "go": 0, "good": 0, "gradient": 0, "grai": 0, "grain": 0, "green": 0, "group": 0, "h": 0, "ha": 0, "halfspac": 0, "hall": 0, "handl": 0, "hasattr": 0, "have": 0, "hedm": 0, "height": 0, "helic": 0, "help": 0, "helper": 0, "henningsson": 0, "here": 0, "hit": 0, "hkl": 0, "hold": 0, "hood": 0, "hope": 0, "host": 0, "how": 0, "howev": 0, "http": 0, "hull": 0, "i": 0, "idea": 0, "ident": 0, "iffract": 0, "illumin": 0, "imag": 0, "imaginari": 0, "implement": 0, "import": 0, "imshow": 0, "incident_angl": 0, "index": 0, "indic": 0, "individu": 0, "infinit": 0, "inform": 0, "inherit": 0, "initi": 0, "input": 0, "instanc": 0, "instanti": 0, "instrument": 0, "int": 0, "integ": 0, "integr": 0, "intend": 0, "intens": 0, "intensity_factor": 0, "interact": 0, "interest": 0, "interior": 0, "intern": 0, "intersect": 0, "interv": 0, "invalid": 0, "invers": 0, "its": 0, "iv": 0, "j": 0, "join": 0, "journal": 0, "justif": 0, "k": 0, "k_out": 0, "kappa": 0, "kei": 0, "kernel": 0, "kernel_threshold": 0, "l": 0, "lab": 0, "laboratori": 0, "lagrang": 0, "lambda": 0, "larger": 0, "last": 0, "later": 0, "lattic": 0, "least": 0, "len": 0, "length": 0, "less": 0, "let": 0, "level": 0, "level_set": 0, "like": 0, "likewis": 0, "linalg": 0, "line": 0, "linear": 0, "linearli": 0, "link": 0, "list": 0, "load": 0, "locat": 0, "london": 0, "longer": 0, "look": 0, "lorentz": 0, "lorentz_factor": 0, "love": 0, "macro": 0, "macro_grain_limit": 0, "mai": 0, "mainli": 0, "make": 0, "makedir": 0, "malici": 0, "mani": 0, "map": 0, "march": 0, "materi": 0, "matplotlib": 0, "matric": 0, "max_bin": 0, "max_bragg_angl": 0, "max_cell_circumradiu": 0, "max_gaussian_kernel_radiu": 0, "maximum": 0, "maximum_sampling_bin_seper": 0, "mean": 0, "meant": 0, "measur": 0, "medium": 0, "mesh_lab": 0, "mesh_loaded_from_disc": 0, "mesh_sampl": 0, "meshio": 0, "meshpi": 0, "messag": 0, "metadata": 0, "method": 0, "micro": 0, "micro_grain_limit": 0, "micron": 0, "microstructur": 0, "miller": 0, "miller_indic": 0, "min_bragg_angl": 0, "minim": 0, "minimum": 0, "mise": 0, "miss": 0, "model": 0, "modifi": 0, "modul": 0, "monochromat": 0, "more": 0, "morphologi": 0, "motion_loaded_from_disc": 0, "motiv": 0, "move": 0, "mu": 0, "multi": 0, "must": 0, "mutual": 0, "my_detector": 0, "my_mesh": 0, "my_mot": 0, "my_polycryst": 0, "my_xray_beam": 0, "n": 0, "n_elm": 0, "n_face": 0, "n_node": 0, "n_pixel": 0, "n_y": 0, "n_z": 0, "name": 0, "nano": 0, "natur": 0, "ndarrai": 0, "need": 0, "neg": 0, "neither": 0, "never": 0, "new": 0, "next": 0, "nodal": 0, "nodal_coordin": 0, "node": 0, "non": 0, "none": 0, "norm": 0, "normal": 0, "note": 0, "now": 0, "np": 0, "number": 0, "number_of_cryst": 0, "number_of_detector_pixels_i": 0, "number_of_detector_pixels_z": 0, "number_of_el": 0, "number_of_grain": 0, "numpi": 0, "o": 0, "object": 0, "odf": 0, "onc": 0, "one": 0, "onli": 0, "onto": 0, "optim": 0, "option": 0, "order": 0, "org": 0, "orient": 0, "orientation_density_funct": 0, "orientation_lab": 0, "orientation_sampl": 0, "origin": 0, "orthogon": 0, "ourselv": 0, "out": 0, "output": 0, "outsid": 0, "outward": 0, "over": 0, "overlai": 0, "p": 0, "p3221": 0, "packag": 0, "paper": 0, "paramet": 0, "parametr": 0, "paraview": 0, "part": 0, "pass": 0, "path": 0, "path_to_cif_fil": 0, "pattern": 0, "pc": 0, "peak": 0, "peaks_detector_intersect": 0, "peaks_dict": 0, "per": 0, "perform": 0, "physic": 0, "pi": 0, "pickl": 0, "pixel": 0, "pixel_coordin": 0, "pixel_s": 0, "pixel_side_length_i": 0, "pixel_side_length_z": 0, "pixel_size_i": 0, "pixel_size_z": 0, "plane": 0, "platform": 0, "plt": 0, "point": 0, "pointcloud": 0, "polar": 0, "polarization_factor": 0, "polarization_vector": 0, "polycrystal_from_odf": 0, "polycrystallin": 0, "polyhedra": 0, "polyhedron": 0, "posit": 0, "possibl": 0, "powder": 0, "pre": 0, "prefer": 0, "prescrib": 0, "present": 0, "previou": 0, "primit": 0, "print": 0, "probabl": 0, "process": 0, "produc": 0, "product": 0, "profil": 0, "program": 0, "progress": 0, "project": 0, "propag": 0, "properti": 0, "provid": 0, "py": 0, "pygalmesh": 0, "pyplot": 0, "python": 0, "q": 0, "quantiti": 0, "quartz": 0, "quaternion": 0, "question": 0, "quickli": 0, "r": 0, "radian": 0, "radii": 0, "radiu": 0, "rais": 0, "rand": 0, "random": 0, "randomli": 0, "rang": 0, "read": 0, "readabl": 0, "real": 0, "receiv": 0, "rectangular": 0, "refer": 0, "reflect": 0, "regim": 0, "relat": 0, "releas": 0, "render": 0, "render_dtyp": 0, "repo": 0, "repres": 0, "represent": 0, "requir": 0, "research": 0, "respect": 0, "respons": 0, "result": 0, "return": 0, "revers": 0, "rigid": 0, "rigid_body_mot": 0, "rigidbodymot": 0, "rock": 0, "rotat": 0, "rotation_angl": 0, "rotation_axi": 0, "rotation_step": 0, "row": 0, "s1600576722011001": 0, "s3dxrd": 0, "same": 0, "sampl": 0, "sample_bounding_cylinder_height": 0, "sample_bounding_cylinder_radiu": 0, "sample_bounding_radiu": 0, "save": 0, "save_mesh_as_xdmf": 0, "scalar": 0, "scan": 0, "scatter": 0, "scattering_unit": 0, "scatteringunit": 0, "scenario": 0, "scienc": 0, "scikit": 0, "scipi": 0, "script": 0, "secur": 0, "see": 0, "select": 0, "self": 0, "separ": 0, "sequenc": 0, "set": 0, "set_beam_vertic": 0, "setup": 0, "sever": 0, "sgname": 0, "shape": 0, "should": 0, "show": 0, "side": 0, "signal": 0, "simpli": 0, "singl": 0, "sio2": 0, "size": 0, "skimag": 0, "slower": 0, "smaller": 0, "so3": 0, "softwar": 0, "solid": 0, "solv": 0, "some": 0, "someth": 0, "space": 0, "spatial": 0, "special": 0, "specifi": 0, "sphere": 0, "spheric": 0, "split": 0, "spot": 0, "spread": 0, "sqrt": 0, "squar": 0, "standard": 0, "start": 0, "step": 0, "steplength": 0, "str": 0, "strain": 0, "strain_lab": 0, "strain_sampl": 0, "strain_tensor": 0, "strength": 0, "structur": 0, "structure_factor": 0, "sub": 0, "subplot": 0, "suitabl": 0, "support": 0, "surfac": 0, "system": 0, "t": 0, "tail": 0, "take": 0, "target": 0, "tensor": 0, "test_artifact": 0, "tetgen": 0, "tetra": 0, "tetrahedr": 0, "tetramesh": 0, "textur": 0, "than": 0, "thi": 0, "thing": 0, "those": 0, "three": 0, "threshold": 0, "through": 0, "time": 0, "topologi": 0, "torch": 0, "toward": 0, "transform": 0, "transformed_point": 0, "translat": 0, "translation_vector": 0, "true": 0, "truncat": 0, "tupl": 0, "two": 0, "type": 0, "u": 0, "unauthent": 0, "under": 0, "undergo": 0, "uniform": 0, "uniformli": 0, "uniqu": 0, "unit": 0, "unit_cel": 0, "unpickl": 0, "until": 0, "untrust": 0, "updat": 0, "upper": 0, "us": 0, "usag": 0, "use_lorentz": 0, "use_polar": 0, "use_structure_factor": 0, "user": 0, "util": 0, "valu": 0, "valueerror": 0, "vari": 0, "variabl": 0, "variou": 0, "vector": 0, "verbos": 0, "vertic": 0, "via": 0, "viewer": 0, "visibl": 0, "visual": 0, "vmax": 0, "volum": 0, "von": 0, "von_mis": 0, "wa": 0, "wai": 0, "warn": 0, "wave_vector": 0, "wavelength": 0, "wavevector": 0, "we": 0, "well": 0, "were": 0, "when": 0, "where": 0, "whether": 0, "which": 0, "while": 0, "why": 0, "wide": 0, "width": 0, "wiki": 0, "wikipedia": 0, "within": 0, "without": 0, "work": 0, "worri": 0, "would": 0, "wrapper": 0, "www": 0, "xdmf": 0, "xfab": 0, "xrai": 0, "xray_propagation_direct": 0, "xrd": 0, "xrd_simul": 0, "y": 0, "yd": 0, "ydhat": 0, "ymax": 0, "you": 0, "your": 0, "z": 0, "zd": 0, "zdhat": 0, "zero": 0, "zmax": 0, "\u00b5m": 0}, "titles": ["Simulate X-ray Diffraction from Polycrystals in 3D."], "titleterms": {"3d": 0, "anaconda": 0, "beam": 0, "citat": 0, "credit": 0, "detector": 0, "diffract": 0, "document": 0, "from": 0, "instal": 0, "introduct": 0, "laue": 0, "linux": 0, "maco": 0, "mesh": 0, "motion": 0, "phase": 0, "pip": 0, "polycryst": 0, "rai": 0, "simul": 0, "sourc": 0, "templat": 0, "window": 0, "x": 0}}) \ No newline at end of file +Search.setIndex({"alltitles": {"Anaconda installation (Linux and Macos)": [[1, "anaconda-installation-linux-and-macos"]], "Anaconda installation (Windows)": [[1, "anaconda-installation-windows"]], "Anisotropic Gaussian orientation distributions": [[0, "anisotropic-gaussian-orientation-distributions"]], "Citation": [[1, "citation"]], "Comparison with a tetrahedral crystal": [[0, "comparison-with-a-tetrahedral-crystal"]], "Credits": [[1, "credits"]], "Documentation": [[1, "documentation"]], "Gaussian model: theory and references": [[0, null]], "Gaussian subgrain representation": [[0, "gaussian-subgrain-representation"]], "High-resolution rocking curve": [[0, "high-resolution-rocking-curve"]], "Illustrative tests": [[0, "illustrative-tests"]], "Incident-beam coordinates": [[0, "incident-beam-coordinates"]], "Installation": [[1, "installation"]], "Introduction": [[1, "introduction"]], "Linearized conservation equations": [[0, "linearized-conservation-equations"]], "Monochromatic, collimated specialization": [[0, "monochromatic-collimated-specialization"]], "On this page": [[0, "on-this-page"]], "Outgoing-beam coordinates": [[0, "outgoing-beam-coordinates"]], "Pip Installation": [[1, "pip-installation"]], "Pole density as a line integral": [[0, "pole-density-as-a-line-integral"]], "Projected concentration tensor": [[0, "projected-concentration-tensor"]], "Reciprocal-space coordinates": [[0, "reciprocal-space-coordinates"]], "Reciprocal-space map": [[0, "reciprocal-space-map"]], "References": [[0, "references"]], "Scattered-beam distribution": [[0, "scattered-beam-distribution"]], "Scattering theory": [[0, "scattering-theory"]], "Simulate X-ray Diffraction from Polycrystals in 3D.": [[1, null]], "Source installation": [[1, "source-installation"]], "Tangent-space approximation": [[0, "tangent-space-approximation"]], "beam": [[1, "module-xrd_simulator.beam"]], "detector": [[1, "module-xrd_simulator.detector"]], "gaussian_crystal_model": [[1, "module-xrd_simulator.gaussian_crystal_model"]], "mesh": [[1, "module-xrd_simulator.mesh"]], "motion": [[1, "module-xrd_simulator.motion"]], "phase": [[1, "module-xrd_simulator.phase"]], "polycrystal": [[1, "module-xrd_simulator.polycrystal"]], "templates": [[1, "module-xrd_simulator.templates"]]}, "docnames": ["gaussian_model_theory", "index"], "envversion": {"sphinx": 64, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["gaussian_model_theory.rst", "index.rst"], "indexentries": {"__call__() (xrd_simulator.motion.rigidbodymotion method)": [[1, "xrd_simulator.motion.RigidBodyMotion.__call__", false]], "beam (class in xrd_simulator.beam)": [[1, "xrd_simulator.beam.Beam", false]], "centroid (xrd_simulator.beam.beam attribute)": [[1, "xrd_simulator.beam.Beam.centroid", false]], "centroid (xrd_simulator.mesh.tetramesh attribute)": [[1, "xrd_simulator.mesh.TetraMesh.centroid", false]], "contains() (xrd_simulator.detector.detector method)": [[1, "xrd_simulator.detector.Detector.contains", false]], "coord (xrd_simulator.mesh.tetramesh attribute)": [[1, "xrd_simulator.mesh.TetraMesh.coord", false]], "det_corner_0 (xrd_simulator.detector.detector attribute)": [[1, "xrd_simulator.detector.Detector.det_corner_0", false]], "det_corner_1 (xrd_simulator.detector.detector attribute)": [[1, "xrd_simulator.detector.Detector.det_corner_1", false]], "det_corner_2 (xrd_simulator.detector.detector attribute)": [[1, "xrd_simulator.detector.Detector.det_corner_2", false]], "detector (class in xrd_simulator.detector)": [[1, "xrd_simulator.detector.Detector", false]], "diffract() (xrd_simulator.gaussian_crystal_model.gaussianpolycrystal method)": [[1, "xrd_simulator.gaussian_crystal_model.GaussianPolycrystal.diffract", false]], "diffract() (xrd_simulator.polycrystal.polycrystal method)": [[1, "xrd_simulator.polycrystal.Polycrystal.diffract", false]], "dof (xrd_simulator.mesh.tetramesh attribute)": [[1, "xrd_simulator.mesh.TetraMesh.dof", false]], "ecentroids (xrd_simulator.mesh.tetramesh attribute)": [[1, "xrd_simulator.mesh.TetraMesh.ecentroids", false]], "efaces (xrd_simulator.mesh.tetramesh attribute)": [[1, "xrd_simulator.mesh.TetraMesh.efaces", false]], "element_phase_map (xrd_simulator.polycrystal.polycrystal attribute)": [[1, "xrd_simulator.polycrystal.Polycrystal.element_phase_map", false]], "enod (xrd_simulator.mesh.tetramesh attribute)": [[1, "xrd_simulator.mesh.TetraMesh.enod", false]], "enormals (xrd_simulator.mesh.tetramesh attribute)": [[1, "xrd_simulator.mesh.TetraMesh.enormals", false]], "eradius (xrd_simulator.mesh.tetramesh attribute)": [[1, "xrd_simulator.mesh.TetraMesh.eradius", false]], "espherecentroids (xrd_simulator.mesh.tetramesh attribute)": [[1, "xrd_simulator.mesh.TetraMesh.espherecentroids", false]], "evolumes (xrd_simulator.mesh.tetramesh attribute)": [[1, "xrd_simulator.mesh.TetraMesh.evolumes", false]], "frames (xrd_simulator.detector.detector attribute)": [[1, "xrd_simulator.detector.Detector.frames", false]], "gaussian_kernel (xrd_simulator.detector.detector attribute)": [[1, "xrd_simulator.detector.Detector.gaussian_kernel", false]], "gaussian_sigma (xrd_simulator.detector.detector attribute)": [[1, "xrd_simulator.detector.Detector.gaussian_sigma", false]], "gaussianbeam (class in xrd_simulator.beam)": [[1, "xrd_simulator.beam.GaussianBeam", false]], "gaussianpolycrystal (class in xrd_simulator.gaussian_crystal_model)": [[1, "xrd_simulator.gaussian_crystal_model.GaussianPolycrystal", false]], "gaussiansubgrain (class in xrd_simulator.gaussian_crystal_model)": [[1, "xrd_simulator.gaussian_crystal_model.GaussianSubgrain", false]], "generate_mesh_from_levelset() (xrd_simulator.mesh.tetramesh class method)": [[1, "xrd_simulator.mesh.TetraMesh.generate_mesh_from_levelset", false]], "generate_mesh_from_vertices() (xrd_simulator.mesh.tetramesh class method)": [[1, "xrd_simulator.mesh.TetraMesh.generate_mesh_from_vertices", false]], "get_uniform_powder_sample() (in module xrd_simulator.templates)": [[1, "xrd_simulator.templates.get_uniform_powder_sample", false]], "halfspaces (xrd_simulator.beam.beam attribute)": [[1, "xrd_simulator.beam.Beam.halfspaces", false]], "inverse() (xrd_simulator.motion.rigidbodymotion method)": [[1, "xrd_simulator.motion.RigidBodyMotion.inverse", false]], "kernel_threshold (xrd_simulator.detector.detector attribute)": [[1, "xrd_simulator.detector.Detector.kernel_threshold", false]], "load() (xrd_simulator.beam.beam class method)": [[1, "xrd_simulator.beam.Beam.load", false]], "load() (xrd_simulator.detector.detector class method)": [[1, "xrd_simulator.detector.Detector.load", false]], "load() (xrd_simulator.mesh.tetramesh class method)": [[1, "xrd_simulator.mesh.TetraMesh.load", false]], "load() (xrd_simulator.motion.rigidbodymotion class method)": [[1, "xrd_simulator.motion.RigidBodyMotion.load", false]], "load() (xrd_simulator.polycrystal.polycrystal class method)": [[1, "xrd_simulator.polycrystal.Polycrystal.load", false]], "lorentz_factor (xrd_simulator.detector.detector attribute)": [[1, "xrd_simulator.detector.Detector.lorentz_factor", false]], "mesh_lab (xrd_simulator.polycrystal.polycrystal attribute)": [[1, "xrd_simulator.polycrystal.Polycrystal.mesh_lab", false]], "mesh_sample (xrd_simulator.polycrystal.polycrystal attribute)": [[1, "xrd_simulator.polycrystal.Polycrystal.mesh_sample", false]], "miller_indices (xrd_simulator.phase.phase attribute)": [[1, "xrd_simulator.phase.Phase.miller_indices", false]], "misorientation_tensor (xrd_simulator.gaussian_crystal_model.gaussiansubgrain attribute)": [[1, "xrd_simulator.gaussian_crystal_model.GaussianSubgrain.misorientation_tensor", false]], "module": [[1, "module-xrd_simulator.beam", false], [1, "module-xrd_simulator.detector", false], [1, "module-xrd_simulator.gaussian_crystal_model", false], [1, "module-xrd_simulator.mesh", false], [1, "module-xrd_simulator.motion", false], [1, "module-xrd_simulator.phase", false], [1, "module-xrd_simulator.polycrystal", false], [1, "module-xrd_simulator.templates", false]], "normal (xrd_simulator.detector.detector attribute)": [[1, "xrd_simulator.detector.Detector.normal", false]], "number_of_elements (xrd_simulator.mesh.tetramesh attribute)": [[1, "xrd_simulator.mesh.TetraMesh.number_of_elements", false]], "orientation (xrd_simulator.gaussian_crystal_model.gaussiansubgrain attribute)": [[1, "xrd_simulator.gaussian_crystal_model.GaussianSubgrain.orientation", false]], "orientation_lab (xrd_simulator.polycrystal.polycrystal attribute)": [[1, "xrd_simulator.polycrystal.Polycrystal.orientation_lab", false]], "orientation_sample (xrd_simulator.polycrystal.polycrystal attribute)": [[1, "xrd_simulator.polycrystal.Polycrystal.orientation_sample", false]], "origin (xrd_simulator.motion.rigidbodymotion attribute)": [[1, "xrd_simulator.motion.RigidBodyMotion.origin", false]], "path_to_cif_file (xrd_simulator.phase.phase attribute)": [[1, "xrd_simulator.phase.Phase.path_to_cif_file", false]], "peaks_detector_intersection() (xrd_simulator.detector.detector method)": [[1, "xrd_simulator.detector.Detector.peaks_detector_intersection", false]], "phase (class in xrd_simulator.phase)": [[1, "xrd_simulator.phase.Phase", false]], "phase (xrd_simulator.gaussian_crystal_model.gaussiansubgrain attribute)": [[1, "xrd_simulator.gaussian_crystal_model.GaussianSubgrain.phase", false]], "phases (xrd_simulator.polycrystal.polycrystal attribute)": [[1, "xrd_simulator.polycrystal.Polycrystal.phases", false]], "pixel_coordinates (xrd_simulator.detector.detector attribute)": [[1, "xrd_simulator.detector.Detector.pixel_coordinates", false]], "pixel_size_y (xrd_simulator.detector.detector attribute)": [[1, "xrd_simulator.detector.Detector.pixel_size_y", false]], "pixel_size_z (xrd_simulator.detector.detector attribute)": [[1, "xrd_simulator.detector.Detector.pixel_size_z", false]], "polarization_factor (xrd_simulator.detector.detector attribute)": [[1, "xrd_simulator.detector.Detector.polarization_factor", false]], "polarization_vector (xrd_simulator.beam.beam attribute)": [[1, "xrd_simulator.beam.Beam.polarization_vector", false]], "polycrystal (class in xrd_simulator.polycrystal)": [[1, "xrd_simulator.polycrystal.Polycrystal", false]], "polycrystal_from_odf() (in module xrd_simulator.templates)": [[1, "xrd_simulator.templates.polycrystal_from_odf", false]], "position (xrd_simulator.gaussian_crystal_model.gaussiansubgrain attribute)": [[1, "xrd_simulator.gaussian_crystal_model.GaussianSubgrain.position", false]], "render() (xrd_simulator.detector.detector method)": [[1, "xrd_simulator.detector.Detector.render", false]], "render_gaussian_splats() (xrd_simulator.detector.detector method)": [[1, "xrd_simulator.detector.Detector.render_gaussian_splats", false]], "rigidbodymotion (class in xrd_simulator.motion)": [[1, "xrd_simulator.motion.RigidBodyMotion", false]], "rotate() (xrd_simulator.mesh.tetramesh method)": [[1, "xrd_simulator.mesh.TetraMesh.rotate", false]], "rotate() (xrd_simulator.motion.rigidbodymotion method)": [[1, "xrd_simulator.motion.RigidBodyMotion.rotate", false]], "rotation_angle (xrd_simulator.motion.rigidbodymotion attribute)": [[1, "xrd_simulator.motion.RigidBodyMotion.rotation_angle", false]], "rotation_axis (xrd_simulator.motion.rigidbodymotion attribute)": [[1, "xrd_simulator.motion.RigidBodyMotion.rotation_axis", false]], "s3dxrd() (in module xrd_simulator.templates)": [[1, "xrd_simulator.templates.s3dxrd", false]], "save() (xrd_simulator.beam.beam method)": [[1, "xrd_simulator.beam.Beam.save", false]], "save() (xrd_simulator.detector.detector method)": [[1, "xrd_simulator.detector.Detector.save", false]], "save() (xrd_simulator.mesh.tetramesh method)": [[1, "xrd_simulator.mesh.TetraMesh.save", false]], "save() (xrd_simulator.motion.rigidbodymotion method)": [[1, "xrd_simulator.motion.RigidBodyMotion.save", false]], "save() (xrd_simulator.polycrystal.polycrystal method)": [[1, "xrd_simulator.polycrystal.Polycrystal.save", false]], "set_beam_vertices() (xrd_simulator.beam.beam method)": [[1, "xrd_simulator.beam.Beam.set_beam_vertices", false]], "sgname (xrd_simulator.phase.phase attribute)": [[1, "xrd_simulator.phase.Phase.sgname", false]], "shape_tensor (xrd_simulator.gaussian_crystal_model.gaussiansubgrain attribute)": [[1, "xrd_simulator.gaussian_crystal_model.GaussianSubgrain.shape_tensor", false]], "splat_grainshapes() (xrd_simulator.gaussian_crystal_model.gaussianpolycrystal method)": [[1, "xrd_simulator.gaussian_crystal_model.GaussianPolycrystal.splat_grainshapes", false]], "strain_lab (xrd_simulator.polycrystal.polycrystal attribute)": [[1, "xrd_simulator.polycrystal.Polycrystal.strain_lab", false]], "strain_sample (xrd_simulator.polycrystal.polycrystal attribute)": [[1, "xrd_simulator.polycrystal.Polycrystal.strain_sample", false]], "strain_tensor (xrd_simulator.gaussian_crystal_model.gaussiansubgrain attribute)": [[1, "xrd_simulator.gaussian_crystal_model.GaussianSubgrain.strain_tensor", false]], "structure_factor (xrd_simulator.detector.detector attribute)": [[1, "xrd_simulator.detector.Detector.structure_factor", false]], "structure_factors (xrd_simulator.phase.phase attribute)": [[1, "xrd_simulator.phase.Phase.structure_factors", false]], "tetramesh (class in xrd_simulator.mesh)": [[1, "xrd_simulator.mesh.TetraMesh", false]], "transform() (xrd_simulator.gaussian_crystal_model.gaussianpolycrystal method)": [[1, "xrd_simulator.gaussian_crystal_model.GaussianPolycrystal.transform", false]], "transform() (xrd_simulator.polycrystal.polycrystal method)": [[1, "xrd_simulator.polycrystal.Polycrystal.transform", false]], "translate() (xrd_simulator.mesh.tetramesh method)": [[1, "xrd_simulator.mesh.TetraMesh.translate", false]], "translate() (xrd_simulator.motion.rigidbodymotion method)": [[1, "xrd_simulator.motion.RigidBodyMotion.translate", false]], "translation (xrd_simulator.motion.rigidbodymotion attribute)": [[1, "xrd_simulator.motion.RigidBodyMotion.translation", false]], "unit_cell (xrd_simulator.phase.phase attribute)": [[1, "xrd_simulator.phase.Phase.unit_cell", false]], "update() (xrd_simulator.mesh.tetramesh method)": [[1, "xrd_simulator.mesh.TetraMesh.update", false]], "vertices (xrd_simulator.beam.beam attribute)": [[1, "xrd_simulator.beam.Beam.vertices", false]], "wave_vector (xrd_simulator.beam.beam attribute)": [[1, "xrd_simulator.beam.Beam.wave_vector", false]], "wavelength (xrd_simulator.beam.beam attribute)": [[1, "xrd_simulator.beam.Beam.wavelength", false]], "xrd_simulator.beam": [[1, "module-xrd_simulator.beam", false]], "xrd_simulator.detector": [[1, "module-xrd_simulator.detector", false]], "xrd_simulator.gaussian_crystal_model": [[1, "module-xrd_simulator.gaussian_crystal_model", false]], "xrd_simulator.mesh": [[1, "module-xrd_simulator.mesh", false]], "xrd_simulator.motion": [[1, "module-xrd_simulator.motion", false]], "xrd_simulator.phase": [[1, "module-xrd_simulator.phase", false]], "xrd_simulator.polycrystal": [[1, "module-xrd_simulator.polycrystal", false]], "xrd_simulator.templates": [[1, "module-xrd_simulator.templates", false]], "ydhat (xrd_simulator.detector.detector attribute)": [[1, "xrd_simulator.detector.Detector.ydhat", false]], "ymax (xrd_simulator.detector.detector attribute)": [[1, "xrd_simulator.detector.Detector.ymax", false]], "zdhat (xrd_simulator.detector.detector attribute)": [[1, "xrd_simulator.detector.Detector.zdhat", false]], "zmax (xrd_simulator.detector.detector attribute)": [[1, "xrd_simulator.detector.Detector.zmax", false]]}, "objects": {"xrd_simulator": [[1, 0, 0, "-", "beam"], [1, 0, 0, "-", "detector"], [1, 0, 0, "-", "gaussian_crystal_model"], [1, 0, 0, "-", "mesh"], [1, 0, 0, "-", "motion"], [1, 0, 0, "-", "phase"], [1, 0, 0, "-", "polycrystal"], [1, 0, 0, "-", "templates"]], "xrd_simulator.beam": [[1, 1, 1, "", "Beam"], [1, 1, 1, "", "GaussianBeam"]], "xrd_simulator.beam.Beam": [[1, 2, 1, "", "centroid"], [1, 2, 1, "", "halfspaces"], [1, 3, 1, "", "load"], [1, 2, 1, "", "polarization_vector"], [1, 3, 1, "", "save"], [1, 3, 1, "", "set_beam_vertices"], [1, 2, 1, "", "vertices"], [1, 2, 1, "", "wave_vector"], [1, 2, 1, "", "wavelength"]], "xrd_simulator.detector": [[1, 1, 1, "", "Detector"]], "xrd_simulator.detector.Detector": [[1, 3, 1, "", "contains"], [1, 2, 1, "", "det_corner_0"], [1, 2, 1, "", "det_corner_1"], [1, 2, 1, "", "det_corner_2"], [1, 2, 1, "", "frames"], [1, 2, 1, "", "gaussian_kernel"], [1, 2, 1, "", "gaussian_sigma"], [1, 2, 1, "", "kernel_threshold"], [1, 3, 1, "", "load"], [1, 2, 1, "", "lorentz_factor"], [1, 2, 1, "", "normal"], [1, 3, 1, "", "peaks_detector_intersection"], [1, 2, 1, "", "pixel_coordinates"], [1, 2, 1, "", "pixel_size_y"], [1, 2, 1, "", "pixel_size_z"], [1, 2, 1, "", "polarization_factor"], [1, 3, 1, "", "render"], [1, 3, 1, "", "render_gaussian_splats"], [1, 3, 1, "", "save"], [1, 2, 1, "", "structure_factor"], [1, 2, 1, "", "ydhat"], [1, 2, 1, "", "ymax"], [1, 2, 1, "", "zdhat"], [1, 2, 1, "", "zmax"]], "xrd_simulator.gaussian_crystal_model": [[1, 1, 1, "", "GaussianPolycrystal"], [1, 1, 1, "", "GaussianSubgrain"]], "xrd_simulator.gaussian_crystal_model.GaussianPolycrystal": [[1, 3, 1, "", "diffract"], [1, 3, 1, "", "splat_grainshapes"], [1, 3, 1, "", "transform"]], "xrd_simulator.gaussian_crystal_model.GaussianSubgrain": [[1, 2, 1, "", "misorientation_tensor"], [1, 2, 1, "", "orientation"], [1, 2, 1, "", "phase"], [1, 2, 1, "", "position"], [1, 2, 1, "", "shape_tensor"], [1, 2, 1, "", "strain_tensor"]], "xrd_simulator.mesh": [[1, 1, 1, "", "TetraMesh"]], "xrd_simulator.mesh.TetraMesh": [[1, 2, 1, "", "centroid"], [1, 2, 1, "", "coord"], [1, 2, 1, "", "dof"], [1, 2, 1, "", "ecentroids"], [1, 2, 1, "", "efaces"], [1, 2, 1, "", "enod"], [1, 2, 1, "", "enormals"], [1, 2, 1, "", "eradius"], [1, 2, 1, "", "espherecentroids"], [1, 2, 1, "", "evolumes"], [1, 3, 1, "", "generate_mesh_from_levelset"], [1, 3, 1, "", "generate_mesh_from_vertices"], [1, 3, 1, "", "load"], [1, 2, 1, "", "number_of_elements"], [1, 3, 1, "", "rotate"], [1, 3, 1, "", "save"], [1, 3, 1, "", "translate"], [1, 3, 1, "", "update"]], "xrd_simulator.motion": [[1, 1, 1, "", "RigidBodyMotion"]], "xrd_simulator.motion.RigidBodyMotion": [[1, 3, 1, "", "__call__"], [1, 3, 1, "", "inverse"], [1, 3, 1, "", "load"], [1, 2, 1, "", "origin"], [1, 3, 1, "", "rotate"], [1, 2, 1, "", "rotation_angle"], [1, 2, 1, "", "rotation_axis"], [1, 3, 1, "", "save"], [1, 3, 1, "", "translate"], [1, 2, 1, "", "translation"]], "xrd_simulator.phase": [[1, 1, 1, "", "Phase"]], "xrd_simulator.phase.Phase": [[1, 2, 1, "", "miller_indices"], [1, 2, 1, "", "path_to_cif_file"], [1, 2, 1, "", "sgname"], [1, 2, 1, "", "structure_factors"], [1, 2, 1, "", "unit_cell"]], "xrd_simulator.polycrystal": [[1, 1, 1, "", "Polycrystal"]], "xrd_simulator.polycrystal.Polycrystal": [[1, 3, 1, "", "diffract"], [1, 2, 1, "", "element_phase_map"], [1, 3, 1, "", "load"], [1, 2, 1, "", "mesh_lab"], [1, 2, 1, "", "mesh_sample"], [1, 2, 1, "", "orientation_lab"], [1, 2, 1, "", "orientation_sample"], [1, 2, 1, "", "phases"], [1, 3, 1, "", "save"], [1, 2, 1, "", "strain_lab"], [1, 2, 1, "", "strain_sample"], [1, 3, 1, "", "transform"]], "xrd_simulator.templates": [[1, 4, 1, "", "get_uniform_powder_sample"], [1, 4, 1, "", "polycrystal_from_odf"], [1, 4, 1, "", "s3dxrd"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "function", "Python function"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:function"}, "terms": {"": [0, 1], "0": [0, 1], "00030625": 1, "001": 1, "0010000000000000002": 1, "01": 1, "02": 1, "03": 1, "0440173": 1, "064": 1, "08726646259971647": 1, "1": [0, 1], "10": [0, 1], "100": 1, "1000": 1, "1024": 1, "1107": [0, 1], "1129": 1, "1145": 0, "12": 1, "120": 1, "123": 1, "1396": 1, "142938": 1, "1441": 0, "145": 0, "1456": 0, "1500": 1, "153": 1, "162": 0, "180": 1, "181": 1, "191023": 1, "1982": 1, "1e": 1, "1e6": 1, "1\u00b3": 1, "2": [0, 1], "200": 1, "2000": 1, "20000": 1, "2017": 0, "2023": [0, 1], "2200": 1, "2343": 1, "2345": 1, "25": 1, "255": 1, "256": 1, "26": 1, "27": 1, "28": 1, "282": 1, "285227": 1, "28523": 1, "28706938": 1, "29": 1, "292": 1, "2d": 1, "2k": 0, "3": [0, 1], "300": 1, "32": 1, "3592433": 0, "38400": 1, "3d": 0, "3dxrd": 1, "4": [0, 1], "4189": 1, "42": [0, 1], "421": 1, "4234": 1, "450": [], "5": 1, "50": [0, 1], "500": 1, "5000": 1, "512": 1, "55": 1, "550": 1, "56": 1, "5707963267948966": 1, "5x5": 1, "6": 1, "60": 0, "75": 1, "768": 1, "769": 1, "79": 0, "8": 1, "80": 1, "90": 1, "9164": 1, "926": 1, "93fisher_distribut": 1, "95689793": 1, "A": [0, 1], "By": 1, "For": [0, 1], "If": 1, "In": [0, 1], "It": [0, 1], "Its": [0, 1], "The": [0, 1], "Then": 0, "These": 1, "To": [0, 1], "With": 0, "_": [0, 1], "_0": 0, "__call__": 1, "__file__": 1, "_h": 0, "_render_airy_peak": 1, "_render_gauss_peak": 1, "_render_projected_volum": 1, "_scalartype_co": 1, "about": 1, "abov": [0, 1], "absenc": 0, "absolut": 1, "absorb": 0, "access": 1, "accur": 1, "acm": 0, "across": 1, "act": 0, "acta": 0, "activ": 1, "ad": 1, "add": 0, "addit": [0, 1], "addition": 1, "advanc": [0, 1], "affect": 0, "after": [0, 1], "again": 1, "against": 1, "ahead": 1, "ahl": 0, "ai": 1, "airi": 1, "aka": 1, "al": 0, "align": [0, 1], "all": 1, "allow": 1, "along": [0, 1], "alpha": 1, "also": [0, 1], "an": [0, 1], "analysi": [0, 1], "analyt": 1, "angl": [0, 1], "angstrom": 1, "angular": [0, 1], "ani": 1, "anisotrop": 1, "anoth": 1, "answer": 1, "append": 1, "appl": 1, "appli": [0, 1], "appropri": 1, "approx": 0, "approx1": 0, "approxim": 1, "ar": [0, 1], "arbitrari": 1, "arbitrarili": 1, "arcsin": 0, "area": 1, "argument": 0, "around": [0, 1], "arrai": 1, "artifacts_dir": 1, "as_matrix": 1, "assembl": 1, "assign": 1, "associ": 1, "assum": [0, 1], "assumpt": 1, "attribut": [0, 1], "augment": 1, "auto": 1, "automat": 1, "avail": 1, "ax": 1, "axi": [0, 1], "axis_1": 1, "axis_2": 1, "azim": 0, "b": [0, 1], "ball": 1, "bandwidth": 0, "barebon": 1, "base": [0, 1], "basi": [0, 1], "basic": 1, "beam_centroid_posit": 1, "beam_loaded_from_disc": 1, "beam_side_length_i": 1, "beam_side_length_z": 1, "beam_vertic": 1, "becaus": 0, "becom": 0, "been": [0, 1], "befor": 1, "begin": 0, "being": 1, "bellow": 1, "below": [0, 1], "beta": 1, "better": 1, "between": 1, "bigl": 0, "bigr": 0, "bin": 1, "bm": 0, "bmatrix": 0, "bodi": 1, "bool": 1, "boolean": 1, "bore": 1, "both": [0, 1], "bound": 1, "bounding_height": 1, "bounding_radiu": 1, "bragg": [0, 1], "break": 1, "brehm": 0, "brehm2023": 0, "broaden": [0, 1], "build": 1, "built": 1, "builtin": 1, "bung": 1, "butterworth": 1, "c": [0, 1], "calcul": [0, 1], "call": [0, 1], "callabl": 1, "can": [0, 1], "captur": 1, "carri": 1, "cartesian": 0, "case": 1, "cax": 1, "cd": 1, "cdot": 0, "cell": 1, "center": 1, "centr": [0, 1], "centroid": 1, "chang": 1, "channel": 1, "chapman": 0, "check": [0, 1], "chosen": 0, "cif": 1, "circl": 0, "circular": 1, "cite": 1, "civita": 0, "clamp": 1, "class": [0, 1], "classmethod": 1, "cleanli": 1, "clone": 1, "close": 0, "cmap": 1, "co": 0, "code": 1, "coeffici": 1, "coincid": 0, "col": 1, "colect": 1, "collect": 1, "collim": 1, "color": 1, "colorbar": 1, "column": [0, 1], "com": 1, "combin": [0, 1], "command": 1, "compact": 0, "compar": 0, "complet": 0, "complic": 1, "compon": 1, "compos": 1, "comput": 1, "computation": 1, "concentarion": 1, "concentr": 1, "concentration_tensor": 1, "conda": 1, "condit": 0, "consequ": 0, "consid": [0, 1], "consist": 1, "constant": 1, "constrained_layout": 1, "construct": [0, 1], "contain": 1, "contribut": [0, 1], "control": 1, "convent": 0, "convex": 1, "convolut": 0, "cook": 0, "coord": 1, "coordin": 1, "corner": 1, "correct": [0, 1], "correl": 0, "correspond": [0, 1], "covari": [0, 1], "cp": 1, "cpu": 1, "creat": 1, "creation": 1, "cross": [0, 1], "cryst": 1, "crystal": 1, "crystallit": 1, "crystallograph": 1, "crystallographi": 0, "crystallographica": 0, "crystalograph": 1, "cube": 1, "cubic": 1, "current": [0, 1], "custom": 1, "cylind": 1, "d": [0, 1], "data": 1, "def": 1, "default": 1, "default_rng": 1, "defin": [0, 1], "definit": [0, 1], "degre": [0, 1], "delta": [0, 1], "demonstr": [0, 1], "denot": 0, "densiti": 1, "depend": 1, "describ": [0, 1], "descript": [0, 1], "desir": 1, "det": [0, 1], "det_corner_0": 1, "det_corner_1": 1, "det_corner_2": 1, "detach": 1, "detail": 1, "detector": 0, "detector_center_pixel_i": 1, "detector_center_pixel_z": 1, "detector_dist": 1, "detector_imag": 1, "detector_loaded_from_disc": 1, "determin": 1, "detlef": 0, "develop": 1, "deviat": [0, 1], "dict": 1, "dictionari": 1, "differ": [0, 1], "diffract": 0, "diffraction_fram": 1, "diffraction_pattern": 1, "diffraction_tim": 1, "dimens": 1, "dimension": [0, 1], "dimensionless": 0, "dirac": 0, "direct": [0, 1], "directli": [0, 1], "dirnam": 1, "disc": 1, "discard": 1, "discret": 1, "disk": 1, "distanc": 1, "distinct": [0, 1], "distribut": 1, "dive": 1, "diverg": 0, "divid": 1, "do": [0, 1], "document": 0, "doe": [0, 1], "dof": 1, "doi": [0, 1], "domain": 1, "domin": 1, "dot": 1, "down": 1, "draw": 1, "drettaki": 0, "drop": 1, "dtype": 1, "due": 1, "dure": [0, 1], "e": 1, "e2": 1, "each": [0, 1], "ecentroid": 1, "edg": 0, "efac": 1, "effect": 0, "effici": 0, "eigenvalu": [0, 1], "elast": 0, "element": 1, "element_data": 1, "element_node_map": 1, "element_phase_map": 1, "ell": 0, "elong": 0, "els": 1, "emit": 1, "en": 1, "enabl": 1, "end": [0, 1], "energi": 0, "enforc": 0, "enod": 1, "enorm": 1, "enough": 0, "entir": 1, "epsilon_": 0, "equal": [0, 1], "equat": 1, "equival": 0, "eradiu": 1, "erron": 1, "error": [], "espherecentroid": 1, "essenti": 1, "establish": [], "estim": 0, "et": 0, "euclidean": [0, 1], "euler": 1, "evalu": 1, "everi": 1, "evolum": 1, "exactli": [0, 1], "exampl": [0, 1], "exce": 0, "exclud": 0, "exclus": 1, "execut": 1, "exist": 1, "exist_ok": 1, "exp": [0, 1], "expect": 0, "experi": 1, "experiment": 1, "explain": 1, "exponenti": 0, "exposur": [0, 1], "express": [0, 1], "extend": [0, 1], "extens": 1, "extent": 0, "exterior": 1, "extract": 1, "ey": 1, "f": [0, 1], "fabl": 1, "face": 1, "factor": 1, "fail": 1, "fall": 1, "fals": 1, "fast": 1, "favorit": 1, "feedstock": 1, "feel": 1, "few": 1, "field": [0, 1], "fig": 1, "figsiz": 1, "figur": [0, 1], "file": 1, "filenam": 1, "fill": 1, "filter": 1, "final": 1, "find": 1, "finit": [0, 1], "first": [0, 1], "fisher": 1, "fix": 1, "flag": 1, "flavour": 1, "float": 1, "follow": [0, 1], "forg": 1, "form": [0, 1], "format": 1, "forward": 1, "found": 1, "foundat": 0, "four": 1, "fourier": 1, "frac": 0, "frame": 1, "frames_to_rend": 1, "freedom": 1, "from": 0, "full": 1, "fun": 1, "function": [0, 1], "further": 0, "g": [0, 1], "g_0": 0, "gamma": 1, "gaussian": 1, "gaussian_beam": 1, "gaussian_crystal_model": 0, "gaussian_kernel": 1, "gaussian_polycryst": 1, "gaussian_sigma": [0, 1], "gaussianbeam": 1, "gaussianpolycryst": 1, "gaussiansubgrain": 1, "gener": 1, "generate_mesh_from_levelset": 1, "generate_mesh_from_vertic": 1, "geometri": [0, 1], "get": 1, "get_uniform_powder_sampl": 1, "git": 1, "github": 1, "give": [0, 1], "given": 1, "global": 1, "go": 1, "good": 1, "gradient": 1, "grai": 1, "grain": [0, 1], "grain_list": 1, "grainshap": 1, "graphic": 0, "green": 1, "gridspec_kw": 1, "group": 1, "h": [0, 1], "ha": [0, 1], "halfspac": 1, "hall": 1, "hand": [0, 1], "handl": 1, "hasattr": 1, "hat": 0, "have": [0, 1], "hedm": 1, "height": 1, "helic": 1, "help": 1, "helper": 1, "henningsson": 1, "here": [0, 1], "hit": 1, "hkl": 1, "hold": 1, "hood": 1, "hope": 1, "host": 1, "how": 1, "howev": 1, "http": 1, "hull": 1, "i": [0, 1], "idea": 1, "ident": 1, "iffract": 1, "ij": 0, "ijk": 0, "illumin": [0, 1], "illustr": 1, "imag": 1, "imaginari": 1, "img": 1, "implement": [0, 1], "import": 1, "imshow": 1, "incid": 1, "incident_angl": 1, "includ": [0, 1], "index": 1, "indic": [0, 1], "individu": 1, "induc": 1, "infinit": [0, 1], "inform": 1, "infti": 0, "inherit": 1, "initi": 1, "input": [0, 1], "instanc": 1, "instanti": 1, "instead": 1, "instrument": 1, "int": [0, 1], "int_": 0, "integ": 1, "integr": 1, "intend": 1, "intens": 1, "intensity_factor": 1, "interact": 1, "interest": [], "interior": 1, "intern": [], "interpret": 0, "intersect": 1, "interv": 1, "introduc": 0, "invalid": 1, "invers": 1, "invert": 0, "involv": 0, "isotrop": 0, "its": [0, 1], "iv": 1, "j": 1, "jakobsen": 0, "jet": 1, "join": 1, "journal": [0, 1], "justif": 1, "k": [0, 1], "k_out": 1, "kappa": 1, "kei": 1, "kerbl": 0, "kerbl2023": 0, "kernel": 1, "kernel_threshold": 1, "kopana": 0, "l": 1, "la": 0, "lab": 1, "label": [0, 1], "laboratori": [0, 1], "labratori": 1, "lagrang": 1, "lambda": [0, 1], "lambda_0": 0, "larger": [0, 1], "largest": 0, "last": [0, 1], "later": 1, "lattic": [0, 1], "least": 1, "left": [0, 1], "leimk\u00fchler": 0, "len": 1, "length": 1, "less": 1, "let": [0, 1], "level": 1, "level_set": 1, "levi": 0, "li": 0, "like": 1, "likewis": 1, "linalg": 1, "line": 1, "linear": 1, "linearli": 1, "link": 1, "list": 1, "lki": 0, "lm": 0, "load": 1, "local": 0, "locat": 1, "log10": 1, "log_": 1, "log_intens": 1, "logarithm": 1, "london": 1, "long_axis_direct": 1, "long_axis_width": 1, "longer": 1, "longest": 1, "look": 1, "lorentz": 1, "lorentz_factor": 1, "love": 1, "lvert": 0, "m": 0, "macro": 1, "macro_grain_limit": 1, "magnifi": 1, "mai": 1, "mainli": [], "major": 1, "make": [0, 1], "make_random_tensor": 1, "makedir": 1, "malici": 1, "mani": 1, "map": 1, "march": 1, "match": 1, "materi": 1, "mathbf": 0, "mathrm": 0, "mathsf": 0, "matplotlib": 1, "matric": 1, "matrix": [0, 1], "matter": 0, "max_bin": 1, "max_bragg_angl": 1, "max_cell_circumradiu": 1, "max_gaussian_kernel_radiu": [0, 1], "max_grain_s": 1, "max_misorient": 1, "maximum": 1, "maximum_sampling_bin_seper": 1, "mean": [0, 1], "mean_scattering_direct": 1, "meant": 1, "measur": [0, 1], "medium": 1, "mesh_lab": 1, "mesh_loaded_from_disc": 1, "mesh_sampl": 1, "meshio": 1, "meshpi": 1, "messag": 1, "metadata": 1, "method": [0, 1], "micro": 1, "micro_grain_limit": 1, "micrometr": 1, "micron": 1, "microscopi": 0, "microstructur": 1, "miller": [0, 1], "miller_indic": 1, "min_bragg_angl": 1, "minim": 1, "minimum": 1, "minor": 1, "minu": 0, "misalign": 0, "mise": 1, "misorient": [0, 1], "misorientation_tensor": [0, 1], "miss": 1, "mnj": 0, "model": 1, "modifi": 1, "modul": [0, 1], "momentum": 0, "monochromat": 1, "more": [0, 1], "morphologi": 1, "mosaic": [0, 1], "motion_loaded_from_disc": 1, "motiv": 1, "move": 1, "mu": 1, "much": 0, "multi": 1, "multipl": [], "must": 1, "mutual": 1, "my_detector": 1, "my_mesh": 1, "my_mot": 1, "my_polycryst": 1, "my_xray_beam": 1, "n": [0, 1], "n_elm": 1, "n_face": 1, "n_node": 1, "n_pixel": 1, "n_y": 1, "n_z": 1, "name": 1, "nano": 1, "narrow": [0, 1], "natur": 1, "ndarrai": 1, "need": 1, "neg": 1, "neglect": 0, "neither": 1, "never": 1, "new": 1, "next": 1, "nodal": 1, "nodal_coordin": 1, "node": 1, "nomin": 0, "non": 1, "nondegener": 0, "none": 1, "nonlinear": 0, "norm": 1, "normal": [0, 1], "note": 1, "now": 1, "np": 1, "number": 1, "number_of_cryst": 1, "number_of_detector_pixels_i": 1, "number_of_detector_pixels_z": 1, "number_of_el": 1, "number_of_grain": 1, "numpi": 1, "o": 1, "object": 1, "obtain": 0, "odf": 1, "offset": 0, "onc": 1, "one": [0, 1], "onli": 1, "onto": [0, 1], "optic": 0, "optim": 1, "option": 1, "order": [0, 1], "ordinari": 0, "org": 1, "orient": 1, "orientation_density_funct": 1, "orientation_lab": 1, "orientation_sampl": 1, "origin": [0, 1], "orthogon": 1, "ourselv": 1, "out": 1, "outer": 1, "output": 1, "outsid": 1, "outward": 1, "over": [0, 1], "overlai": 1, "p": [0, 1], "p3221": 1, "p_a": 0, "p_b": 0, "p_k": 0, "p_n": 0, "packag": 1, "page": 1, "pair": 0, "paper": 1, "parallel": 0, "paramet": [0, 1], "parameter": 0, "parametr": 1, "paraview": 1, "part": 1, "partial": [0, 1], "particular": 0, "pass": 1, "patch": 1, "patch_siz": 1, "path": [0, 1], "path_to_cif_fil": 1, "pattern": 1, "pc": 1, "peak": [0, 1], "peaks_batch_s": 1, "peaks_detector_intersect": 1, "peaks_dict": 1, "per": 1, "perform": 1, "perp": 0, "perpendicular": 0, "phase": 0, "physic": 1, "pi": [0, 1], "pickl": 1, "pixel": [0, 1], "pixel_coordin": 1, "pixel_s": 1, "pixel_side_length_i": 1, "pixel_side_length_z": 1, "pixel_size_i": 1, "pixel_size_z": 1, "pixellength": 1, "place": 1, "plane": [0, 1], "platform": 1, "plot": 1, "plt": 1, "point": [0, 1], "pointcloud": 1, "polar": 1, "polarization_factor": 1, "polarization_vector": 1, "pole": 1, "polycryst": 0, "polycrystal_from_odf": 1, "polycrystallin": 1, "polyhedra": 1, "polyhedron": 1, "popul": 1, "posit": [0, 1], "possibl": 1, "poulsen": 0, "poulsen2017": 0, "powder": 1, "pre": 1, "precis": 1, "predict": 0, "prefactor": 0, "prefer": 1, "prepres": 1, "prescrib": 1, "present": 1, "previou": 1, "primit": [0, 1], "print": 1, "probabl": [0, 1], "process": 1, "produc": [0, 1], "product": [0, 1], "profil": [0, 1], "program": 1, "progress": 1, "project": 1, "projected_shape_pixelunit": 1, "projected_thicknes_scale_factor": 1, "prolat": 0, "propag": 1, "properti": 1, "provid": [0, 1], "psi_": 0, "py": 1, "pygalmesh": 1, "pyplot": 1, "python": 1, "q": [0, 1], "q_": 0, "qquad": 0, "quad": 0, "qualit": [], "quantit": [], "quantiti": 1, "quartz": [0, 1], "quaternion": 1, "question": 1, "quickli": 1, "r": [0, 1], "r_": 0, "r_x": 0, "r_y": 0, "r_z": 0, "rad": [0, 1], "radial": 0, "radian": 1, "radianc": 0, "radii": 1, "radiu": 1, "rai": 0, "rais": 1, "rand": 1, "random": 1, "random_direct": 1, "random_st": 1, "randomli": 1, "rang": 1, "raster": [0, 1], "rather": 0, "read": 1, "readabl": 1, "real": [0, 1], "realiz": 1, "receiv": 1, "reciproc": 1, "rectangular": 1, "reduc": 0, "refer": 1, "reflect": [0, 1], "refract": 0, "regim": 1, "region": 1, "rel": 0, "relat": [0, 1], "releas": 1, "render": [0, 1], "render_dtyp": 1, "render_gaussian_splat": 1, "repeat": 0, "replac": 0, "repo": 1, "repositori": 1, "repres": [0, 1], "represent": 1, "requir": [0, 1], "rescal": 0, "research": 1, "resolv": 0, "respect": 1, "respons": 1, "result": [0, 1], "retain": [0, 1], "return": 1, "revers": 1, "right": 0, "rigid": 1, "rigid_body_mot": 1, "rigidbodymot": 1, "rng": 1, "rock": 1, "roll": 0, "root": [0, 1], "rotat": [0, 1], "rotation_angl": 1, "rotation_axi": 1, "rotation_step": 1, "row": 1, "rsm": 0, "run": 1, "rvert": 0, "s1600576717011037": 0, "s1600576722011001": 1, "s2053273323000682": 0, "s3dxrd": 1, "same": [0, 1], "sampl": [0, 1], "sample_bounding_cylinder_height": 1, "sample_bounding_cylinder_radiu": 1, "sample_bounding_radiu": 1, "sample_orient": 1, "sample_rotation_during_exposur": 1, "sample_transl": 1, "save": 1, "save_mesh_as_xdmf": 1, "scalar": [0, 1], "scale": 1, "scale_factor": 1, "scan": 1, "scatter": 1, "scattering_unit": 1, "scatteringunit": 1, "scenario": 1, "scene": 0, "scienc": 1, "scikit": 1, "scipi": 1, "script": 1, "second": 0, "section": [0, 1], "secur": 1, "see": 1, "seed": 1, "select": 1, "self": 1, "separ": [0, 1], "sequenc": 1, "serial": 0, "set": [0, 1], "set_beam_vertic": 1, "set_titl": 1, "set_xlim": 1, "set_ylim": 1, "setup": 1, "seven": 0, "sever": [0, 1], "sgname": 1, "shape": [0, 1], "shape_concentration_tensor": 1, "shape_tensor": [0, 1], "shift": 0, "shize": 1, "short_axis_direct": 1, "short_axis_width": 1, "shortest": 1, "should": [0, 1], "show": [0, 1], "side": 1, "sign": 0, "signal": 1, "similar": 0, "simon": 0, "simpli": 1, "simul": 0, "sin": 0, "singl": [0, 1], "sio2": 1, "six": 0, "size": [0, 1], "skimag": 1, "slower": 1, "small": [0, 1], "smaller": 1, "so": [0, 1], "so3": 1, "softwar": 1, "solid": 1, "solv": [], "some": 1, "someth": 1, "space": 1, "span": 0, "spatial": 1, "special": 1, "specifi": 1, "speed": 1, "sphere": 1, "spheric": 1, "splat": 0, "splat_grainshap": 1, "split": 1, "spot": [0, 1], "spread": [0, 1], "sqrt": [0, 1], "squar": [0, 1], "stack": 1, "standard": [0, 1], "start": 1, "static": 1, "step": 1, "steplength": 1, "str": 1, "strain": [0, 1], "strain_lab": 1, "strain_sampl": 1, "strain_tensor": 1, "strength": 1, "structur": 1, "structure_factor": 1, "sub": 1, "subgrain": 1, "subplot": 1, "subsequ": 0, "substitut": 0, "subtract": 0, "suitabl": 1, "sum": 1, "summat": 0, "suppli": 1, "support": [0, 1], "surfac": 1, "symbol": 0, "symmetr": [0, 1], "symmetri": 1, "system": 1, "t": [0, 1], "t_": 0, "tail": 1, "take": 1, "tangent": 1, "target": 1, "tensor": 1, "term": 0, "test": 1, "test_artifact": 1, "tetgen": 1, "tetra": 1, "tetrahedr": 1, "tetrahedron": 0, "tetramesh": 1, "textur": [0, 1], "tfrac": 0, "than": [0, 1], "thei": 0, "theori": 1, "therefor": 0, "theshold": 1, "theta_0": 0, "thi": 1, "thick": 1, "thing": 1, "those": 1, "three": [0, 1], "threshold": 1, "through": 1, "thu": 0, "time": [0, 1], "top": 0, "topologi": 1, "torch": 1, "toward": 1, "transact": 0, "transform": 1, "transformed_point": 1, "translat": 1, "translation_vector": 1, "transvers": 0, "true": 1, "truncat": 1, "tupl": 1, "two": [0, 1], "type": 1, "u": [0, 1], "u_0": 1, "unauthent": 1, "under": [0, 1], "undergo": 1, "underli": 0, "uniform": [0, 1], "uniformli": 1, "uniqu": 1, "unit": [0, 1], "unit_cel": 1, "unpickl": 1, "until": 1, "untrust": 1, "up": 1, "updat": 1, "upper": 1, "us": [0, 1], "usag": 1, "use_lorentz": 1, "use_polar": 1, "use_structure_factor": 1, "user": [], "util": 1, "uv_corrd": 1, "v": 1, "v_0": 1, "valu": 1, "valueerror": 1, "vanish": 0, "varepsilon": 0, "vari": 1, "variabl": 1, "variou": 1, "vector": [0, 1], "verbos": 1, "vertic": 1, "via": 1, "viewer": 1, "visibl": [0, 1], "visual": 1, "vmax": 1, "vmin": 1, "volum": 1, "von": 1, "von_mis": 1, "w": [0, 1], "wa": 1, "wai": 1, "warn": 1, "wave_vector": 1, "wavelength": [0, 1], "wavenumb": 0, "wavevector": [0, 1], "we": 1, "weak": 0, "weight": 1, "well": 1, "were": 1, "when": [0, 1], "where": [0, 1], "wherea": 0, "whether": 1, "which": 1, "while": [0, 1], "white": 0, "whose": 0, "why": 1, "wide": 1, "width": [0, 1], "width_ratio": 1, "wiki": 1, "wikipedia": 1, "window": 0, "within": [0, 1], "without": [0, 1], "word": 0, "work": [0, 1], "workflow": [0, 1], "worri": 1, "would": 1, "wrapper": 1, "write": 0, "written": 0, "www": 1, "x": 0, "xdmf": 1, "xfab": 1, "xrai": 1, "xray_propagation_direct": 1, "xrd": 1, "xrd_simul": [0, 1], "y": [0, 1], "yd": 1, "ydhat": 1, "ymax": 1, "you": 1, "your": 1, "z": 1, "zd": 1, "zdhat": 1, "zero": 1, "zeta_": 0, "zmax": 1, "\u00b5m": 1}, "titles": ["Gaussian model: theory and references", "Simulate X-ray Diffraction from Polycrystals in 3D."], "titleterms": {"3d": 1, "On": 0, "anaconda": 1, "anisotrop": 0, "approxim": 0, "beam": [0, 1], "citat": 1, "collim": 0, "comparison": 0, "concentr": 0, "conserv": 0, "content": [], "coordin": 0, "credit": 1, "crystal": 0, "curv": 0, "densiti": 0, "detector": 1, "diffract": 1, "distribut": 0, "document": 1, "equat": 0, "from": 1, "gaussian": 0, "gaussian_crystal_model": 1, "high": 0, "illustr": 0, "incid": 0, "instal": 1, "integr": 0, "introduct": 1, "laue": [], "line": 0, "linear": 0, "linux": 1, "maco": 1, "map": 0, "mesh": 1, "model": 0, "monochromat": 0, "motion": 1, "orient": 0, "outgo": 0, "page": 0, "phase": 1, "pip": 1, "pole": 0, "polycryst": 1, "project": 0, "rai": 1, "reciproc": 0, "refer": 0, "represent": 0, "resolut": 0, "rock": 0, "scatter": 0, "simul": 1, "sourc": 1, "space": 0, "special": 0, "subgrain": 0, "tangent": 0, "templat": 1, "tensor": 0, "test": 0, "tetrahedr": 0, "theori": 0, "thi": 0, "window": 1, "x": 1}}) \ No newline at end of file diff --git a/docs/source/gaussian_model_theory.rst b/docs/source/gaussian_model_theory.rst new file mode 100644 index 0000000..353fb63 --- /dev/null +++ b/docs/source/gaussian_model_theory.rst @@ -0,0 +1,582 @@ +:orphan: + +.. _gaussian-model-theory: + +Gaussian model: theory and references +===================================== + +This page describes the scattering model and approximations underlying +:mod:`xrd_simulator.gaussian_crystal_model`. A worked example is provided in +the module documentation. + +.. contents:: On this page + :local: + :depth: 2 + +Gaussian subgrain representation +-------------------------------- + +Gaussian splatting represents a three-dimensional scene using Gaussian +primitives whose projected contributions can be rendered efficiently by +rasterization [Kerbl2023]_. Here, a polycrystal is represented by Gaussian +grains or subgrains, each with a Gaussian real-space density profile and a +narrow Gaussian distribution of lattice orientations. Under the approximations +below, each subgrain produces Gaussian-shaped diffraction spots on the +detector. Related Gaussian-basis methods for diffraction prediction and +partiality estimation have been demonstrated in serial crystallography +[Brehm2023]_. + +Several effects can contribute to diffraction-spot broadening: grain size, +detector point-spread, incident-beam bandwidth, incident-beam angular +divergence, lattice misorientation (mosaicity), and distributions of strain. +When these effects have Gaussian profiles and their deviations are small +enough to neglect nonlinear terms, they can be combined within a Gaussian +model. + +The model described here includes the real-space extent of the illuminated +subgrains and their mosaicity. The incident beam is monochromatic and +collimated, and each subgrain has a uniform strain tensor. A uniform strain +can shift a reflection but does not describe a distribution of lattice +spacings within that subgrain. Small sample rotations during an exposure are +approximated by additional Gaussian orientation broadening. + +.. note:: + + The Gaussian-splat rendering path does not apply a separate detector + point-spread convolution. The ``gaussian_sigma`` and + ``max_gaussian_kernel_radius`` detector settings retained in the worked + example therefore do not add this broadening to its Gaussian spots. + +Scattering theory +----------------- + +Scattered-beam distribution +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Let the incident beam have a phase-space density :math:`p(\mathbf{k})` +centred on :math:`\mathbf{k}_0`, with nominal wavenumber + +.. math:: + :label: gaussian-wavenumber + + k = \lvert\mathbf{k}_0\rvert = \frac{2\pi}{\lambda_0}. + +For a particular reflection, let :math:`f(\mathbf{q})` describe the subgrain's +reciprocal-space map (RSM) around a reciprocal-lattice vector +:math:`\mathbf{G}_0`. The scattered-beam distribution is written as + +.. math:: + :label: gaussian-scattering-integral + + I(\mathbf{p}) + = \int \mathrm{d}^{3}\mathbf{k} + \int \mathrm{d}^{3}\mathbf{q}\; + p(\mathbf{k})\,f(\mathbf{q})\, + \delta\!\left(\lvert\mathbf{k}\rvert-\lvert\mathbf{p}\rvert\right) + \delta^{(3)}\!\left(\mathbf{k}+\mathbf{q}-\mathbf{p}\right). + +The scalar Dirac delta enforces elastic scattering, while the +three-dimensional Dirac delta enforces momentum conservation. + +Incident-beam coordinates +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Following the coordinate construction used by Poulsen et al. +[Poulsen2017]_, write the incident wavevector as + +.. math:: + :label: gaussian-incident-wavevector + + \mathbf{k} + = \mathbf{k}_0 + + k\left( + \varepsilon\,\hat{\mathbf{k}}_0 + + \zeta_{\parallel}\,\hat{\mathbf{k}}_{\parallel} + + \zeta_{\perp}\,\hat{\mathbf{k}}_{\perp} + \right). + +A hat denotes a unit vector. The vector +:math:`\hat{\mathbf{k}}_{\parallel}` is perpendicular to +:math:`\mathbf{k}_0` and lies in the plane spanned by :math:`\mathbf{k}_0` +and :math:`\mathbf{G}_0`. Its sign is chosen so that +:math:`\mathbf{G}_0\cdot\hat{\mathbf{k}}_{\parallel}>0`. Complete the +right-handed basis with + +.. math:: + + \hat{\mathbf{k}}_{\perp} + = \hat{\mathbf{k}}_0\times\hat{\mathbf{k}}_{\parallel}. + +The coordinate :math:`\varepsilon` describes the relative wavenumber +deviation, and :math:`\zeta_{\parallel}` and :math:`\zeta_{\perp}` describe +small angular deviations of the incident beam. + +Reciprocal-space coordinates +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Define the nominal Bragg angle and the exactly aligned scattering vector by + +.. math:: + :label: gaussian-nominal-scattering-vector + + \begin{aligned} + \theta_0 + &= \arcsin\!\left(\frac{\lvert\mathbf{G}_0\rvert}{2k}\right), \\ + \mathbf{Q} + &= 2k\sin\theta_0\left( + \cos\theta_0\,\hat{\mathbf{k}}_{\parallel} + - \sin\theta_0\,\hat{\mathbf{k}}_0 + \right) \\ + &= 2k\sin\theta_0\,\hat{\mathbf{Q}}. + \end{aligned} + +The vectors :math:`\mathbf{G}_0` and :math:`\mathbf{Q}` coincide when the +reflection is exactly aligned. For a small misalignment, their difference is +parallel, to first order, to the rocking direction + +.. math:: + + \hat{\mathbf{q}}_{\mathrm{rock}} + = \cos\theta_0\,\hat{\mathbf{k}}_0 + + \sin\theta_0\,\hat{\mathbf{k}}_{\parallel}. + +Use dimensionless rocking, strain, and rolling coordinates to write + +.. math:: + :label: gaussian-reciprocal-coordinates + + \begin{aligned} + \mathbf{q} + &= \mathbf{G}_0 + + 2k\sin\theta_0\left( + q_{\mathrm{rock}}\,\hat{\mathbf{q}}_{\mathrm{rock}} + + q_{\mathrm{strain}}\,\hat{\mathbf{Q}} + + q_{\mathrm{roll}}\,\hat{\mathbf{k}}_{\perp} + \right) \\ + &\approx \mathbf{Q} + + 2k\sin\theta_0\left( + (q_{\mathrm{rock}}-\delta q)\, + \hat{\mathbf{q}}_{\mathrm{rock}} + + q_{\mathrm{strain}}\,\hat{\mathbf{Q}} + + q_{\mathrm{roll}}\,\hat{\mathbf{k}}_{\perp} + \right), + \end{aligned} + +where + +.. math:: + :label: gaussian-rocking-offset + + \delta q + = \frac{ + (\mathbf{Q}-\mathbf{G}_0)\cdot\hat{\mathbf{q}}_{\mathrm{rock}} + }{2k\sin\theta_0}. + +This offset measures the reflection's misalignment and is equal to the +rocking angle to first order, with the sign convention above. The incident +coordinates :math:`(\varepsilon,\zeta_{\parallel},\zeta_{\perp})` and the +reciprocal-space coordinates +:math:`(q_{\mathrm{rock}},q_{\mathrm{strain}},q_{\mathrm{roll}})` separate +bandwidth, collimation, misorientation, and strain effects. + +Outgoing-beam coordinates +~~~~~~~~~~~~~~~~~~~~~~~~~ + +The nominal scattered wavevector is + +.. math:: + :label: gaussian-nominal-outgoing-wavevector + + \mathbf{k}_h + = \mathbf{k}_0+\mathbf{Q} + = k\left( + \cos(2\theta_0)\,\hat{\mathbf{k}}_0 + + \sin(2\theta_0)\,\hat{\mathbf{k}}_{\parallel} + \right). + +Define the radial direction perpendicular to :math:`\mathbf{k}_h` by + +.. math:: + + \hat{\mathbf{k}}_{\mathrm{rad}} + = \cos(2\theta_0)\,\hat{\mathbf{k}}_{\parallel} + - \sin(2\theta_0)\,\hat{\mathbf{k}}_0. + +The outgoing wavevector can then be written as + +.. math:: + :label: gaussian-outgoing-wavevector + + \mathbf{p} + = \mathbf{k}_h + + k\left( + \varepsilon'\,\hat{\mathbf{k}}_h + + \psi_{\mathrm{rad}}\,\hat{\mathbf{k}}_{\mathrm{rad}} + + \psi_{\mathrm{azim}}\,\hat{\mathbf{k}}_{\perp} + \right). + +Here :math:`\psi_{\mathrm{rad}}` and :math:`\psi_{\mathrm{azim}}` are small +transverse angular deviations from the nominal outgoing direction. + +Linearized conservation equations +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To first order, + +.. math:: + + \lvert\mathbf{k}\rvert\approx k(1+\varepsilon), + \qquad + \lvert\mathbf{p}\rvert\approx k(1+\varepsilon'). + +Energy conservation therefore sets :math:`\varepsilon'=\varepsilon`. +Momentum conservation gives :math:`\mathbf{q}=\mathbf{p}-\mathbf{k}` and, +after substitution, + +.. math:: + :label: gaussian-linearized-momentum + + \begin{aligned} + &2\sin\theta_0\Bigl[ + (q_{\mathrm{rock}}-\delta q)\, + \hat{\mathbf{q}}_{\mathrm{rock}} + + q_{\mathrm{strain}}\,\hat{\mathbf{Q}} + + q_{\mathrm{roll}}\,\hat{\mathbf{k}}_{\perp} + \Bigr] \\ + &\qquad = 2\sin\theta_0\,\varepsilon\,\hat{\mathbf{Q}} + + \psi_{\mathrm{rad}}\,\hat{\mathbf{k}}_{\mathrm{rad}} \\ + &\qquad\quad + + \psi_{\mathrm{azim}}\,\hat{\mathbf{k}}_{\perp} + - \zeta_{\parallel}\,\hat{\mathbf{k}}_{\parallel} + - \zeta_{\perp}\,\hat{\mathbf{k}}_{\perp}. + \end{aligned} + +.. note:: + + The incident-divergence terms have minus signs because the incident + wavevector is subtracted in :math:`\mathbf{q}=\mathbf{p}-\mathbf{k}`. + This corrects the corresponding signs in the original workflow. It does + not affect the monochromatic, collimated specialization below, where + both terms vanish. + +Monochromatic, collimated specialization +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The current model assumes + +.. math:: + + \varepsilon=\zeta_{\parallel}=\zeta_{\perp}=0, + \qquad q_{\mathrm{strain}}=0. + +The last condition excludes strain-distribution broadening; it does not +require the uniform subgrain strain to vanish. The conservation equation +reduces to + +.. math:: + + \begin{aligned} + &2\sin\theta_0\left[ + (q_{\mathrm{rock}}-\delta q)\, + \hat{\mathbf{q}}_{\mathrm{rock}} + + q_{\mathrm{roll}}\,\hat{\mathbf{k}}_{\perp} + \right] \\ + &\qquad + = \psi_{\mathrm{rad}}\,\hat{\mathbf{k}}_{\mathrm{rad}} + + \psi_{\mathrm{azim}}\,\hat{\mathbf{k}}_{\perp}. + \end{aligned} + +For a nondegenerate Bragg geometry, the three coordinate equations are + +.. math:: + :label: gaussian-scattering-constraints + + q_{\mathrm{rock}}=\delta q, + \qquad + \psi_{\mathrm{rad}}=0, + \qquad + \psi_{\mathrm{azim}}=2\sin\theta_0\,q_{\mathrm{roll}}. + +Thus, the scattered angular distribution samples the RSM along a line +parallel to :math:`\hat{\mathbf{k}}_{\perp}`, offset by :math:`\delta q` +from its centre. For a Gaussian RSM, this gives a one-dimensional Gaussian +angular distribution. The finite real-space extent of the illuminated +subgrain is subsequently projected onto the detector to produce a +two-dimensional spot. + +Anisotropic Gaussian orientation distributions +---------------------------------------------- + +Tangent-space approximation +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Consider a narrow orientation distribution centred on an orientation +:math:`g_0`. Approximate orientation space by its left tangent space at +:math:`g_0`, so that a small rotation vector :math:`\mathbf{r}` acts in +laboratory coordinates: + +.. math:: + :label: gaussian-tangent-rotation + + g\approx R_{\mathbf{r}}g_0 + \approx + \begin{bmatrix} + 1 & -r_z & r_y \\ + r_z & 1 & -r_x \\ + -r_y & r_x & 1 + \end{bmatrix}g_0. + +The Gaussian orientation density used in the workflow is + +.. math:: + :label: gaussian-orientation-density + + f(\mathbf{r}) + = \frac{2}{\sqrt{\pi}}\sqrt{\det\mathbf{T}}\, + \exp\!\left(-\mathbf{r}^{\mathsf{T}}\mathbf{T}\mathbf{r}\right), + +where :math:`\mathbf{T}` is a symmetric positive-definite concentration +tensor. + +.. note:: + + The prefactor above retains the workflow's normalization convention. + With ordinary Euclidean tangent-space measure, + :math:`\int f(\mathbf{r})\,\mathrm{d}^{3}\mathbf{r}=2\pi`, not one. + It should therefore not be interpreted as a unit-normalized Euclidean + probability density without rescaling. + + For an exponential of the form + :math:`\exp(-\mathbf{r}^{\mathsf{T}}\mathbf{T}\mathbf{r})`, the + corresponding normalized Gaussian has covariance + :math:`\tfrac{1}{2}\mathbf{T}^{-1}`. The implementation directly inverts + ``misorientation_tensor`` to obtain :math:`\mathbf{T}`. Consequently, + the square roots of the input tensor's eigenvalues are Gaussian width + parameters, not standard deviations. For an input eigenvalue + :math:`a^2`, the standard deviation is :math:`a/\sqrt{2}`. + The real-space Gaussian uses the same exponential convention for + ``shape_tensor``. This distinction matters because the class attribute + descriptions currently use the word "covariance" for these inputs. + +Pole density as a line integral +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +For Miller indices :math:`(h,k,\ell)`, define the unit lattice direction in +crystal coordinates by + +.. math:: + + \mathbf{h} + = \frac{ + \mathbf{B}_0[h,k,\ell]^{\mathsf{T}} + }{ + \left\lvert\mathbf{B}_0[h,k,\ell]^{\mathsf{T}}\right\rvert + }, + \qquad + \mathbf{p}=g_0\mathbf{h}. + +Here :math:`\mathbf{B}_0` is the reciprocal-lattice basis matrix. In this +section, :math:`\mathbf{p}` denotes the mean lattice direction, rather than +the outgoing wavevector used in the scattering section. It is parallel to +:math:`\mathbf{G}_0`. Let :math:`\mathbf{y}` be a unit direction in +laboratory coordinates, parallel to a sampled reciprocal-space vector +:math:`\mathbf{q}`; it is not a Cartesian coordinate-axis label. + +The pole density, also called the pair-correlation function in texture +analysis, describes the density of lattice directions along +:math:`\mathbf{y}`. Its calculation normally involves an integral over a +circle in :math:`\mathrm{SO}(3)`. Within the tangent-space approximation, +replace this by an infinite line integral, parameterized as + +.. math:: + :label: gaussian-orientation-fibre + + \mathbf{r}(\lambda) + = \frac{\mathbf{p}\times\mathbf{y}}{\mathbf{p}\cdot\mathbf{y}} + + \lambda\mathbf{p} + = \mathbf{r}_0+\lambda\mathbf{p}. + +The parameter :math:`\lambda` here is a line-integration parameter, not the +X-ray wavelength. Substitution into the Gaussian density and completion of +the square give, with +:math:`d=\mathbf{p}^{\mathsf{T}}\mathbf{T}\mathbf{p}`, + +.. math:: + :label: gaussian-pole-density-integral + + \begin{aligned} + A(\mathbf{y},\mathbf{p};f) + &= \int_{-\infty}^{\infty} + f\!\left(\mathbf{r}_0+\lambda\mathbf{p}\right) + \,\mathrm{d}\lambda \\ + &= \frac{2\sqrt{\det\mathbf{T}}} + {\sqrt{d}} + \exp\!\left[ + -\mathbf{r}_0^{\mathsf{T}}\mathbf{T}\mathbf{r}_0 + + \frac{ + (\mathbf{r}_0^{\mathsf{T}}\mathbf{T}\mathbf{p})^2 + }{d} + \right]. + \end{aligned} + +Projected concentration tensor +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +For directions close to the pole, make the further approximation +:math:`\mathbf{p}\cdot\mathbf{y}\approx1`. Define + +.. math:: + + \mathbf{M} + = \mathbf{T} + - \frac{ + \mathbf{T}\mathbf{p}\mathbf{p}^{\mathsf{T}}\mathbf{T} + }{d}. + +Let :math:`[\mathbf{p}]_{\times}` denote the cross-product matrix, +:math:`[\mathbf{p}]_{\times}\mathbf{y}=\mathbf{p}\times\mathbf{y}`. Then + +.. math:: + :label: gaussian-projected-concentration + + \mathbf{T}_{\mathbf{p}} + = [\mathbf{p}]_{\times}^{\mathsf{T}} + \mathbf{M} + [\mathbf{p}]_{\times}, + +and the pole density becomes + +.. math:: + :label: gaussian-pole-density + + A(\mathbf{y},\mathbf{p};f) + \approx \frac{2\sqrt{\det\mathbf{T}}}{\sqrt{d}}\, + \exp\!\left( + -\mathbf{y}^{\mathsf{T}}\mathbf{T}_{\mathbf{p}}\mathbf{y} + \right). + +Equivalently, using the Levi-Civita symbol :math:`\epsilon_{ijk}` and +summation over repeated indices, + +.. math:: + + [\mathbf{T}_{\mathbf{p}}]_{ij} + = p_k\,\epsilon_{lki} + \left( + T_{lm}-\frac{T_{la}p_a p_b T_{bm}}{d} + \right) + \epsilon_{mnj}\,p_n. + +This absorbs the cross products into the projected tensor and makes the +subsequent Gaussian expressions more compact. + +Reciprocal-space map +~~~~~~~~~~~~~~~~~~~~ + +The pole density is defined for unit-vector arguments. With no +strain-distribution broadening, extend it to a reciprocal-space map supported +on the local plane :math:`q_{\mathrm{strain}}=0`. + +Introduce the two-column basis matrix and coordinate vector + +.. math:: + + \mathbf{U} + = \begin{bmatrix} + \hat{\mathbf{q}}_{\mathrm{rock}} & \hat{\mathbf{k}}_{\perp} + \end{bmatrix}, + \qquad + \mathbf{u} + = \begin{bmatrix} + q_{\mathrm{rock}} \\ + q_{\mathrm{roll}} + \end{bmatrix}. + +In the dimensionless reciprocal-space coordinates defined above, the +workflow's local RSM is + +.. math:: + :label: gaussian-local-rsm + + f(\mathbf{q}) + \approx \delta(q_{\mathrm{strain}})\, + \frac{2\sqrt{\det\mathbf{T}}}{\sqrt{d}}\, + \exp\!\left[ + -\mathbf{u}^{\mathsf{T}} + \left(\mathbf{U}^{\mathsf{T}} + \mathbf{T}_{\mathbf{p}}\mathbf{U}\right) + \mathbf{u} + \right]. + +The Dirac delta expresses the absence of a distribution of lattice spacings +within the subgrain. Sampling this Gaussian at +:math:`q_{\mathrm{rock}}=\delta q`, as required by +:eq:`gaussian-scattering-constraints`, gives the scattered angular +distribution for the reflection. + +Illustrative tests +------------------ + +Comparison with a tetrahedral crystal +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The workflow compares a one-degree rotation of a single quartz crystal +shaped as a symmetric tetrahedron with a Gaussian approximation of the same +crystal. The crystal is much larger than the detector pixels, and the largest +scattering angles exceed 60 degrees, making radial spot elongation from the +projection geometry visible. + +Seven Gaussians approximate the tetrahedron: one isotropic Gaussian at its +centre and six prolate Gaussians along its edges. The Gaussian model uses a +small orientation spread. + +The comparison shows similar peak positions and shapes. The Gaussian model +also produces additional weak peaks because its rotational integration uses +a Gaussian time window, whereas the tetrahedral model uses a top-hat time +window. + +.. figure:: ../_static/single_crystal_quartz.png + :alt: Quartz diffraction patterns from tetrahedral and Gaussian models. + :align: center + :width: 100% + + Comparison of the tetrahedral crystal model with a seven-Gaussian + approximation during a one-degree sample rotation. + +High-resolution rocking curve +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +A second test resolves a rocking curve and checks the shape of the resulting +three-dimensional reciprocal-space map. The workflow figure compares the +simulated profiles with the expected contributions from grain size and +misorientation. + +.. figure:: ../_static/testing_rocking_curves.png + :alt: Reciprocal-space map and profiles from a high-resolution rocking scan. + :align: center + :width: 100% + + High-resolution rocking-curve test showing the reciprocal-space map and + the contributions of grain size and misorientation to the simulated + profiles. + +References +---------- + +.. [Kerbl2023] Kerbl, B., Kopanas, G., Leimkühler, T. and Drettakis, G. + (2023). 3D Gaussian Splatting for Real-Time Radiance Field Rendering. + *ACM Transactions on Graphics*, **42**\ (4). + `doi:10.1145/3592433 `_. + +.. [Brehm2023] Brehm, W., White, T. and Chapman, H. N. (2023). + Crystal diffraction prediction and partiality estimation using Gaussian + basis functions. *Acta Crystallographica Section A: Foundations and + Advances*, **79**, 145–162. + `doi:10.1107/S2053273323000682 + `_. + +.. [Poulsen2017] Poulsen, H. F., Jakobsen, A. C., Simons, H., Ahl, S. R., + Cook, P. K. and Detlefs, C. (2017). X-ray diffraction microscopy based on + refractive optics. *Journal of Applied Crystallography*, **50**, 1441–1456. + `doi:10.1107/S1600576717011037 + `_. diff --git a/docs/source/index.rst b/docs/source/index.rst index 29d8fe8..61bc367 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -1,7 +1,3 @@ -.. toctree:: - :maxdepth: 2 - :caption: Contents: - .. include:: ../../README.rst ====================================== @@ -50,16 +46,16 @@ motion :members: :inherited-members: -templates +gaussian_crystal_model ====================================== -.. automodule:: xrd_simulator.templates - :members: - :inherited-members: +.. automodule:: xrd_simulator.gaussian_crystal_model + :members: + :inherited-members: -laue +templates ====================================== -.. automodule:: xrd_simulator.laue +.. automodule:: xrd_simulator.templates :members: :inherited-members: diff --git a/xrd_simulator/gaussian_crystal_model.py b/xrd_simulator/gaussian_crystal_model.py index b3b9e6c..63997b3 100644 --- a/xrd_simulator/gaussian_crystal_model.py +++ b/xrd_simulator/gaussian_crystal_model.py @@ -1,22 +1,206 @@ -from scipy.spatial.transform import Rotation as R +r"""Gaussian subgrain models for polycrystalline X-ray diffraction simulation. + +Represent a polycrystal as a collection of subgrains with Gaussian real-space +density profiles and narrow Gaussian orientation distributions. Each subgrain +is defined by its crystallographic phase, centroid, shape tensor, mean lattice +orientation, misorientation tensor, and uniform strain tensor. Both the shape +and orientation spread may be anisotropic. + +:class:`GaussianSubgrain` describes an individual subgrain, while +:class:`GaussianPolycrystal` assembles subgrains and renders diffraction +patterns using a :class:`~xrd_simulator.beam.GaussianBeam` and a +:class:`~xrd_simulator.detector.Detector`. + +The forward model computes beam-subgrain intersections, reflection +partialities, and scattered-beam angular distributions. Illuminated subgrain +shapes are projected onto the detector and combined with mosaicity-induced +angular broadening to form two-dimensional Gaussian spots. These contributions +are rasterized and summed into a detector intensity image. Small sample +rotations during an exposure are approximated by additional Gaussian +orientation broadening. + +The module also supports rigid-body transformations of the polycrystal and +pole-figure rendering. + +Notes +----- +The current implementation supports single-phase polycrystals and assumes a +monochromatic, collimated incident beam. Orientation distributions are +approximated in the tangent space about each subgrain's mean orientation, +requiring small misorientations. Uniform strain modifies reciprocal-lattice +vectors, but strain-distribution broadening is not included within an +individual subgrain. A distribution of strains can instead be approximated by +combining appropriately weighted diffraction patterns from subgrain +populations with different uniform strain tensors. + +.. seealso:: + + :doc:`Gaussian model: theory and references ` + Scattering geometry, Gaussian orientation distributions, reciprocal-space + maps, model assumptions, illustrative tests, and references. + +Examples +-------- +Simulate a static diffraction pattern from 2000 Gaussian quartz subgrains with +random positions, orientations, shapes, and anisotropic orientation spreads. + +Run the example from the repository root with ``xrd_simulator`` installed, so +that ``tests/data/quartz.cif`` is available. Real-space lengths are in +micrometres, the wavelength and unit-cell lengths are in angstroms, and +unit-cell angles are in degrees. Orientation-spread parameters are in radians. + +First, define the beam, detector, and crystallographic phase: + +.. code-block:: python + + import numpy as np + import matplotlib.pyplot as plt + from scipy.spatial.transform import Rotation as R + + from xrd_simulator.beam import GaussianBeam + from xrd_simulator.detector import Detector + from xrd_simulator.phase import Phase + from xrd_simulator.gaussian_crystal_model import ( + GaussianSubgrain, + GaussianPolycrystal, + ) + + rng = np.random.default_rng(0) + + gaussian_beam = GaussianBeam( + xray_propagation_direction=np.array([1.0, 0.0, 0.0]), + beam_centroid_position=np.array([0.0, 0.0, 0.0]), + wavelength=0.28523, + polarization_vector=np.array([0.0, 1.0, 0.0]), + long_axis_width=300.0, + long_axis_direction=np.array([0.0, 0.0, 1.0]), + short_axis_width=50.0, + short_axis_direction=np.array([0.0, 1.0, 0.0]), + ) + + detector = Detector( + det_corner_0=np.array([142938.3, -38400.0, -38400.0]), + det_corner_1=np.array([142938.3, 38400.0, -38400.0]), + det_corner_2=np.array([142938.3, -38400.0, 38400.0]), + pixel_size=(25.0, 25.0), + gaussian_sigma=1.0, + max_gaussian_kernel_radius=5, + ) + + quartz = Phase( + unit_cell=[4.926, 4.926, 5.4189, 90.0, 90.0, 120.0], + sgname="P3221", + path_to_cif_file="tests/data/quartz.cif", + ) + +Next, build the polycrystal. The helper generates a symmetric positive-definite +width tensor with a randomly oriented symmetry axis. Its eigenvalues are +``axis_1**2``, ``axis_1**2``, and ``axis_2**2``. Shape-width parameters range +from 50 to 200 micrometres, and misorientation-width parameters range from +0.01 to 0.03 radians. The distinction between these width parameters and +standard deviations is explained on the theory page. + +.. code-block:: python + + def make_random_tensor(axis_1, axis_2): + random_direction = rng.normal(size=3) + random_direction /= np.linalg.norm(random_direction) + return ( + axis_1**2 * np.eye(3) + + (axis_2**2 - axis_1**2) + * np.outer(random_direction, random_direction) + ) + + grain_list = [] + + for _ in range(2000): + position = rng.uniform(-500.0, 500.0, size=3) + shape_tensor = make_random_tensor( + rng.uniform(50.0, 200.0), + rng.uniform(50.0, 200.0), + ) + orientation = R.random(random_state=rng).as_matrix() + misorientation_tensor = make_random_tensor( + rng.uniform(0.01, 0.03), + rng.uniform(0.01, 0.03), + ) + + grain_list.append( + GaussianSubgrain( + phase=quartz, + position=position, + shape_tensor=shape_tensor, + orientation=orientation, + misorientation_tensor=misorientation_tensor, + strain_tensor=np.zeros((3, 3)), + ) + ) + + gaussian_polycrystal = GaussianPolycrystal( + grain_list, + max_misorientation=0.03, + max_grain_size=200.0, + ) + +Compute a diffraction pattern without sample rotation during the exposure: + +.. code-block:: python + + f = gaussian_polycrystal.diffract( + beam=gaussian_beam, + detector=detector, + verbose=True, + threshold=10.0, + ) + +Finally, plot the full detector image and a magnified region on the same +logarithmic intensity scale: + +.. code-block:: python + + log_intensity = np.log10(f.detach().cpu().numpy() + 1e-10) + + fig, axs = plt.subplots( + 1, 3, + figsize=(8, 4), + gridspec_kw={"width_ratios": (1, 1, 0.1)}, + constrained_layout=True, + ) + axs[0].imshow(log_intensity, cmap="jet", vmin=3, vmax=6) + img = axs[1].imshow(log_intensity, cmap="jet", vmin=3, vmax=6) + axs[0].set_title("Full detector") + axs[1].set_title("Magnified region") + axs[1].set_xlim(1500, 2200) + axs[1].set_ylim(2200, 1500) + fig.colorbar(img, cax=axs[2], label=r"$\log_{10}(I + 10^{-10})$") + plt.show() + +.. figure:: ../_static/many_crystals_quartz.png + :alt: Simulated quartz diffraction pattern and a magnified detector region. + :align: center + :width: 100% + + Representative output from the Gaussian workflow. The precise spot pattern + depends on the random subgrain realization. This image is retained from the + original workflow and need not match the seeded realization above exactly. +""" + +import time + import numpy as np import numpy.typing as npt import torch from torch import Tensor +from xfab.tools import form_b_mat -from xrd_simulator.phase import Phase -from xrd_simulator.utils import ensure_torch -from xrd_simulator.detector import Detector -from xrd_simulator.laue import _get_diffraction_arcsegment, _project_misorientation_tensor from xrd_simulator.beam import GaussianBeam +from xrd_simulator.detector import Detector +from xrd_simulator.laue import _get_diffraction_arcsegment from xrd_simulator.motion import RigidBodyMotion +from xrd_simulator.phase import Phase from xrd_simulator.scattering_factors import _polarization +from xrd_simulator.utils import ensure_torch -from xfab.tools import form_b_mat, genhkl_base -from xfab import sg - - -import time class GaussianSubgrain: """A `subgrain` has a 3D-gaussian density distribution and a narrow (<=0.1 rad) 3D @@ -33,21 +217,28 @@ class GaussianSubgrain: orientation : torch.Tensor | np.array Orientation of the centroid of the ODF as a rotation matrix, shape ``(3, 3,)`` misorientation_tensor : torch.Tensor | np.array - Covariance tensor of the grain orientation in the left-hand tangent space. + Covariance tensor of the grain orientation in the left-hand tangent space. aka. laboratory coordinates, shape ``(3, 3,)`` strain_tensor : torch.Tensor | np.array Strain tensor in laboratory coordinates, shape ``(3, 3,)`` """ - def __init__(self, + def __init__( + self, phase: Phase, - position: npt.NDArray | Tensor = np.array([0, 0, 0]), + position: npt.NDArray | Tensor = np.array([0, 0, 0]), shape_tensor: npt.NDArray | Tensor = np.eye(3), - orientation: npt.NDArray | Tensor = np.eye(3), # 3by3 Rotation matrix. - misorientation_tensor: npt.NDArray | Tensor = 0.0175**2 * np.eye(3), # Default one degree isotropic - strain_tensor: npt.NDArray | Tensor = np.zeros((3, 3,)), + orientation: npt.NDArray | Tensor = np.eye(3), # 3by3 Rotation matrix. + misorientation_tensor: npt.NDArray | Tensor = 0.0175**2 + * np.eye(3), # Default one degree isotropic + strain_tensor: npt.NDArray | Tensor = np.zeros( + ( + 3, + 3, + ) + ), ): - + self.phase = phase self.position = position self.shape_tensor = shape_tensor @@ -55,36 +246,53 @@ def __init__(self, self.misorientation_tensor = misorientation_tensor self.strain_tensor = strain_tensor + class GaussianPolycrystal: - """ Colection of ``GaussianSubgrain`` object representing a polycrystalline sample. + """Colection of ``GaussianSubgrain`` object representing a polycrystalline sample. Variables ``max_grain_size`` and ``max_misorientation`` can be supplied to speed up diffraction calculations. """ - def __init__(self, + def __init__( + self, grain_list: list[GaussianSubgrain], max_grain_size: float = 1000.0, - max_misorientation: float = 0.1, + max_misorientation: float = 0.1, ): - + phases_list = list(set([grain.phase for grain in grain_list])) n_phases = len(phases_list) if not n_phases == 1: - raise NotImplementedError('Multi-phase object has not been implemented yet.') + raise NotImplementedError( + "Multi-phase object has not been implemented yet." + ) self.n_grains = len(grain_list) self.max_grain_size = max_grain_size self.max_misorientation = max_misorientation self.phase = phases_list[0] - self.positions = torch.stack([ensure_torch(grain.position) for grain in grain_list]) - self.shape_concentration_tensors = torch.stack([ensure_torch(np.linalg.inv(grain.shape_tensor)) for grain in grain_list]) + self.positions = torch.stack( + [ensure_torch(grain.position) for grain in grain_list] + ) + self.shape_concentration_tensors = torch.stack( + [ensure_torch(np.linalg.inv(grain.shape_tensor)) for grain in grain_list] + ) - self.orientaions = torch.stack([ensure_torch(grain.orientation) for grain in grain_list]) - self.misori_concentration_tensors = torch.stack([ensure_torch(np.linalg.inv(grain.misorientation_tensor)) for grain in grain_list]) - - self.strains = torch.stack([ensure_torch(grain.strain_tensor) for grain in grain_list]) + self.orientaions = torch.stack( + [ensure_torch(grain.orientation) for grain in grain_list] + ) + self.misori_concentration_tensors = torch.stack( + [ + ensure_torch(np.linalg.inv(grain.misorientation_tensor)) + for grain in grain_list + ] + ) + + self.strains = torch.stack( + [ensure_torch(grain.strain_tensor) for grain in grain_list] + ) def diffract( self, @@ -94,10 +302,10 @@ def diffract( sample_translation: npt.NDArray | Tensor = np.zeros(3), sample_rotation_during_exposure: npt.NDArray | Tensor = np.zeros(3), verbose=False, - threshold = 6.0, - peaks_batch_size = 20000, + threshold=6.0, + peaks_batch_size=20000, ): - """ Render a single diffraction pattern. + """Render a single diffraction pattern. Parameters ---------- @@ -123,79 +331,121 @@ def diffract( wavelength = beam.wavelength sample_orientation = ensure_torch(sample_orientation) sample_rotation_during_exposure = ensure_torch(sample_rotation_during_exposure) - + # Rotate detector and incident beam by inverse of sample-rotation. - xray_propagation_direction = torch.einsum('ij,i->j', sample_orientation, ensure_torch(xray_propagation_direction) ) - detector_origin = detector.pixel_coordinates[0,0] + xray_propagation_direction = torch.einsum( + "ij,i->j", sample_orientation, ensure_torch(xray_propagation_direction) + ) + detector_origin = detector.pixel_coordinates[0, 0] W = np.stack([detector.zdhat, detector.ydhat]) - detector_norm = torch.einsum('ij,i->j', sample_orientation, ensure_torch(np.cross(W[0,:], W[1,:]))) - detector_origin = torch.einsum('ij,i->j', sample_orientation, ensure_torch(detector_origin)) - W = torch.einsum('ij,ui->uj', sample_orientation, ensure_torch(W)) + detector_norm = torch.einsum( + "ij,i->j", sample_orientation, ensure_torch(np.cross(W[0, :], W[1, :])) + ) + detector_origin = torch.einsum( + "ij,i->j", sample_orientation, ensure_torch(detector_origin) + ) + W = torch.einsum("ij,ui->uj", sample_orientation, ensure_torch(W)) pixellengths = torch.tensor([detector.pixel_size_y, detector.pixel_size_z]) - #Compute intersection of grains and beam - intersection_pos, intersection_shape_concentration_tensors, beam_intensity_factors, grains_hit\ - = beam._intersect( + # Compute intersection of grains and beam + ( + intersection_pos, + intersection_shape_concentration_tensors, + beam_intensity_factors, + grains_hit, + ) = beam._intersect( ensure_torch(self.positions), ensure_torch(self.shape_concentration_tensors), sample_orientation, sample_translation, self.max_grain_size, - threshold = threshold, + threshold=threshold, ) if verbose: - print(f'Beam-grain intersection took {time.time()-t0}.') + print(f"Beam-grain intersection took {time.time() - t0}.") t0 = time.time() # Simulate sample-rotation by adding a rotation to the grain misorientation sample_rotation_during_exposure = ensure_torch(sample_rotation_during_exposure) - rotation_vector = torch.einsum('ij,i->j', sample_orientation, sample_rotation_during_exposure) + rotation_vector = torch.einsum( + "ij,i->j", sample_orientation, sample_rotation_during_exposure + ) smeared_misorientation_tensors = torch.linalg.inv( - torch.linalg.inv(self.misori_concentration_tensors[grains_hit]) + torch.outer(rotation_vector, rotation_vector)) + torch.linalg.inv(self.misori_concentration_tensors[grains_hit]) + + torch.outer(rotation_vector, rotation_vector) + ) - #Construct some crystal and geometry information. + # Construct some crystal and geometry information. B = torch.Tensor(form_b_mat(self.phase.unit_cell)) - max_angle = detector._get_wrapping_cone(xray_propagation_direction, np.mean([0, 0, 0])) - self.phase._setup_diffracting_planes(wavelength=wavelength, min_bragg_angle=0.0, max_bragg_angle=max_angle+0.1) - + max_angle = detector._get_wrapping_cone( + xray_propagation_direction, np.mean([0, 0, 0]) + ) + self.phase._setup_diffracting_planes( + wavelength=wavelength, min_bragg_angle=0.0, max_bragg_angle=max_angle + 0.1 + ) + # Get miller indicies and structure factors miller_indices = torch.Tensor(self.phase.miller_indices) if self.phase.structure_factors is not None: - structure_factors = torch.sum(ensure_torch(self.phase.structure_factors) ** 2, axis=1) + structure_factors = torch.sum( + ensure_torch(self.phase.structure_factors) ** 2, axis=1 + ) miller_indices = miller_indices[structure_factors > 1e-6] structure_factors = structure_factors[structure_factors > 1e-6] else: # If no structure factors provided, use uniform intensity (all ones) structure_factors = torch.ones(miller_indices.shape[0]) - + # Get scattering vectors and scattering angle. - h = torch.einsum('ij,hj->hi', B, miller_indices) - p_vectors = torch.einsum('ghi,gij,kj->gkh', torch.eye(3)[None,:,:] - self.strains[grains_hit], self.orientaions[grains_hit], h) + h = torch.einsum("ij,hj->hi", B, miller_indices) + p_vectors = torch.einsum( + "ghi,gij,kj->gkh", + torch.eye(3)[None, :, :] - self.strains[grains_hit], + self.orientaions[grains_hit], + h, + ) p_vectors_norm = torch.linalg.norm(p_vectors, axis=-1) - theta_angle = torch.asin( p_vectors_norm * wavelength / 4 / np.pi ) + theta_angle = torch.asin(p_vectors_norm * wavelength / 4 / np.pi) # Filter out reflections far from the bragg-condition - dp = torch.einsum('i,ghi->gh', xray_propagation_direction, p_vectors) / p_vectors_norm - does_diffract = torch.abs( dp + torch.sin(theta_angle) ) \ - < threshold * (self.max_misorientation + torch.linalg.norm(sample_rotation_during_exposure)) #IDEA: Consider a per-gaussian max misorientation. + dp = ( + torch.einsum("i,ghi->gh", xray_propagation_direction, p_vectors) + / p_vectors_norm + ) + does_diffract = torch.abs(dp + torch.sin(theta_angle)) < threshold * ( + self.max_misorientation + torch.linalg.norm(sample_rotation_during_exposure) + ) # IDEA: Consider a per-gaussian max misorientation. # Exception if no grains diffract. if not torch.any(does_diffract): return torch.zeros(detector.shape) # Select the relevant reflections and flatten the grain- and hkl-indexes. - grain_does_diffract, hkl_does_diffract = torch.where(does_diffract) # Don't ask me what this line does - misori_concentration_tensors = smeared_misorientation_tensors[grain_does_diffract] + grain_does_diffract, hkl_does_diffract = torch.where( + does_diffract + ) # Don't ask me what this line does + misori_concentration_tensors = smeared_misorientation_tensors[ + grain_does_diffract + ] p_vectors = p_vectors[does_diffract] - shape_concentration_tensors = intersection_shape_concentration_tensors[grain_does_diffract] + shape_concentration_tensors = intersection_shape_concentration_tensors[ + grain_does_diffract + ] if verbose: - print(f'Bragg-condition filterin took {time.time()-t0}. ({does_diffract.shape[0]*does_diffract.shape[1]} -> {torch.sum(does_diffract)})') + print( + f"Bragg-condition filterin took {time.time() - t0}. ({does_diffract.shape[0] * does_diffract.shape[1]} -> {torch.sum(does_diffract)})" + ) t0 = time.time() # Find the parameters of the scattered rays. - mean_scattering_directions, log_partialities, normalization_factors, outgoing_beam_divergence_tensor = _get_diffraction_arcsegment( + ( + mean_scattering_directions, + log_partialities, + normalization_factors, + outgoing_beam_divergence_tensor, + ) = _get_diffraction_arcsegment( p_vectors, misori_concentration_tensors, xray_propagation_direction, @@ -203,60 +453,111 @@ def diffract( ) if verbose: - print(f'Reciprocal space part took {time.time()-t0}') + print(f"Reciprocal space part took {time.time() - t0}") t0 = time.time() # Splat grain realspace shapes (#NOTE Consider using the non-strained non-azimuthally shifted directions to simplify gradients) - detectorspace_grainshape_projections, projected_thicknes_scale_factors = self.splat_grainshapes( - mean_scattering_directions, shape_concentration_tensors, W, pixellengths,) + detectorspace_grainshape_projections, projected_thicknes_scale_factors = ( + self.splat_grainshapes( + mean_scattering_directions, + shape_concentration_tensors, + W, + pixellengths, + ) + ) if verbose: - print(f'Realspace proj took {time.time()-t0}') + print(f"Realspace proj took {time.time() - t0}") t0 = time.time() # Ray-trace onto detector plane pos = intersection_pos[grain_does_diffract] - ray_lengths = torch.einsum('xi,i->x', detector_origin[None, :] - pos, detector_norm) / torch.einsum('xi,i->x', mean_scattering_directions, detector_norm) - point_of_detector_intersection = pos + ray_lengths[:,None] * mean_scattering_directions - uv_coords = torch.einsum('xi,vi,v->xv',point_of_detector_intersection - detector_origin[None, :], W, 1/pixellengths) + ray_lengths = torch.einsum( + "xi,i->x", detector_origin[None, :] - pos, detector_norm + ) / torch.einsum("xi,i->x", mean_scattering_directions, detector_norm) + point_of_detector_intersection = ( + pos + ray_lengths[:, None] * mean_scattering_directions + ) + uv_coords = torch.einsum( + "xi,vi,v->xv", + point_of_detector_intersection - detector_origin[None, :], + W, + 1 / pixellengths, + ) # Smearing due to angular divergence of the scattered beam. - W_scaled = W * 1 / pixellengths[:, None] #TODO I think this assumes orthorgonal pixel directions. - divergence_smearing_tensor = torch.einsum('ui,xij,vj->xuv', W_scaled, outgoing_beam_divergence_tensor * ray_lengths[:, None, None]**2, W_scaled) - detspace_splat_concentration = torch.linalg.inv( torch.linalg.inv(detectorspace_grainshape_projections) + divergence_smearing_tensor) - intensity_spread_out_factor = torch.sqrt( torch.linalg.det(detspace_splat_concentration) / torch.linalg.det(detectorspace_grainshape_projections) ) + W_scaled = ( + W * 1 / pixellengths[:, None] + ) # TODO I think this assumes orthorgonal pixel directions. + divergence_smearing_tensor = torch.einsum( + "ui,xij,vj->xuv", + W_scaled, + outgoing_beam_divergence_tensor * ray_lengths[:, None, None] ** 2, + W_scaled, + ) + detspace_splat_concentration = torch.linalg.inv( + torch.linalg.inv(detectorspace_grainshape_projections) + + divergence_smearing_tensor + ) + intensity_spread_out_factor = torch.sqrt( + torch.linalg.det(detspace_splat_concentration) + / torch.linalg.det(detectorspace_grainshape_projections) + ) # Collect all intensity modifying factors - polarization_factors = _polarization(mean_scattering_directions, beam.polarization_vector) - solid_angle_factor = torch.abs(torch.einsum('xi,i->x',mean_scattering_directions, detector_norm)) - scalefactors = structure_factors[hkl_does_diffract] * projected_thicknes_scale_factors * np.exp(log_partialities) * normalization_factors * intensity_spread_out_factor\ - * beam_intensity_factors[grain_does_diffract]*polarization_factors*solid_angle_factor + polarization_factors = _polarization( + mean_scattering_directions, beam.polarization_vector + ) + solid_angle_factor = torch.abs( + torch.einsum("xi,i->x", mean_scattering_directions, detector_norm) + ) + scalefactors = ( + structure_factors[hkl_does_diffract] + * projected_thicknes_scale_factors + * np.exp(log_partialities) + * normalization_factors + * intensity_spread_out_factor + * beam_intensity_factors[grain_does_diffract] + * polarization_factors + * solid_angle_factor + ) # Discard reflections too far out on the rocking curve. - does_diffract = log_partialities > - 1 * threshold + does_diffract = log_partialities > -1 * threshold if verbose: - print(f'Raytracing took {time.time()-t0}') + print(f"Raytracing took {time.time() - t0}") t0 = time.time() n_batches = torch.sum(does_diffract) // peaks_batch_size + 1 f = torch.zeros(detector.shape) for peaks_batch in range(n_batches): - f += detector.render_gaussian_splats( - uv_coords[does_diffract][peaks_batch*peaks_batch_size:(peaks_batch+1)*peaks_batch_size], - scalefactors[does_diffract][peaks_batch*peaks_batch_size:(peaks_batch+1)*peaks_batch_size], - detspace_splat_concentration[does_diffract][peaks_batch*peaks_batch_size:(peaks_batch+1)*peaks_batch_size], - threshold + log_partialities[does_diffract][peaks_batch*peaks_batch_size:(peaks_batch+1)*peaks_batch_size], + uv_coords[does_diffract][ + peaks_batch * peaks_batch_size : (peaks_batch + 1) + * peaks_batch_size + ], + scalefactors[does_diffract][ + peaks_batch * peaks_batch_size : (peaks_batch + 1) + * peaks_batch_size + ], + detspace_splat_concentration[does_diffract][ + peaks_batch * peaks_batch_size : (peaks_batch + 1) + * peaks_batch_size + ], + threshold + + log_partialities[does_diffract][ + peaks_batch * peaks_batch_size : (peaks_batch + 1) + * peaks_batch_size + ], ) if verbose: - print(f'Rasterization took {time.time()-t0}') + print(f"Rasterization took {time.time() - t0}") t0 = time.time() return f - def splat_grainshapes( self, @@ -265,7 +566,7 @@ def splat_grainshapes( W: Tensor, pixellengths: Tensor, ): - """ Project the labratory space shape-concentration-tensors of a range of grains along a the scattering directions + """Project the labratory space shape-concentration-tensors of a range of grains along a the scattering directions into 2D detector pixels space. Parameters @@ -278,39 +579,50 @@ def splat_grainshapes( Pixel-direction unit vectors stacked, shape ``(2, 3)`` pixellengths : Tensor Pixel lengths, shape ``(2, 3)`` - + Returns ------- projected_shape_pixelunits : Tensor - Concentarion tensor of the projected grainshape in detector pixel units, shape ``(N, 2, 2)`` + Concentarion tensor of the projected grainshape in detector pixel units, shape ``(N, 2, 2)`` projected_thicknes_scale_factors : Tensor Intensity scaling factor due the projected thickness of the grain, shape ``(N,)`` """ # grain_volume = torch.sqrt(1/torch.linalg.det(shape_concentration_tensors)) - dSd = torch.einsum('xi,xij,xj->x', mean_scattering_directions, shape_concentration_tensors, mean_scattering_directions) - - inner_term = shape_concentration_tensors - torch.einsum( - 'xij,xj,xk,xkl->xil', - shape_concentration_tensors, - mean_scattering_directions, + dSd = torch.einsum( + "xi,xij,xj->x", mean_scattering_directions, shape_concentration_tensors, - ) / dSd[:, None, None] - + mean_scattering_directions, + ) + + inner_term = ( + shape_concentration_tensors + - torch.einsum( + "xij,xj,xk,xkl->xil", + shape_concentration_tensors, + mean_scattering_directions, + mean_scattering_directions, + shape_concentration_tensors, + ) + / dSd[:, None, None] + ) + W_scaled = W * pixellengths[:, None] projected_shape_pixelunits = torch.einsum( - 'ui,xij,vj->xuv', W_scaled, inner_term, W_scaled, + "ui,xij,vj->xuv", + W_scaled, + inner_term, + W_scaled, ) - return projected_shape_pixelunits, 1/torch.sqrt(dSd) - + return projected_shape_pixelunits, 1 / torch.sqrt(dSd) def transform( - self, - rigid_body_motion : RigidBodyMotion, - time : float = 1.0, - ): + self, + rigid_body_motion: RigidBodyMotion, + time: float = 1.0, + ): """Transform the polycrystal by performing a rigid body motion. This updates all the sample-information in-place. @@ -331,19 +643,27 @@ def transform( translation_vector = rigid_body_motion.translation * time # Rotate vectors: - self.positions = torch.einsum('ij,gj->gi', Rot_mat, self.positions-rigid_body_motion.origin[None,:])+rigid_body_motion.origin[None,:] + self.positions = ( + torch.einsum( + "ij,gj->gi", Rot_mat, self.positions - rigid_body_motion.origin[None, :] + ) + + rigid_body_motion.origin[None, :] + ) # Rotate lattices - self.orientaions = torch.einsum('ij,gjk->gik', Rot_mat, self.orientaions) + self.orientaions = torch.einsum("ij,gjk->gik", Rot_mat, self.orientaions) - #Rotate tensors - self.shape_concentration_tensors = torch.einsum('ij,gjk,lk ->gil', Rot_mat, self.shape_concentration_tensors, Rot_mat) - self.misori_concentration_tensors = torch.einsum('ij,gjk,lk ->gil', Rot_mat, self.misori_concentration_tensors, Rot_mat) - self.strains = torch.einsum('ij,gjk,lk ->gil', Rot_mat, self.strains, Rot_mat) - - #Translate - self.positions = self.positions + translation_vector[None, :] + # Rotate tensors + self.shape_concentration_tensors = torch.einsum( + "ij,gjk,lk ->gil", Rot_mat, self.shape_concentration_tensors, Rot_mat + ) + self.misori_concentration_tensors = torch.einsum( + "ij,gjk,lk ->gil", Rot_mat, self.misori_concentration_tensors, Rot_mat + ) + self.strains = torch.einsum("ij,gjk,lk ->gil", Rot_mat, self.strains, Rot_mat) + # Translate + self.positions = self.positions + translation_vector[None, :] # ------------------------------------------------------------------------------------------ # The methods below here are for computing polefigures, not needed for diffraction patterns. @@ -355,38 +675,48 @@ def render_polefigure( both_hemispheres: bool = False, max_misorientation: float = 0.1, ): - + # Make coordinate arrays if both_hemispheres: - polar, azim = np.meshgrid(np.linspace(0, np.pi, int(180//resolution_in_degrees)+1), - np.linspace(0, 2*np.pi, int(360//resolution_in_degrees)+1)) + polar, azim = np.meshgrid( + np.linspace(0, np.pi, int(180 // resolution_in_degrees) + 1), + np.linspace(0, 2 * np.pi, int(360 // resolution_in_degrees) + 1), + ) else: - polar, azim = np.meshgrid(np.linspace(0, np.pi/2, int(90//resolution_in_degrees)+1), - np.linspace(0, 2*np.pi, int(360//resolution_in_degrees)+1)) - - y_map = torch.tensor(np.stack([ - np.sin(polar) * np.cos(azim), - np.sin(polar) * np.sin(azim), - np.cos(polar) - ], axis=-1)) - + polar, azim = np.meshgrid( + np.linspace(0, np.pi / 2, int(90 // resolution_in_degrees) + 1), + np.linspace(0, 2 * np.pi, int(360 // resolution_in_degrees) + 1), + ) + + y_map = torch.tensor( + np.stack( + [ + np.sin(polar) * np.cos(azim), + np.sin(polar) * np.sin(azim), + np.cos(polar), + ], + axis=-1, + ) + ) + p, scale, T_proj = self.splat_onto_polefigure(hkl) patch_size = 16 - + f = self.rasterize_on_unitvector_map( y_map, p, scale, T_proj, - max_angle= 3*max_misorientation + (resolution_in_degrees*np.pi/180)*patch_size/2, + max_angle=3 * max_misorientation + + (resolution_in_degrees * np.pi / 180) * patch_size / 2, ) return f, polar, azim def splat_onto_polefigure( - self, - hkl: tuple[int], - ): + self, + hkl: tuple[int], + ): # A = form_a_mat(self.phase.unit_cell) # WARNING! xfab uses non-compatible A- and B-matrices. The B-matrix is considered the correct one. # B = 2 * np.pi * np.linalg.inv(A).T @@ -394,7 +724,7 @@ def splat_onto_polefigure( h = torch.tensor(B @ hkl) h = h / torch.linalg.norm(h) - levi_cita_symbol = np.zeros((3,3,3)) + levi_cita_symbol = np.zeros((3, 3, 3)) levi_cita_symbol[0, 1, 2] = 1 levi_cita_symbol[1, 2, 0] = 1 levi_cita_symbol[2, 0, 1] = 1 @@ -405,69 +735,91 @@ def splat_onto_polefigure( # TODO reduce the number of symmetries evaluated for low-multiplicity peaks n_symmetries = len(self.phase.rot) - + volumes = torch.sqrt(torch.linalg.det(self.shape_concentration_tensors)) - p_vectors = torch.einsum('gij,sjk,k->gsi', self.orientaions, ensure_torch(self.phase.rot), h) - + p_vectors = torch.einsum( + "gij,sjk,k->gsi", self.orientaions, ensure_torch(self.phase.rot), h + ) + # This is the trick: - pTp = torch.einsum('gsi,gij,gsj->gs', p_vectors, self.misori_concentration_tensors, p_vectors) - inner_part = self.misori_concentration_tensors[:, None, :, :] - torch.einsum( - 'gij,gsj,gsk,gkl->gsil', - self.misori_concentration_tensors, - p_vectors, - p_vectors, - self.misori_concentration_tensors, - ) / pTp[:, :, None, None] + pTp = torch.einsum( + "gsi,gij,gsj->gs", p_vectors, self.misori_concentration_tensors, p_vectors + ) + inner_part = ( + self.misori_concentration_tensors[:, None, :, :] + - torch.einsum( + "gij,gsj,gsk,gkl->gsil", + self.misori_concentration_tensors, + p_vectors, + p_vectors, + self.misori_concentration_tensors, + ) + / pTp[:, :, None, None] + ) projected_misorientation = torch.einsum( - 'gsj,ijk,gsil,lmn,gsm->gskn', + "gsj,ijk,gsil,lmn,gsm->gskn", p_vectors, levi_cita_symbol, inner_part, levi_cita_symbol, p_vectors, ) - - scale = 1 / n_symmetries / torch.sum(volumes) * volumes[:, None] * 2 * torch.sqrt(torch.linalg.det(self.misori_concentration_tensors))[:, None] / np.sqrt( pTp ) + + scale = ( + 1 + / n_symmetries + / torch.sum(volumes) + * volumes[:, None] + * 2 + * torch.sqrt(torch.linalg.det(self.misori_concentration_tensors))[:, None] + / np.sqrt(pTp) + ) return p_vectors, scale, projected_misorientation - + def rasterize_on_unitvector_map( self, - y : Tensor, - p : Tensor, - scale : Tensor, - T_proj : Tensor, + y: Tensor, + p: Tensor, + scale: Tensor, + T_proj: Tensor, max_angle: float, patch_size: int = 16, ): - + shape = y.shape[:2] min_dp = np.cos(max_angle) - n_patches_dim1 = (shape[0]-1)//patch_size+1 - n_patches_dim2 = (shape[1]-1)//patch_size+1 + n_patches_dim1 = (shape[0] - 1) // patch_size + 1 + n_patches_dim2 = (shape[1] - 1) // patch_size + 1 # Rasterization f = torch.zeros(shape) for patch_index_1 in range(n_patches_dim1): for patch_index_2 in range(n_patches_dim2): - # Figure out what splat lie in this pole figure patch - y_patch = y[patch_size*patch_index_1:patch_size*(patch_index_1+1), - patch_size*patch_index_2:patch_size*(patch_index_2+1)] + y_patch = y[ + patch_size * patch_index_1 : patch_size * (patch_index_1 + 1), + patch_size * patch_index_2 : patch_size * (patch_index_2 + 1), + ] patch_mean = torch.mean(y_patch, axis=(0, 1)) patch_mean_y = patch_mean / torch.linalg.norm(patch_mean) - include_index = torch.abs(torch.einsum('gsj,j->gs', p, patch_mean_y)) > min_dp - # If none, continue + include_index = ( + torch.abs(torch.einsum("gsj,j->gs", p, patch_mean_y)) > min_dp + ) + # If none, continue if not torch.any(include_index): continue # Evaluate gaussians - arg = -torch.einsum('pai,xij,paj->xpa', y_patch, T_proj[include_index], y_patch) + arg = -torch.einsum( + "pai,xij,paj->xpa", y_patch, T_proj[include_index], y_patch + ) vals = torch.exp(arg) * scale[include_index, np.newaxis, np.newaxis] - - f[patch_size*patch_index_1:patch_size*(patch_index_1+1), - patch_size*patch_index_2:patch_size*(patch_index_2+1)]\ - += torch.sum(vals, axis=0) + + f[ + patch_size * patch_index_1 : patch_size * (patch_index_1 + 1), + patch_size * patch_index_2 : patch_size * (patch_index_2 + 1), + ] += torch.sum(vals, axis=0) return f
      -
    • - xrd_simulator.laue + xrd_simulator.gaussian_crystal_model
    • diff --git a/docs/index.html b/docs/index.html index 2a7dac4..bf7f243 100644 --- a/docs/index.html +++ b/docs/index.html @@ -19,6 +19,7 @@ + @@ -124,6 +125,7 @@
    • Beam.load()
    • +
    • GaussianBeam
    • detector
    • @@ -171,13 +174,30 @@ +
    • gaussian_crystal_model +
    • templates
    • -
    • laue
    • @@ -206,9 +226,7 @@
      -
      -
      -https://github.com/FABLE-3DXRD/xrd_simulator/blob/main/docs/source/images/logo.png?raw=true + https://github.com/FABLE-3DXRD/xrd_simulator/blob/main/docs/source/images/logo.png?raw=true https://img.shields.io/pypi/pyversions/xrd-simulator.svg? https://github.com/FABLE-3DXRD/xrd_simulator/actions/workflows/python-package-run-tests-linux-py313.yml/badge.svg? @@ -582,7 +600,7 @@

      Documentation
      -diffract(beam: Beam, rigid_body_motion: RigidBodyMotion, min_bragg_angle: float = 0, max_bragg_angle: float = 1.5707963267948966, detector: Detector | None = None, verbose: bool = True) → Dict[str, Tensor | list][source]
      +diffract(beam: Beam, rigid_body_motion: RigidBodyMotion, min_bragg_angle: float = 0, max_bragg_angle: float = 1.5707963267948966, detector: Detector | None = None, verbose: bool = True) → dict[str, Tensor | list][source]

      Compute diffraction from the rotating and translating polycrystal.

      Simulates diffraction while the sample is illuminated by an X-ray beam. Returns peaks that can be rendered on a detector.

      @@ -1264,6 +1282,30 @@

      Documentation +
      +class xrd_simulator.beam.GaussianBeam(beam_centroid_position, xray_propagation_direction, wavelength, polarization_vector, long_axis_width=None, long_axis_direction=None, short_axis_width=None, short_axis_direction=None)[source]
      +

      Represents a monochromatic X-ray beam with a 2D gaussian cross-section.

      +
      +
      Parameters:
      +
        +
      • beam_centroid_position (torch.Tensor or numpy.ndarray) – A point on the center-line of the beam. (3,).

      • +
      • xray_propagation_direction (torch.Tensor or numpy.ndarray) – Propagation direction of X-rays, shape (3,).

      • +
      • wavelength (float) – X-ray wavelength in units of angstrom.

      • +
      • polarization_vector (torch.Tensor or numpy.ndarray) – Beam linear polarization unit vector, shape (3,). Must be +orthogonal to the X-ray propagation direction.

      • +
      • long_axis_width (float) – Width of the beam along the longest direction.

      • +
      • long_axis_direction (torch.Tensor or numpy.ndarray) – Direction of the major-axis of the beam, shape (3,). Must be +orthogonal to the X-ray propagation direction. If not given, the +beam is assumed circular with a width given by long_axis_width.

      • +
      • long_axis_width – Width of the beam along the shortest direction.

      • +
      • long_axis_direction – Direction of the minor-axis of the beam, shape (3,). Must be +orthogonal to the X-ray propagation direction.

      • +
      +
      +
      +
      +

      detector

      @@ -1660,6 +1702,32 @@

      Documentation +
      +render_gaussian_splats(uv_corrds: Tensor, scale_factors: Tensor, concentration_tensors: Tensor, threshold: Tensor, patch_size: int = 32)[source]
      +

      Basic 2D Gaussian rasterizer. Each gaussian has the expression:

      +
      +\[f = s \exp(-[u-u_0, v-v_0] S [u-u_0, v-v_0]^T).\]
      +
      +
      Parameters:
      +
        +
      • uv_corrds (Tensor) – Centroid pixel coordinates, shape (N, 2)

      • +
      • scale_factors (Tensor) – Intensity scale factors, shape (N,)

      • +
      • concentration_tensors (Tensor) – Shape concentration tensors, shape (N, 2, 2)

      • +
      • threshold (Tensor, shape (N,)) – Per gaussian threshold value used to truncate the Gaussians. Gaussians are set to zero +when the value falls bellow scale_factors*torch.exp(-theshold).

      • +
      • patch_size (int) – For evaluation the detector is split into patches of shize patch_size by patch_size.

      • +
      +
      +
      Returns:
      +

      detector_image – Detector image, shape self.shape.

      +
      +
      Return type:
      +

      Tensor

      +
      +
      +
      +
      peaks_detector_intersection(peaks_dict: Dict[str, Tensor | List[str]], frames_to_render: int = 1, verbose: bool = True) → Dict[str, Tensor | List[str]][source]
      @@ -1984,6 +2052,320 @@

      Documentation +

      gaussian_crystal_model

      +

      Gaussian subgrain models for polycrystalline X-ray diffraction simulation.

      +

      Represent a polycrystal as a collection of subgrains with Gaussian real-space +density profiles and narrow Gaussian orientation distributions. Each subgrain +is defined by its crystallographic phase, centroid, shape tensor, mean lattice +orientation, misorientation tensor, and uniform strain tensor. Both the shape +and orientation spread may be anisotropic.

      +

      GaussianSubgrain describes an individual subgrain, while +GaussianPolycrystal assembles subgrains and renders diffraction +patterns using a GaussianBeam and a +Detector.

      +

      The forward model computes beam-subgrain intersections, reflection +partialities, and scattered-beam angular distributions. Illuminated subgrain +shapes are projected onto the detector and combined with mosaicity-induced +angular broadening to form two-dimensional Gaussian spots. These contributions +are rasterized and summed into a detector intensity image. Small sample +rotations during an exposure are approximated by additional Gaussian +orientation broadening.

      +

      The module also supports rigid-body transformations of the polycrystal and +pole-figure rendering.

      +

      Notes

      +

      The current implementation supports single-phase polycrystals and assumes a +monochromatic, collimated incident beam. Orientation distributions are +approximated in the tangent space about each subgrain’s mean orientation, +requiring small misorientations. Uniform strain modifies reciprocal-lattice +vectors, but strain-distribution broadening is not included within an +individual subgrain. A distribution of strains can instead be approximated by +combining appropriately weighted diffraction patterns from subgrain +populations with different uniform strain tensors.

      +
      +

      See also

      +
      +
      Gaussian model: theory and references

      Scattering geometry, Gaussian orientation distributions, reciprocal-space +maps, model assumptions, illustrative tests, and references.

      +
      +
      +
      +

      Examples

      +

      Simulate a static diffraction pattern from 2000 Gaussian quartz subgrains with +random positions, orientations, shapes, and anisotropic orientation spreads.

      +

      Run the example from the repository root with xrd_simulator installed, so +that tests/data/quartz.cif is available. Real-space lengths are in +micrometres, the wavelength and unit-cell lengths are in angstroms, and +unit-cell angles are in degrees. Orientation-spread parameters are in radians.

      +

      First, define the beam, detector, and crystallographic phase:

      +
      import numpy as np
      +import matplotlib.pyplot as plt
      +from scipy.spatial.transform import Rotation as R
      +
      +from xrd_simulator.beam import GaussianBeam
      +from xrd_simulator.detector import Detector
      +from xrd_simulator.phase import Phase
      +from xrd_simulator.gaussian_crystal_model import (
      +    GaussianSubgrain,
      +    GaussianPolycrystal,
      +)
      +
      +rng = np.random.default_rng(0)
      +
      +gaussian_beam = GaussianBeam(
      +    xray_propagation_direction=np.array([1.0, 0.0, 0.0]),
      +    beam_centroid_position=np.array([0.0, 0.0, 0.0]),
      +    wavelength=0.28523,
      +    polarization_vector=np.array([0.0, 1.0, 0.0]),
      +    long_axis_width=300.0,
      +    long_axis_direction=np.array([0.0, 0.0, 1.0]),
      +    short_axis_width=50.0,
      +    short_axis_direction=np.array([0.0, 1.0, 0.0]),
      +)
      +
      +detector = Detector(
      +    det_corner_0=np.array([142938.3, -38400.0, -38400.0]),
      +    det_corner_1=np.array([142938.3, 38400.0, -38400.0]),
      +    det_corner_2=np.array([142938.3, -38400.0, 38400.0]),
      +    pixel_size=(25.0, 25.0),
      +    gaussian_sigma=1.0,
      +    max_gaussian_kernel_radius=5,
      +)
      +
      +quartz = Phase(
      +    unit_cell=[4.926, 4.926, 5.4189, 90.0, 90.0, 120.0],
      +    sgname="P3221",
      +    path_to_cif_file="tests/data/quartz.cif",
      +)
      +
      +
      +

      Next, build the polycrystal. The helper generates a symmetric positive-definite +width tensor with a randomly oriented symmetry axis. Its eigenvalues are +axis_1**2, axis_1**2, and axis_2**2. Shape-width parameters range +from 50 to 200 micrometres, and misorientation-width parameters range from +0.01 to 0.03 radians. The distinction between these width parameters and +standard deviations is explained on the theory page.

      +
      def make_random_tensor(axis_1, axis_2):
      +    random_direction = rng.normal(size=3)
      +    random_direction /= np.linalg.norm(random_direction)
      +    return (
      +        axis_1**2 * np.eye(3)
      +        + (axis_2**2 - axis_1**2)
      +        * np.outer(random_direction, random_direction)
      +    )
      +
      +grain_list = []
      +
      +for _ in range(2000):
      +    position = rng.uniform(-500.0, 500.0, size=3)
      +    shape_tensor = make_random_tensor(
      +        rng.uniform(50.0, 200.0),
      +        rng.uniform(50.0, 200.0),
      +    )
      +    orientation = R.random(random_state=rng).as_matrix()
      +    misorientation_tensor = make_random_tensor(
      +        rng.uniform(0.01, 0.03),
      +        rng.uniform(0.01, 0.03),
      +    )
      +
      +    grain_list.append(
      +        GaussianSubgrain(
      +            phase=quartz,
      +            position=position,
      +            shape_tensor=shape_tensor,
      +            orientation=orientation,
      +            misorientation_tensor=misorientation_tensor,
      +            strain_tensor=np.zeros((3, 3)),
      +        )
      +    )
      +
      +gaussian_polycrystal = GaussianPolycrystal(
      +    grain_list,
      +    max_misorientation=0.03,
      +    max_grain_size=200.0,
      +)
      +
      +
      +

      Compute a diffraction pattern without sample rotation during the exposure:

      +
      f = gaussian_polycrystal.diffract(
      +    beam=gaussian_beam,
      +    detector=detector,
      +    verbose=True,
      +    threshold=10.0,
      +)
      +
      +
      +

      Finally, plot the full detector image and a magnified region on the same +logarithmic intensity scale:

      +
      log_intensity = np.log10(f.detach().cpu().numpy() + 1e-10)
      +
      +fig, axs = plt.subplots(
      +    1, 3,
      +    figsize=(8, 4),
      +    gridspec_kw={"width_ratios": (1, 1, 0.1)},
      +    constrained_layout=True,
      +)
      +axs[0].imshow(log_intensity, cmap="jet", vmin=3, vmax=6)
      +img = axs[1].imshow(log_intensity, cmap="jet", vmin=3, vmax=6)
      +axs[0].set_title("Full detector")
      +axs[1].set_title("Magnified region")
      +axs[1].set_xlim(1500, 2200)
      +axs[1].set_ylim(2200, 1500)
      +fig.colorbar(img, cax=axs[2], label=r"$\log_{10}(I + 10^{-10})$")
      +plt.show()
      +
      +
      +
      +Simulated quartz diffraction pattern and a magnified detector region. + +
      +

      Representative output from the Gaussian workflow. The precise spot pattern +depends on the random subgrain realization. This image is retained from the +original workflow and need not match the seeded realization above exactly.

      +
      +
      +
      +
      +class xrd_simulator.gaussian_crystal_model.GaussianSubgrain(phase: Phase, position: ndarray[Any, dtype[_ScalarType_co]] | Tensor = array([0, 0, 0]), shape_tensor: ndarray[Any, dtype[_ScalarType_co]] | Tensor = array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]]), orientation: ndarray[Any, dtype[_ScalarType_co]] | Tensor = array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]]), misorientation_tensor: ndarray[Any, dtype[_ScalarType_co]] | Tensor = array([[0.00030625, 0., 0.], [0., 0.00030625, 0.], [0., 0., 0.00030625]]), strain_tensor: ndarray[Any, dtype[_ScalarType_co]] | Tensor = array([[0., 0., 0.], [0., 0., 0.], [0., 0., 0.]]))[source]
      +

      A subgrain has a 3D-gaussian density distribution and a narrow (<=0.1 rad) 3D +orientation distribution function.

      +
      +
      +phase[source]
      +

      Object representing the crystal structure of the grain.

      +
      +
      Type:
      +

      Phase

      +
      +
      +
      + +
      +
      +position[source]
      +

      Position of the grain centroid, shape (3,)

      +
      +
      Type:
      +

      torch.Tensor | np.array

      +
      +
      +
      + +
      +
      +shape_tensor[source]
      +

      Covariance tensor of the real-space grain shape. (3, 3,).

      +
      +
      Type:
      +

      torch.Tensor | np.array

      +
      +
      +
      + +
      +
      +orientation[source]
      +

      Orientation of the centroid of the ODF as a rotation matrix, shape (3, 3,)

      +
      +
      Type:
      +

      torch.Tensor | np.array

      +
      +
      +
      + +
      +
      +misorientation_tensor[source]
      +

      Covariance tensor of the grain orientation in the left-hand tangent space. +aka. laboratory coordinates, shape (3, 3,)

      +
      +
      Type:
      +

      torch.Tensor | np.array

      +
      +
      +
      + +
      +
      +strain_tensor[source]
      +

      Strain tensor in laboratory coordinates, shape (3, 3,)

      +
      +
      Type:
      +

      torch.Tensor | np.array

      +
      +
      +
      + +
      + +
      +
      +class xrd_simulator.gaussian_crystal_model.GaussianPolycrystal(grain_list: list[GaussianSubgrain], max_grain_size: float = 1000.0, max_misorientation: float = 0.1)[source]
      +

      Colection of GaussianSubgrain object representing a polycrystalline sample. +Variables max_grain_size and max_misorientation can be supplied to speed up +diffraction calculations.

      +
      +
      +diffract(beam: GaussianBeam, detector: Detector, sample_orientation: ndarray[Any, dtype[_ScalarType_co]] | Tensor = array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]]), sample_translation: ndarray[Any, dtype[_ScalarType_co]] | Tensor = array([0., 0., 0.]), sample_rotation_during_exposure: ndarray[Any, dtype[_ScalarType_co]] | Tensor = array([0., 0., 0.]), verbose=False, threshold=6.0, peaks_batch_size=20000)[source]
      +

      Render a single diffraction pattern.

      +
      +
      Parameters:
      +
        +
      • beam (GaussianBeam) – Object representing the x-ray beam hitting the crystal.

      • +
      • detector (Detector) – Object representing the x-ray detector.

      • +
      • sample_orientation (NDArray, optional) – 3-by-3 Rotation matrix representing the orientation of the sample

      • +
      • sample_translation (NDArray, optional) – 3-vector prepresenting the translation of the sample. (the sample is first +rotated about the origin, then translated)

      • +
      • sample_rotation_during_exposure (NDArray, optional) – 3-vector representing a small rotation carried out during the measurement

      • +
      • verbose (bool, optional) – If True print timing information. Default is False.

      • +
      +
      +
      +
      + +
      +
      +splat_grainshapes(mean_scattering_directions: Tensor, shape_concentration_tensors: Tensor, W: Tensor, pixellengths: Tensor)[source]
      +

      Project the labratory space shape-concentration-tensors of a range of grains along a the scattering directions +into 2D detector pixels space.

      +
      +
      Parameters:
      +
        +
      • mean_scattering_directions (Tensor) – Scattering direction unit vectors, shape (N, 3)

      • +
      • shape_concentration_tensors (Tensor) – Shape concentration tensors in laboratory coordinates, shape (N, 3, 3)

      • +
      • W (Tensor) – Pixel-direction unit vectors stacked, shape (2, 3)

      • +
      • pixellengths (Tensor) – Pixel lengths, shape (2, 3)

      • +
      +
      +
      Returns:
      +

        +
      • projected_shape_pixelunits (Tensor) – Concentarion tensor of the projected grainshape in detector pixel units, shape (N, 2, 2)

      • +
      • projected_thicknes_scale_factors (Tensor) – Intensity scaling factor due the projected thickness of the grain, shape (N,)

      • +
      +

      +
      +
      +
      + +
      +
      +transform(rigid_body_motion: RigidBodyMotion, time: float = 1.0)[source]
      +

      Transform the polycrystal by performing a rigid body motion.

      +

      This updates all the sample-information in-place.

      +
      +
      Parameters:
      +
        +
      • rigid_body_motion (RigidBodyMotion) – Rigid body motion object describing the polycrystal transformation +as a function of time on the domain time=[0, 1].

      • +
      • time (float) – Time between [0, 1] at which to call the rigid body motion.

      • +
      +
      +
      +
      + +
      +

      templates

      @@ -2222,13 +2604,6 @@

      Documentation -

      laue

      -

      Collection of functions for solving time-dependent Laue equations.

      -

      This module provides functions for arbitrary rigid body motions. It is mainly -used internally by the xrd_simulator.polycrystal.Polycrystal. However, -for the advanced user, access to these functions may be of interest.

      diff --git a/docs/objects.inv b/docs/objects.inv index cc264cf23c10d0ab9cf7b49bc82e40bdc8154690..30ad94179c57f5098d93bddfec5976c6abbefbcd 100644 GIT binary patch delta 1792 zcmV+b2mko!3Fi)wdw;c>&2OYO6u|HN6-dpYmFiJ8IaJ!)?nX)@ZPaM9QhT!;>;X5% zrnX6D^4Is7uQALp!9Y$)fcJaPkN0Jhou=6EycEPLy?J6JkBj~1T+vdn_%h~_vfU=L zx%j2NhAv_h?T&;tUmM9p5M$y`zTg>&O~Rzric=>_tkwLfw0~^6ct*t56eMA0CO{}s z>CTzW6rCQ1sv#3w& zp{^F9wwmODk$-s%Nt+nK&kT$bYtal(bFvUtTZC<|xLU|91!A#Zh=*iy4~T(qYdv42Y$IoT~lyscoyTc{b`TTS%d zSRycV(z@UVwb|2{uGc>(v2X57?!VKK8_KuPb`m>1rUKwqxZ_m2&YzJYWMT`@Vl|Ow z3-xz3`eXT28NHUnTizz;MrjURr>;_#NfVfYQ#E;NK7?On#ITPcE5kp`>?#aD((h1T z;l~^eFn{`G!NtP~ZGJLPdf$joir2o_ygliV;l_(40IIf2#96xtvxu?{-dYa{QqhI- zZjxMPgC>-h%Mhl>m|n@LFG`g8GPkA-c33dGVs{;HwaT$zu#+|{pmn{^3_n^JFvB(_ z17TU_PcSa3EoOq{;QB=_(+cW8n{7n7Hb;NkIj)65IUXDW_i* z-QRbZX@&Hp_y*&I2!U~^`9~lwU)&aOF()uAPeWj)NO@Ra9w7yX<{69|q=-xfTg|YF zxZ`FGU|<%VhRn&P^Q6%EsvGx$lB<&1JhZZtGRl*IaajoF&OvDKk*$v@h|RE7IN@8o z<$r;J;)6^oNxndQu=k$7qEd2;6DGnAoQnQdGVE1)8?HH9(h>O?`_C~_(=u`8C!CXF zu5WtOu);Y;sRj%|o>nobf*Fz*p^-eo^LM0c+2}J@G_`uSW))OeVIHN_+r72i*5Fq3 z*o?yw%W`*a(+t5OMWU00(b{4tQcf{0)PJix1U)QjTgv)Od#WM+>gqXN(d|5vxu&~% zpE@o}BuSK{1g<-cO}qS6a9QqRB59n%ee+vvEd2~`o{1Rs7_B_=VJ#` z+l(o_Z;k4(sC^81Sk%XU@vOLg*NUk6m_O!^CTjbE;a>NXW?6o9d38N`6;3MQjR|A= zF5+*^BT=IAf@oNZj9qlxRk|HRl#l zKM{4Gk%Rq9RZ`~N8ynYj<3AU5L4Q{{;B#Diph^tQwoEhWM#8B+>te0Ch3Z>XGJ3Gv zDJlOP(f8y^uPX2*5eb9Pq-UnM+g5mFV%DXV;v4G{s(EYk8hgM z-}%Nh_1K$R49LaTH=C%}p2lm(o%a~XK+B+I@~+I`vFMrUClTBPpr4x6%tAVxDLzY8FB1A<9l zLk)k>ItBgR!(?Ee(Rtgj#E;|rR=1k~0tdB&WIN(L4q1_b-jEEce|@d#z4iSElCsFO zeRx;(VLI%?#jp?4&1f#REL5?O$3l*Ud=^vzbWLZC0Y;TNVbh9T{cOM9Js!(PmdMo2 iFm-s50-|l_nn_47^cbkm_&Lsx4reUEMecuDJWV~zYJ}7P delta 1148 zcmV-?1cUqM4(JJxdw;E&!H%Rh5QgtOg{ABvIe>OEx4mUEmz6S7D;p`fSsvRo)*2hx zW`^#kPhp@Nx}gVSPBR1kzbco@D<>tYPG3vSYRS=OBoyOKR=86B z(mhK*p)_gkMA^4qNhPrseHjZMC^E{GGg`1#N}My|wRU{Hyni4vw-uq>ZUjh8yzP>^ zLbLU{N=stInK+>pe&ZD0ZuG#CH@?LK%N=h20_(|285>gb9f z0ORgrH7HjHVfH*CtjgItWk$7fM5utk-!tF|rrIcO@aIhtm_>cr5A}N_DmSDI%&&XM zk<``-qVP`+PJhY0XjU9c5((=(!mcpf7Fx1MTv$Dt(;KL$XPlGZO?eMf+LR};Z6GuGptd#5v#g!CFEc;s=1^cGi>E(i1S4d~&8OD@IiE*g=cOaqO+O{m36PT9s z5N+Ur3QNg(QgCWMz_cwGQAf#lbIcPPVfO$A?xK0fmfiH2)aUr>*;NIx;Vq3@F@MM&72KM)%WpdD?K7&CaF}u#b_s-A z%ZZwkb=~DLY$>nW>@el5Th@7f#zdYQh{pQNULy5JCiZc{C8@T?WfCjdwcmfX71>!Ut7BiDy%RsQlOxU{leDcc8r)W_&HoD*3Z>( zuzx;$x(O;07bUdT4nvV@4dY6`GpOR%N#(WbzB8?LWIVgBPuDEpMzT+=>F%k^TA~Qm ziV=9;TI`R@U!_oWgNS0Ng!lG0WF7koE6*iLCyYU#j`gXRryx(g9Q`qG<*$pC7jI?B zn|Cm%--EsAWlPro?Wu|XkJA#mPk?ER+kePW(e3#~qNa z!TvB!>vAYW4=g>8$0cwt^lztv;i=c4@9nS2br@KhQqhmj6OR5%4LPCb{-A3eX;T=D zcBus&dV0>1$zm+K`+YPFG;l*_HT_U?9hUeHRKd~oU#P-Wn$1MBI;F#lE?h5Np>^rv z+F#~^ZFOyGxJ*=NRp?>hWILe)C?~5i?ys77N~pHCuH~j zK#n}ILvl7gIoWM;R=3H?vc>5Ptkkp85i4z3>6iu4OP|=LyEs@~6!Z~LE diff --git a/docs/py-modindex.html b/docs/py-modindex.html index cc701cb..d1310f5 100644 --- a/docs/py-modindex.html +++ b/docs/py-modindex.html @@ -101,7 +101,7 @@

      Python Module Index

          - xrd_simulator.laue + xrd_simulator.gaussian_crystal_model