Update html

This commit is contained in:
Sylvain Tricot 2025-07-16 14:14:28 +02:00
parent f704dae1ba
commit 7f33daf856
15 changed files with 233 additions and 31 deletions

View File

@ -1,4 +1,4 @@
# Sphinx build info version 1 # Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: d64285b76259d47aa1d35d9bc7e7829a config: 0b896abf2c995b3493312dcbe0e8b47f
tags: 645f666f9bcd5a90fca523b33c5a78b7 tags: 645f666f9bcd5a90fca523b33c5a78b7

View File

@ -516,7 +516,7 @@ document.write(`
<!--Inserting Generated X3D Scene--> <!--Inserting Generated X3D Scene-->
<scene> <scene>
<viewpoint position="0 0 28.28000000000003"> <viewpoint position="0 0 28.28">
<group/> <group/>
</viewpoint> </viewpoint>
<transform translation="-0.8837500000000003 -2.220446049250313e-16 -3.002"> <transform translation="-0.8837500000000003 -2.220446049250313e-16 -3.002">
@ -884,7 +884,7 @@ document.write(`
<sphere radius="1.2"/> <sphere radius="1.2"/>
</shape> </shape>
</transform> </transform>
<transform translation="-7.070000000000022 0.0 4.6629367034256575e-15"> <transform translation="-7.070000000000007 0.0 4.6629367034256575e-15">
<shape> <shape>
<appearance> <appearance>
<material diffuseColor="0.749 0.761 0.78"/> <material diffuseColor="0.749 0.761 0.78"/>
@ -892,7 +892,7 @@ document.write(`
<sphere radius="1.6"/> <sphere radius="1.6"/>
</shape> </shape>
</transform> </transform>
<transform translation="-7.070000000000022 2.040933201585325 1.724999999999999"> <transform translation="-7.070000000000007 2.040933201585325 1.724999999999999">
<shape> <shape>
<appearance> <appearance>
<material diffuseColor="1.0 0.631 0.0"/> <material diffuseColor="1.0 0.631 0.0"/>
@ -948,7 +948,7 @@ document.write(`
<sphere radius="1.2"/> <sphere radius="1.2"/>
</shape> </shape>
</transform> </transform>
<transform translation="-1.7674999999999983 3.0613998023779985 4.6629367034256575e-15"> <transform translation="-1.7675000000000125 3.0613998023779985 4.6629367034256575e-15">
<shape> <shape>
<appearance> <appearance>
<material diffuseColor="0.749 0.761 0.78"/> <material diffuseColor="0.749 0.761 0.78"/>
@ -956,7 +956,7 @@ document.write(`
<sphere radius="1.6"/> <sphere radius="1.6"/>
</shape> </shape>
</transform> </transform>
<transform translation="-1.7674999999999983 5.102333003963331 1.724999999999999"> <transform translation="-1.7675000000000125 5.102333003963331 1.724999999999999">
<shape> <shape>
<appearance> <appearance>
<material diffuseColor="1.0 0.631 0.0"/> <material diffuseColor="1.0 0.631 0.0"/>
@ -1004,7 +1004,7 @@ document.write(`
<sphere radius="1.6"/> <sphere radius="1.6"/>
</shape> </shape>
</transform> </transform>
<transform translation="-3.535000000000011 6.12279960475599 4.6629367034256575e-15"> <transform translation="-3.5349999999999966 6.12279960475599 4.6629367034256575e-15">
<shape> <shape>
<appearance> <appearance>
<material diffuseColor="0.749 0.761 0.78"/> <material diffuseColor="0.749 0.761 0.78"/>

View File

@ -418,7 +418,8 @@ document.write(`
</section> </section>
<section id="application-to-a-deep-plane-in-a-si-001-sample"> <section id="application-to-a-deep-plane-in-a-si-001-sample">
<h2>Application to a deep plane in a Si(001) sample<a class="headerlink" href="#application-to-a-deep-plane-in-a-si-001-sample" title="Link to this heading">#</a></h2> <h2>Application to a deep plane in a Si(001) sample<a class="headerlink" href="#application-to-a-deep-plane-in-a-si-001-sample" title="Link to this heading">#</a></h2>
<p>The following script will compute contribution of all the planes of a Si(001) substrate to get the total photoelectron intensity of a Si(2s) polar scan.</p> <p>The following script will compute the contribution of a Si(2p) atom in the 4<sup>th</sup> plane of a Si(001) cluster at scattering order 3.</p>
<p>Taking into account all scattering paths took 15 minutes to compute.</p>
<div class="admonition seealso" id="msd-paper"> <div class="admonition seealso" id="msd-paper">
<p class="admonition-title">See also</p> <p class="admonition-title">See also</p>
<p>based on this paper from S. Tricot <em>et al.</em> <p>based on this paper from S. Tricot <em>et al.</em>
@ -428,8 +429,139 @@ document.write(`
<input checked="checked" id="sd-tab-item-1" name="sd-tab-set-1" type="radio"> <input checked="checked" id="sd-tab-item-1" name="sd-tab-set-1" type="radio">
<label class="sd-tab-label" for="sd-tab-item-1"> <label class="sd-tab-label" for="sd-tab-item-1">
<i class="fa-solid fa-circle-question"></i> Quiz</label><div class="sd-tab-content docutils"> <i class="fa-solid fa-circle-question"></i> Quiz</label><div class="sd-tab-content docutils">
<p>The script is almost completed, try to define path filtering options and compare results with and without filtering for emitter in plane n° 3 at scattering order 2.</p> <p>The following script is almost completed, try to define path filtering options (no backscattering, accept all paths with forward angles &lt; 40° and reject paths longer than the diameter of the cluster).</p>
<p>Compute the contribution of plane n° 7</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="c1"># coding: utf8</span>
<span class="linenos"> 2</span>
<span class="linenos"> 3</span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="linenos"> 4</span><span class="kn">from</span><span class="w"> </span><span class="nn">ase.build</span><span class="w"> </span><span class="kn">import</span> <span class="n">bulk</span>
<span class="linenos"> 5</span>
<span class="linenos"> 6</span><span class="kn">from</span><span class="w"> </span><span class="nn">msspec.calculator</span><span class="w"> </span><span class="kn">import</span> <span class="n">MSSPEC</span><span class="p">,</span> <span class="n">XRaySource</span>
<span class="linenos"> 7</span><span class="kn">from</span><span class="w"> </span><span class="nn">msspec.iodata</span><span class="w"> </span><span class="kn">import</span> <span class="n">Data</span>
<span class="linenos"> 8</span><span class="kn">from</span><span class="w"> </span><span class="nn">msspec.utils</span><span class="w"> </span><span class="kn">import</span> <span class="n">hemispherical_cluster</span><span class="p">,</span> <span class="n">get_atom_index</span>
<span class="linenos"> 9</span>
<span class="linenos">10</span>
<span class="linenos">11</span><span class="c1"># Create the cluster</span>
<span class="linenos">12</span><span class="n">a</span> <span class="o">=</span> <span class="mf">5.43</span>
<span class="linenos">13</span><span class="n">Si</span> <span class="o">=</span> <span class="n">bulk</span><span class="p">(</span><span class="s1">&#39;Si&#39;</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="n">a</span><span class="p">,</span> <span class="n">cubic</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="linenos">14</span><span class="n">cluster</span> <span class="o">=</span> <span class="n">hemispherical_cluster</span><span class="p">(</span><span class="n">Si</span><span class="p">,</span>
<span class="linenos">15</span> <span class="n">diameter</span><span class="o">=</span><span class="mi">30</span><span class="p">,</span> <span class="n">planes</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span>
<span class="linenos">16</span> <span class="n">emitter_plane</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span>
<span class="linenos">17</span> <span class="n">shape</span> <span class="o">=</span> <span class="s1">&#39;cylindrical&#39;</span><span class="p">,</span>
<span class="linenos">18</span> <span class="p">)</span>
<span class="linenos">19</span><span class="k">for</span> <span class="n">atom</span> <span class="ow">in</span> <span class="n">cluster</span><span class="p">:</span>
<span class="linenos">20</span> <span class="n">atom</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s1">&#39;mean_square_vibration&#39;</span><span class="p">,</span> <span class="mf">0.006</span><span class="p">)</span>
<span class="linenos">21</span> <span class="n">atom</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s1">&#39;mt_radius&#39;</span><span class="p">,</span> <span class="mf">1.1</span><span class="p">)</span>
<span class="linenos">22</span><span class="n">cluster</span><span class="o">.</span><span class="n">emitter</span> <span class="o">=</span> <span class="n">get_atom_index</span><span class="p">(</span><span class="n">cluster</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
<span class="linenos">23</span>
<span class="linenos">24</span><span class="c1"># Create a calculator and set parameters</span>
<span class="linenos">25</span><span class="n">calc</span> <span class="o">=</span> <span class="n">MSSPEC</span><span class="p">(</span><span class="n">spectroscopy</span><span class="o">=</span><span class="s1">&#39;PED&#39;</span><span class="p">,</span> <span class="n">algorithm</span><span class="o">=</span><span class="s1">&#39;expansion&#39;</span><span class="p">)</span>
<span class="linenos">26</span>
<span class="linenos">27</span><span class="n">calc</span><span class="o">.</span><span class="n">source_parameters</span><span class="o">.</span><span class="n">energy</span> <span class="o">=</span> <span class="n">XRaySource</span><span class="o">.</span><span class="n">AL_KALPHA</span>
<span class="linenos">28</span><span class="n">calc</span><span class="o">.</span><span class="n">source_parameters</span><span class="o">.</span><span class="n">theta</span> <span class="o">=</span> <span class="o">-</span><span class="mf">54.7</span>
<span class="linenos">29</span><span class="n">calc</span><span class="o">.</span><span class="n">source_parameters</span><span class="o">.</span><span class="n">phi</span> <span class="o">=</span> <span class="mi">90</span>
<span class="linenos">30</span><span class="n">calc</span><span class="o">.</span><span class="n">spectroscopy_parameters</span><span class="o">.</span><span class="n">final_state</span> <span class="o">=</span> <span class="mi">1</span>
<span class="linenos">31</span>
<span class="linenos">32</span><span class="n">calc</span><span class="o">.</span><span class="n">calculation_parameters</span><span class="o">.</span><span class="n">scattering_order</span> <span class="o">=</span> <span class="mi">3</span>
<span class="linenos">33</span><span class="n">calc</span><span class="o">.</span><span class="n">tmatrix_parameters</span><span class="o">.</span><span class="n">tl_threshold</span> <span class="o">=</span> <span class="mf">1e-4</span>
<span class="linenos">34</span><span class="n">calc</span><span class="o">.</span><span class="n">calculation_parameters</span><span class="o">.</span><span class="n">vibrational_damping</span> <span class="o">=</span> <span class="s1">&#39;averaged_tl&#39;</span>
<span class="linenos">35</span><span class="n">calc</span><span class="o">.</span><span class="n">calculation_parameters</span><span class="o">.</span><span class="n">RA_cutoff</span> <span class="o">=</span> <span class="mi">2</span>
<span class="linenos">36</span>
<span class="hll"><span class="linenos">37</span><span class="c1"># Define path filtering options such that you only</span>
</span><span class="hll"><span class="linenos">38</span><span class="c1"># accept scattering paths with a forward cone &lt;= 40°</span>
</span><span class="hll"><span class="linenos">39</span><span class="c1"># and whose length are &lt;= cluster diameter</span>
</span><span class="hll"><span class="linenos">40</span><span class="c1">#</span>
</span><span class="hll"><span class="linenos">41</span><span class="c1">#</span>
</span><span class="linenos">42</span>
<span class="linenos">43</span><span class="n">calc</span><span class="o">.</span><span class="n">set_atoms</span><span class="p">(</span><span class="n">cluster</span><span class="p">)</span>
<span class="linenos">44</span>
<span class="linenos">45</span><span class="c1"># Compute and add previous data for comparison</span>
<span class="linenos">46</span><span class="n">data</span> <span class="o">=</span> <span class="n">calc</span><span class="o">.</span><span class="n">get_theta_scan</span><span class="p">(</span><span class="n">level</span><span class="o">=</span><span class="s1">&#39;2p&#39;</span><span class="p">,</span>
<span class="linenos">47</span> <span class="n">theta</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="o">-</span><span class="mf">30.</span><span class="p">,</span> <span class="mf">80.</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">),</span>
<span class="linenos">48</span> <span class="n">phi</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
<span class="linenos">49</span> <span class="n">kinetic_energy</span><span class="o">=</span><span class="mf">1382.28</span><span class="p">)</span>
<span class="linenos">50</span><span class="n">no_filters</span> <span class="o">=</span> <span class="n">Data</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s1">&#39;path_filtering.hdf5&#39;</span><span class="p">)</span>
<span class="linenos">51</span><span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">add_columns</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="s1">&#39;no_filters&#39;</span><span class="p">:</span> <span class="n">no_filters</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">cross_section</span><span class="p">})</span>
<span class="linenos">52</span><span class="n">view</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">views</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="linenos">53</span><span class="n">view</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s1">&#39;theta&#39;</span><span class="p">,</span> <span class="s1">&#39;cross_section&#39;</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">legend</span><span class="o">=</span><span class="s2">&quot;With path filtering&quot;</span><span class="p">)</span>
<span class="linenos">54</span><span class="n">view</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s1">&#39;theta&#39;</span><span class="p">,</span> <span class="s1">&#39;no_filters&#39;</span><span class="p">,</span> <span class="n">legend</span><span class="o">=</span><span class="s2">&quot;Without path filtering&quot;</span><span class="p">)</span>
<span class="linenos">55</span>
<span class="linenos">56</span><span class="n">data</span><span class="o">.</span><span class="n">view</span><span class="p">()</span>
</pre></div>
</div>
<ol class="arabic simple">
<li><p>How long was your calculation ?</p></li>
<li><p>How does it compare to the calculation with <strong>all</strong> scattering paths up to order 3 ?</p></li>
<li><p>What is the proportion of scattering paths of order 3 that were actually taken into account ?</p></li>
</ol>
</div>
</div>
<div class="toggle docutils container">
<p>The calculation took few seconds and the result is very close to the calculation with all scattering paths.</p>
<p>Only 0.01% of 3<sup>rd</sup> order paths were actually taken into account</p>
<figure class="align-default" id="si-fig">
<a class="reference internal image-reference" href="../_images/results.png"><img alt="Si polar scan" class="align-center" src="../_images/results.png" style="width: 600px;" />
</a>
<figcaption>
<p><span class="caption-number">Fig. 18 </span><span class="caption-text">Si(2p) polar scan (contribution of an emitter in the 4<sup>th</sup> plane with all 7 114 945 scattering paths taken into account (orange curve), and for only 1525 filtered paths (blue curve).</span><a class="headerlink" href="#si-fig" title="Link to this image">#</a></p>
</figcaption>
</figure>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="c1"># coding: utf8</span>
<span class="linenos"> 2</span>
<span class="linenos"> 3</span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="linenos"> 4</span><span class="kn">from</span><span class="w"> </span><span class="nn">ase.build</span><span class="w"> </span><span class="kn">import</span> <span class="n">bulk</span>
<span class="linenos"> 5</span>
<span class="linenos"> 6</span><span class="kn">from</span><span class="w"> </span><span class="nn">msspec.calculator</span><span class="w"> </span><span class="kn">import</span> <span class="n">MSSPEC</span><span class="p">,</span> <span class="n">XRaySource</span>
<span class="linenos"> 7</span><span class="kn">from</span><span class="w"> </span><span class="nn">msspec.iodata</span><span class="w"> </span><span class="kn">import</span> <span class="n">Data</span>
<span class="linenos"> 8</span><span class="kn">from</span><span class="w"> </span><span class="nn">msspec.utils</span><span class="w"> </span><span class="kn">import</span> <span class="n">hemispherical_cluster</span><span class="p">,</span> <span class="n">get_atom_index</span>
<span class="linenos"> 9</span>
<span class="linenos">10</span>
<span class="linenos">11</span><span class="c1"># Create the cluster</span>
<span class="linenos">12</span><span class="n">a</span> <span class="o">=</span> <span class="mf">5.43</span>
<span class="linenos">13</span><span class="n">Si</span> <span class="o">=</span> <span class="n">bulk</span><span class="p">(</span><span class="s1">&#39;Si&#39;</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="n">a</span><span class="p">,</span> <span class="n">cubic</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="linenos">14</span><span class="n">cluster</span> <span class="o">=</span> <span class="n">hemispherical_cluster</span><span class="p">(</span><span class="n">Si</span><span class="p">,</span>
<span class="linenos">15</span> <span class="n">diameter</span><span class="o">=</span><span class="mi">30</span><span class="p">,</span> <span class="n">planes</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span>
<span class="linenos">16</span> <span class="n">emitter_plane</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span>
<span class="linenos">17</span> <span class="n">shape</span> <span class="o">=</span> <span class="s1">&#39;cylindrical&#39;</span><span class="p">,</span>
<span class="linenos">18</span> <span class="p">)</span>
<span class="linenos">19</span><span class="k">for</span> <span class="n">atom</span> <span class="ow">in</span> <span class="n">cluster</span><span class="p">:</span>
<span class="linenos">20</span> <span class="n">atom</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s1">&#39;mean_square_vibration&#39;</span><span class="p">,</span> <span class="mf">0.006</span><span class="p">)</span>
<span class="linenos">21</span> <span class="n">atom</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s1">&#39;mt_radius&#39;</span><span class="p">,</span> <span class="mf">1.1</span><span class="p">)</span>
<span class="linenos">22</span><span class="n">cluster</span><span class="o">.</span><span class="n">emitter</span> <span class="o">=</span> <span class="n">get_atom_index</span><span class="p">(</span><span class="n">cluster</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
<span class="linenos">23</span>
<span class="linenos">24</span><span class="c1"># Create a calculator and set parameters</span>
<span class="linenos">25</span><span class="n">calc</span> <span class="o">=</span> <span class="n">MSSPEC</span><span class="p">(</span><span class="n">spectroscopy</span><span class="o">=</span><span class="s1">&#39;PED&#39;</span><span class="p">,</span> <span class="n">algorithm</span><span class="o">=</span><span class="s1">&#39;expansion&#39;</span><span class="p">)</span>
<span class="linenos">26</span>
<span class="linenos">27</span><span class="n">calc</span><span class="o">.</span><span class="n">source_parameters</span><span class="o">.</span><span class="n">energy</span> <span class="o">=</span> <span class="n">XRaySource</span><span class="o">.</span><span class="n">AL_KALPHA</span>
<span class="linenos">28</span><span class="n">calc</span><span class="o">.</span><span class="n">source_parameters</span><span class="o">.</span><span class="n">theta</span> <span class="o">=</span> <span class="o">-</span><span class="mf">54.7</span>
<span class="linenos">29</span><span class="n">calc</span><span class="o">.</span><span class="n">source_parameters</span><span class="o">.</span><span class="n">phi</span> <span class="o">=</span> <span class="mi">90</span>
<span class="linenos">30</span><span class="n">calc</span><span class="o">.</span><span class="n">spectroscopy_parameters</span><span class="o">.</span><span class="n">final_state</span> <span class="o">=</span> <span class="mi">1</span>
<span class="linenos">31</span>
<span class="linenos">32</span><span class="n">calc</span><span class="o">.</span><span class="n">calculation_parameters</span><span class="o">.</span><span class="n">scattering_order</span> <span class="o">=</span> <span class="mi">3</span>
<span class="linenos">33</span><span class="n">calc</span><span class="o">.</span><span class="n">tmatrix_parameters</span><span class="o">.</span><span class="n">tl_threshold</span> <span class="o">=</span> <span class="mf">1e-4</span>
<span class="linenos">34</span><span class="n">calc</span><span class="o">.</span><span class="n">calculation_parameters</span><span class="o">.</span><span class="n">vibrational_damping</span> <span class="o">=</span> <span class="s1">&#39;averaged_tl&#39;</span>
<span class="linenos">35</span><span class="n">calc</span><span class="o">.</span><span class="n">calculation_parameters</span><span class="o">.</span><span class="n">RA_cutoff</span> <span class="o">=</span> <span class="mi">2</span>
<span class="linenos">36</span>
<span class="hll"><span class="linenos">37</span><span class="n">my_filters</span> <span class="o">=</span> <span class="p">(</span><span class="s1">&#39;forward_scattering&#39;</span><span class="p">,</span> <span class="s1">&#39;distance_cutoff&#39;</span><span class="p">)</span>
</span><span class="hll"><span class="linenos">38</span><span class="n">calc</span><span class="o">.</span><span class="n">calculation_parameters</span><span class="o">.</span><span class="n">path_filtering</span> <span class="o">=</span> <span class="n">my_filters</span>
</span><span class="hll"><span class="linenos">39</span><span class="n">calc</span><span class="o">.</span><span class="n">calculation_parameters</span><span class="o">.</span><span class="n">distance</span> <span class="o">=</span> <span class="mi">30</span>
</span><span class="hll"><span class="linenos">40</span><span class="n">calc</span><span class="o">.</span><span class="n">calculation_parameters</span><span class="o">.</span><span class="n">off_cone_events</span> <span class="o">=</span> <span class="mi">0</span>
</span><span class="hll"><span class="linenos">41</span><span class="p">[</span><span class="n">a</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s1">&#39;forward_angle&#39;</span><span class="p">,</span> <span class="mi">40</span><span class="p">)</span> <span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">cluster</span><span class="p">]</span>
</span><span class="linenos">42</span>
<span class="linenos">43</span><span class="n">calc</span><span class="o">.</span><span class="n">set_atoms</span><span class="p">(</span><span class="n">cluster</span><span class="p">)</span>
<span class="linenos">44</span>
<span class="linenos">45</span><span class="c1"># Compute and add previous data for comparison</span>
<span class="linenos">46</span><span class="n">data</span> <span class="o">=</span> <span class="n">calc</span><span class="o">.</span><span class="n">get_theta_scan</span><span class="p">(</span><span class="n">level</span><span class="o">=</span><span class="s1">&#39;2p&#39;</span><span class="p">,</span>
<span class="linenos">47</span> <span class="n">theta</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="o">-</span><span class="mf">30.</span><span class="p">,</span> <span class="mf">80.</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">),</span>
<span class="linenos">48</span> <span class="n">phi</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
<span class="linenos">49</span> <span class="n">kinetic_energy</span><span class="o">=</span><span class="mf">1382.28</span><span class="p">)</span>
<span class="linenos">50</span><span class="n">no_filters</span> <span class="o">=</span> <span class="n">Data</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s1">&#39;path_filtering.hdf5&#39;</span><span class="p">)</span>
<span class="linenos">51</span><span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">add_columns</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="s1">&#39;no_filters&#39;</span><span class="p">:</span> <span class="n">no_filters</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">cross_section</span><span class="p">})</span>
<span class="linenos">52</span><span class="n">view</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">views</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="linenos">53</span><span class="n">view</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s1">&#39;theta&#39;</span><span class="p">,</span> <span class="s1">&#39;cross_section&#39;</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">legend</span><span class="o">=</span><span class="s2">&quot;With path filtering&quot;</span><span class="p">)</span>
<span class="linenos">54</span><span class="n">view</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s1">&#39;theta&#39;</span><span class="p">,</span> <span class="s1">&#39;no_filters&#39;</span><span class="p">,</span> <span class="n">legend</span><span class="o">=</span><span class="s2">&quot;Without path filtering&quot;</span><span class="p">)</span>
<span class="linenos">55</span>
<span class="linenos">56</span><span class="n">data</span><span class="o">.</span><span class="n">view</span><span class="p">()</span>
</pre></div>
</div> </div>
</div> </div>
</section> </section>

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

View File

@ -878,7 +878,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.11.3" "version": "3.11.13"
} }
}, },
"nbformat": 4, "nbformat": 4,

View File

@ -133,7 +133,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.11.3" "version": "3.11.13"
} }
}, },
"nbformat": 4, "nbformat": 4,

View File

@ -103,7 +103,8 @@
":::{figure-md} filters-fig\n", ":::{figure-md} filters-fig\n",
"<img src=\"filters.jpg\" alt=\"path filtering\" width=\"600px\" align=\"center\">\n", "<img src=\"filters.jpg\" alt=\"path filtering\" width=\"600px\" align=\"center\">\n",
"\n", "\n",
"Some examples of scattering paths with `forward_scattering`, `backward_scattering` and `distance` filters selected. The accepted forward angle is 45°, the accepted backscattering angle is 20° and the threshold distance is $6a_0$ where $a_0$ is the lattice parameter. Note that the yellow path is rejected but if the `off_cone_events` option is set to a value > 1, then it could have been accepted." "Some examples of scattering paths with `forward_scattering`, `backward_scattering` and `distance` filters selected. The accepted forward angle is 45°, the accepted backscattering angle is 20° and the threshold distance is $6a_0$ where $a_0$ is the lattice parameter. Note that the yellow path is rejected but if the `off_cone_events` option is set to a value > 1, then it could have been accepted.\n",
":::"
] ]
}, },
{ {
@ -113,7 +114,9 @@
"source": [ "source": [
"## Application to a deep plane in a Si(001) sample\n", "## Application to a deep plane in a Si(001) sample\n",
"\n", "\n",
"The following script will compute contribution of all the planes of a Si(001) substrate to get the total photoelectron intensity of a Si(2s) polar scan. \n", "The following script will compute the contribution of a Si(2p) atom in the 4{sup}`th` plane of a Si(001) cluster at scattering order 3.\n",
"\n",
"Taking into account all scattering paths took 15 minutes to compute.\n",
"\n", "\n",
"(msd-paper)=\n", "(msd-paper)=\n",
":::{seealso}\n", ":::{seealso}\n",
@ -126,14 +129,46 @@
"\n", "\n",
":::{tab-item} <i class=\"fa-solid fa-circle-question\"></i> Quiz\n", ":::{tab-item} <i class=\"fa-solid fa-circle-question\"></i> Quiz\n",
"\n", "\n",
"The script is almost completed, try to define path filtering options and compare results with and without filtering for emitter in plane n° 3 at scattering order 2.\n", "The following script is almost completed, try to define path filtering options (no backscattering, accept all paths with forward angles < 40° and reject paths longer than the diameter of the cluster).\n",
"\n", "\n",
"Compute the contribution of plane n° 7\n", "```{literalinclude} Si001.py\n",
":lineno-match:\n",
":emphasize-lines: 37-41\n",
"```\n",
"\n",
"1. How long was your calculation ?\n",
"2. How does it compare to the calculation with **all** scattering paths up to order 3 ?\n",
"3. What is the proportion of scattering paths of order 3 that were actually taken into account ?\n",
"\n", "\n",
":::\n", ":::\n",
"\n", "\n",
"::::" "::::"
] ]
},
{
"cell_type": "markdown",
"id": "19fbd486-b0c1-450c-a00d-79984945aefd",
"metadata": {},
"source": [
"```{toggle}\n",
"The calculation took few seconds and the result is very close to the calculation with all scattering paths.\n",
"\n",
"Only 0.01% of 3{sup}`rd` order paths were actually taken into account\n",
"\n",
":::{figure-md} si-fig\n",
"<img src=\"results.png\" alt=\"Si polar scan\" width=\"600px\" align=\"center\">\n",
"\n",
"Si(2p) polar scan (contribution of an emitter in the 4{sup}`th` plane with all 7 114 945 scattering paths taken into account (orange curve), and for only 1525 filtered paths (blue curve).\n",
"\n",
":::\n",
"\n",
":::{literalinclude} Si001_completed.py\n",
":lineno-match:\n",
":emphasize-lines: 37-41\n",
":::\n",
"\n",
"``` "
]
} }
], ],
"metadata": { "metadata": {
@ -152,7 +187,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.11.3" "version": "3.11.13"
} }
}, },
"nbformat": 4, "nbformat": 4,

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -266,7 +266,7 @@
"\n", "\n",
"<!--Inserting Generated X3D Scene-->\n", "<!--Inserting Generated X3D Scene-->\n",
"<scene>\n", "<scene>\n",
" <viewpoint position=\"0 0 28.28000000000003\">\n", " <viewpoint position=\"0 0 28.28\">\n",
" <group/>\n", " <group/>\n",
" </viewpoint>\n", " </viewpoint>\n",
" <transform translation=\"-0.8837500000000003 -2.220446049250313e-16 -3.002\">\n", " <transform translation=\"-0.8837500000000003 -2.220446049250313e-16 -3.002\">\n",
@ -634,7 +634,7 @@
" <sphere radius=\"1.2\"/>\n", " <sphere radius=\"1.2\"/>\n",
" </shape>\n", " </shape>\n",
" </transform>\n", " </transform>\n",
" <transform translation=\"-7.070000000000022 0.0 4.6629367034256575e-15\">\n", " <transform translation=\"-7.070000000000007 0.0 4.6629367034256575e-15\">\n",
" <shape>\n", " <shape>\n",
" <appearance>\n", " <appearance>\n",
" <material diffuseColor=\"0.749 0.761 0.78\"/>\n", " <material diffuseColor=\"0.749 0.761 0.78\"/>\n",
@ -642,7 +642,7 @@
" <sphere radius=\"1.6\"/>\n", " <sphere radius=\"1.6\"/>\n",
" </shape>\n", " </shape>\n",
" </transform>\n", " </transform>\n",
" <transform translation=\"-7.070000000000022 2.040933201585325 1.724999999999999\">\n", " <transform translation=\"-7.070000000000007 2.040933201585325 1.724999999999999\">\n",
" <shape>\n", " <shape>\n",
" <appearance>\n", " <appearance>\n",
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n", " <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
@ -698,7 +698,7 @@
" <sphere radius=\"1.2\"/>\n", " <sphere radius=\"1.2\"/>\n",
" </shape>\n", " </shape>\n",
" </transform>\n", " </transform>\n",
" <transform translation=\"-1.7674999999999983 3.0613998023779985 4.6629367034256575e-15\">\n", " <transform translation=\"-1.7675000000000125 3.0613998023779985 4.6629367034256575e-15\">\n",
" <shape>\n", " <shape>\n",
" <appearance>\n", " <appearance>\n",
" <material diffuseColor=\"0.749 0.761 0.78\"/>\n", " <material diffuseColor=\"0.749 0.761 0.78\"/>\n",
@ -706,7 +706,7 @@
" <sphere radius=\"1.6\"/>\n", " <sphere radius=\"1.6\"/>\n",
" </shape>\n", " </shape>\n",
" </transform>\n", " </transform>\n",
" <transform translation=\"-1.7674999999999983 5.102333003963331 1.724999999999999\">\n", " <transform translation=\"-1.7675000000000125 5.102333003963331 1.724999999999999\">\n",
" <shape>\n", " <shape>\n",
" <appearance>\n", " <appearance>\n",
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n", " <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
@ -754,7 +754,7 @@
" <sphere radius=\"1.6\"/>\n", " <sphere radius=\"1.6\"/>\n",
" </shape>\n", " </shape>\n",
" </transform>\n", " </transform>\n",
" <transform translation=\"-3.535000000000011 6.12279960475599 4.6629367034256575e-15\">\n", " <transform translation=\"-3.5349999999999966 6.12279960475599 4.6629367034256575e-15\">\n",
" <shape>\n", " <shape>\n",
" <appearance>\n", " <appearance>\n",
" <material diffuseColor=\"0.749 0.761 0.78\"/>\n", " <material diffuseColor=\"0.749 0.761 0.78\"/>\n",
@ -878,7 +878,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.11.3" "version": "3.11.13"
} }
}, },
"nbformat": 4, "nbformat": 4,

View File

@ -133,7 +133,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.11.3" "version": "3.11.13"
} }
}, },
"nbformat": 4, "nbformat": 4,

View File

@ -103,7 +103,8 @@
":::{figure-md} filters-fig\n", ":::{figure-md} filters-fig\n",
"<img src=\"filters.jpg\" alt=\"path filtering\" width=\"600px\" align=\"center\">\n", "<img src=\"filters.jpg\" alt=\"path filtering\" width=\"600px\" align=\"center\">\n",
"\n", "\n",
"Some examples of scattering paths with `forward_scattering`, `backward_scattering` and `distance` filters selected. The accepted forward angle is 45°, the accepted backscattering angle is 20° and the threshold distance is $6a_0$ where $a_0$ is the lattice parameter. Note that the yellow path is rejected but if the `off_cone_events` option is set to a value > 1, then it could have been accepted." "Some examples of scattering paths with `forward_scattering`, `backward_scattering` and `distance` filters selected. The accepted forward angle is 45°, the accepted backscattering angle is 20° and the threshold distance is $6a_0$ where $a_0$ is the lattice parameter. Note that the yellow path is rejected but if the `off_cone_events` option is set to a value > 1, then it could have been accepted.\n",
":::"
] ]
}, },
{ {
@ -113,7 +114,9 @@
"source": [ "source": [
"## Application to a deep plane in a Si(001) sample\n", "## Application to a deep plane in a Si(001) sample\n",
"\n", "\n",
"The following script will compute contribution of all the planes of a Si(001) substrate to get the total photoelectron intensity of a Si(2s) polar scan. \n", "The following script will compute the contribution of a Si(2p) atom in the 4{sup}`th` plane of a Si(001) cluster at scattering order 3.\n",
"\n",
"Taking into account all scattering paths took 15 minutes to compute.\n",
"\n", "\n",
"(msd-paper)=\n", "(msd-paper)=\n",
":::{seealso}\n", ":::{seealso}\n",
@ -126,14 +129,46 @@
"\n", "\n",
":::{tab-item} <i class=\"fa-solid fa-circle-question\"></i> Quiz\n", ":::{tab-item} <i class=\"fa-solid fa-circle-question\"></i> Quiz\n",
"\n", "\n",
"The script is almost completed, try to define path filtering options and compare results with and without filtering for emitter in plane n° 3 at scattering order 2.\n", "The following script is almost completed, try to define path filtering options (no backscattering, accept all paths with forward angles < 40° and reject paths longer than the diameter of the cluster).\n",
"\n", "\n",
"Compute the contribution of plane n° 7\n", "```{literalinclude} Si001.py\n",
":lineno-match:\n",
":emphasize-lines: 37-41\n",
"```\n",
"\n",
"1. How long was your calculation ?\n",
"2. How does it compare to the calculation with **all** scattering paths up to order 3 ?\n",
"3. What is the proportion of scattering paths of order 3 that were actually taken into account ?\n",
"\n", "\n",
":::\n", ":::\n",
"\n", "\n",
"::::" "::::"
] ]
},
{
"cell_type": "markdown",
"id": "19fbd486-b0c1-450c-a00d-79984945aefd",
"metadata": {},
"source": [
"```{toggle}\n",
"The calculation took few seconds and the result is very close to the calculation with all scattering paths.\n",
"\n",
"Only 0.01% of 3{sup}`rd` order paths were actually taken into account\n",
"\n",
":::{figure-md} si-fig\n",
"<img src=\"results.png\" alt=\"Si polar scan\" width=\"600px\" align=\"center\">\n",
"\n",
"Si(2p) polar scan (contribution of an emitter in the 4{sup}`th` plane with all 7 114 945 scattering paths taken into account (orange curve), and for only 1525 filtered paths (blue curve).\n",
"\n",
":::\n",
"\n",
":::{literalinclude} Si001_completed.py\n",
":lineno-match:\n",
":emphasize-lines: 37-41\n",
":::\n",
"\n",
"``` "
]
} }
], ],
"metadata": { "metadata": {
@ -152,7 +187,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.11.3" "version": "3.11.13"
} }
}, },
"nbformat": 4, "nbformat": 4,